• java_第一年_JavaWeb(3)


    ServletConfig对象

    可以通过web.xml文件中的<init-param>标签来初始化参数,这些参数会在创建servlet实例时将其封装到ServletConfig对象中,并在调用service中的init方法时将其传递给servlet;

    设置参数:

    <init-param>
        <param-name>name</param-name>
        <param-value>lzj</param-value>
    <init-param>

    定义ServletConfig对象,通过init方法将其传给Servlet以便开发人员对其进行调用;

    private ServletConfig config ;//定义ServletConfig对象,web容器在创建servlet对象时会自动将参数传入;
    public void init(ServletConfig config) throws ServletException{
        this.config = config
    }//将其传给Servlet;
    ......
    String paramVal = this.config.getInitParameter("name");//获取指定的初始化参数;
    Enumeration<String>e = config.getInitParameterNames();//获取所有的初始化参数;
    while (e.hasMoreElements()){
        String name = e.nextElement();
        String value = config.getInitParameter(name);
        response.getWriter().print(name + " = " + value+ "<br/>");//打印输出初始化参数;

    ServletContext对象

    web容器在启动时会为每个web应用程序都创建一个ServletContext对象,所有的Servlet都共享这个对象,因此可以通过这个对象来实现Servlet对象之间的通讯,可以通过ServletConfig中的getServletContext的方法来获取SercletContext对象;

    //在第一个Servlet中获取ServletContext对象并储存数据;
    ServletContext context = this.getServletConfig.getServletContext();
    context.setAttribute("date",date);
    //在第二Servlet中提取获得data数据;
    ServletContext context = this.get.ServletContext();
    String data = context.getAttribute("data");

    除了上面所说的<init-param>可以设置初始化参数,还可用<context-param>标签来设置参数,再用ServletContext方法中的getInitParameter()方法来获取;

    <context-param>
        <param-name>name</param-name>
        <param-value>lzj</param-value>
    <context-param>//在web.xml设置后初始化参数;
    ........
    ServletContext context = this.getServletContext();
    String Paramval = context.getInitParameter("name");//通过getInitParameter方法获取初始化参数;

    除了实现数据通讯、初始化参数,ServletContext还可以用来实现转发;

    通过ServletContext对象中的getRequestDispatcher得到RequestDispatcher对象,再调用forward方法实现转发;

    ServletContext context = this.getServletContext();
    RequestDispatcher rd = context.getRequestDispatcher("/servlet/ServletContextDemo5");
    rd.forward(request, response);
  • 相关阅读:
    碰撞器与触发器[Unity]
    Mesh属性[Unity]
    4.3之后的PingPong效果实现
    windows reload()
    浏览器的内核
    redis 1
    oauth 2.0转
    java 散列
    js 事件详解 冒泡
    HttpURLConnection和HttpClient的区别2(转)
  • 原文地址:https://www.cnblogs.com/lzj-learn/p/11608206.html
Copyright © 2020-2023  润新知