JavaWeb之Servlet(三)ServletConfig与ServletContext

导航

·JavaWeb之Servlet(一)Maven创建Servlet项目时的换源与运行时404的可能解决方案
·JavaWeb之Servlet(二)Servlet生命周期方法与GET/POST请求分发
·JavaWeb之Servlet(三)ServletConfig与ServletContext
·JavaWeb之Servlet(四)HttpServletRequest与HttpServletResponse

文章目录

  • 导航
  • 前言
  • 一、ServletConfig
    • Ⅰ、创建ServletConfig类对象
    • Ⅱ、ServletConfig类对象方法
    • Ⅲ、java程序
    • Ⅳ、配置web.xml
    • Ⅴ、回显
  • 二、ServletContext
    • Ⅰ、创建ServletContext类对象
    • Ⅱ、ServletContext类对象方法
    • Ⅲ、java程序
    • Ⅳ、配置web.xml
    • Ⅴ、回显

前言

–>视频教程传送门<–

项目结构:
JavaWeb之Servlet(三)ServletConfig与ServletContext_第1张图片

一、ServletConfig

Ⅰ、创建ServletConfig类对象

ServletConfig类是配置文件,通过方法getServletConfig()得到ServletConfig类对象

ServletConfig config = getServletConfig();

Ⅱ、ServletConfig类对象方法

方法 描述
ServletConfig.getServletName() 获取当前程序的名称
ServletConfig.getServletContext() 获取web.xml初始化配置的参数
ServletConfig.getInitParameter(String) 获取servletContext

参数只能由当前程序访问

Ⅲ、java程序

package com.HolaAs;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class configServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletConfig config = getServletConfig();

        System.out.println("Name: "+ config.getServletName());
        System.out.println("context: "+ config.getServletContext());
        System.out.println("init-param: "+ config.getInitParameter("password"));

    }
}

Ⅳ、配置web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>

  <servlet>
    <servlet-name>configServlet</servlet-name>
    <servlet-class>com.HolaAs.configServlet</servlet-class>
    //配置初始化参数,可重复多次
    <init-param>
      <param-name>password</param-name>
      <param-value>1234</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>configServlet</servlet-name>
    <url-pattern>/config</url-pattern>
  </servlet-mapping>

</web-app>

Ⅴ、回显

JavaWeb之Servlet(三)ServletConfig与ServletContext_第2张图片

二、ServletContext

Ⅰ、创建ServletContext类对象

ServletContext类是上下文,通过方法getServletContext()得到ServletContext类对象

ServletContext context = getServletContext();

Ⅱ、ServletContext类对象方法

方法 描述
ServletContext.getInitParameter(String) 获取上下文参数
ServletContext.getContextPath() 获取工程路径
ServletContext.getRealPath("/") 获取在服务器端的绝对路径
ServletContext.setAttribute(String key,String value) 添加域数据
ServletContext.getAttribute(String key) 获取域数据
ServletContext.removeAttribute(String key) 删除域数据

上下文参数在Servlet初始化的时候创建,在Servlet关闭的时候回收
全部程序均可访问

Ⅲ、java程序

package com.HolaAs;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class contextServlet1 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        ServletContext context = getServletContext();

        System.out.println("context-param: "+context.getInitParameter("username"));
        System.out.println("Project path: "+context.getContextPath());
        System.out.println("In-disk path: "+context.getRealPath("/"));
        
        context.setAttribute("key1","value1");
        System.out.println("getValue: "+context.getAttribute("key1"));

    }

}

Ⅳ、配置web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  //配置上下文参数
  <context-param>
    <param-name>username</param-name>
    <param-value>root</param-value>
  </context-param>
  
  <servlet>
    <servlet-name>contextServlet</servlet-name>
    <servlet-class>com.HolaAs.contextServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>contextServlet</servlet-name>
    <url-pattern>/context</url-pattern>
  </servlet-mapping>

</web-app>

Ⅴ、回显

JavaWeb之Servlet(三)ServletConfig与ServletContext_第3张图片

欢迎在评论区留言
感谢浏览

你可能感兴趣的:(#,Servlet,servlet,java)