Servlet3

来源:互联网 发布:c语言字符串函数 编辑:程序博客网 时间:2024/06/06 09:24

一、ServletContext

1WEB容器在启动时,会为每个WEB应用程序创建一个对应的ServletContext对象,它代表当前web应用。

2ServletConfig对象中维护ServletContext对象引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象也可用this.getServletContext方法

3、由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。多个Servlet通过ServletContext对象实现数据共享。

4ServletContext对象也称为context域对象requestsessionpagesetAttribute(),getAttribute();

5、获取ServletContext的两种方式

方法1ServletContext context1 =this.getServletConfig().getServletContext();        

方法2ServletContext context2 =this.getServletContext()

二、ServletContext应用

1获取WEB应用的初始化参数。

代码说明:

<context-param>

<param-name>data</param-name>

<param-value>xxxx</param-value>

</context-param>

String value = (String) this.getServletContext().getAttribute("data1");

      System.out.println(value);

2实现Servlet的转发。

RequestDispatcherrd =getServletContext().getRequestDispatcher(“/1.jsp”);

rd.forward(request,response);

注意:把数据传到jsp文件可以通过requst,不能用context

代码说明://实现转发

                   this.getServletContext().setAttribute("username","zhangsan");

                   RequestDispatcher rd =this.getServletContext().getRequestDispatcher("/index.jsp");

                   rd.forward(request,response);

4ServletContext对象读取资源文件:(1)得到文件路径、(2)读取资源文件的三种方式、(3properties文件(属性文件)

三、ServletConfigServletContext的区别

1)整个Web应用只有一个ServletContext,在部署Web应用时,容器会建立一个ServletContext对象Web应用中的每个ServletJSP都可用

2Web应用中的各个Servlet都有自己的ServletConfig,它只对当前Servlet有效

四、在客户端缓存Servlet的输出

对于不经常变化的数据,在servlet中可以为其设置合理的缓存时间值,以避免浏览器频繁向服务器发送请求,提升服务器的性能

//如果读取配置文件不是Servlet,而是一般的类,使用类加载器。

              InputStreamin =StudentDao.class.getClassLoader().getResourceAsStream("db.properties");

              Propertiesprop = new Properties();

              try{

                     prop.load(in);

              }catch (IOException e) {

                     //TODO Auto-generated catch block

                     e.printStackTrace();

              }

               driver = prop.getProperty("driver");

              Stringurl = prop.getProperty("url");

              Stringusername = prop.getProperty("username");

              Stringpassword = prop.getProperty("password");

原创粉丝点击