首页 > 其他 > 详细

Servlet之Context的使用

时间:2020-05-14 00:16:28      阅读:66      评论:0      收藏:0      [点我收藏+]

//tomcat启动时就会创建唯一的context,
//并且会调用它的方法加载web.xml中的
//公用参数,context是全局的,任何Servlet
//都可以使用.

LoginServlet.java

package web;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FindDeptServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        //tomcat启动时就会创建唯一的context,
        //并且会调用它的方法加载web.xml中的
        //公用参数,context是全局的,任何Servlet
        //都可以使用.
        ServletContext ctx = getServletContext();
        String size = ctx.getInitParameter("size");
        System.out.println(size);
        System.out.println("分页查询部门数据");
        //统计流量
        Integer count = (Integer)ctx.getAttribute("count");
        ctx.setAttribute("count", ++count);
        System.out.println(count);
    }
    
}

xml

  <!-- 在标签外配置的参数是给所有Servlet公用的参数. -->
  <context-param>
      <param-name>size</param-name>
      <param-value>20</param-value>
  </context-param>

当然 context也可以存储变量 如上的count

在InitServlet.java的init方法中通过ServletContext ctx = getServletContext();获得context

并设置变量的初始值

ctx.setAttribute("count", 0);

package web;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
/**
 * 该Servlet不负责处理具体业务,
 * 只用来在tomcat启动时初始化数据.
 * 一般WEB项目都有1-2个这样的Servlet.
 * @author LZQ
 *
 */
public class InitServlet extends HttpServlet {

    @Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
        //tomcat启动时会优先创建context,
        //然后再创建Servlet.
        ServletContext ctx = getServletContext();
        //流量默认为0
        ctx.setAttribute("count", 0);
    }
    
}

xml

<servlet>
      <servlet-name>init</servlet-name>
      <servlet-class>web.InitServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
  </servlet>
  <!-- 这个Servlet没人访问 所以后面这半不用写 这里注释掉 -->
  <!-- <servlet-mapping>
      <servlet-name>init</servlet-name>
      <url-pattern>/init</url-pattern>
  </servlet-mapping> -->

 

Servlet之Context的使用

原文:https://www.cnblogs.com/gol2q/p/12885313.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!