ServletContext
来源:互联网 发布:we假装情侣软件 编辑:程序博客网 时间:2024/05/16 07:13
ServletContext
WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。
ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。
也可以使用 this.getServletContext方法
由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。多个Servlet通过ServletContext对象实现数据共享。
ServletContext对象通常也被称之为context域对象。(request,session,page)
setAttribute(),getAttribute();
获取WEB应用的初始化参数。
<context-param>
<param-name> data</param-name>
<param-value> xxxx</param-value>
</context-param>
实现Servlet的转发。
RequestDispatcher rd =getServletContext().getRequestDispatcher(“/1.jsp”);
rd.forward(request,response);
如何把数据传到 1.jsp ?(可以通过request域,不能用context域)
ServletConfig和ServletContext的区别
整个Web应用只有一个ServletContext,在部署Web应用的时候,容器会建立这一个ServletContext对象,这个上下文对Web应用中的每个Servlet和JSP都可用。
Web应用中的各个Servlet都有自己的ServletConfig,它只对当前Servlet有效。
在客户端缓存Servlet的输出
对于不经常变化的数据,在servlet中可以为其设置合理的缓存时间值,以避免浏览器频繁向服务器发送请求,提升服务器的性能。
获取ServletContext的两种方式
获取ServletContext方法1
ServletContextcontext1 = this.getServletConfig().getServletContext();
获取ServletContext方法2
ServletContextcontext2 = this.getServletContext();
2.使用ServletContext实现两个Servlet数据共享
String value = "lisi";
this.getServletContext().setAttribute("namev",value);
String namevalue = (String)this.getServletContext().getAttribute("namev");
System.out.println(namevalue);
3.设置ServletContext初始化参数,然后对其之。
/* <context-param>
<param-name>data</param-name>
<param-value>aaaaa</param-value>
</context-param>*/
输出代码 :System.out.println(this.getServletContext().getInitParameter("data"));
4. 编写一个转发
package csdn.hbsi;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
public class Context extends HttpServlet {
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)
throwsServletException, IOException {
RequestDispatcherrt = this.getServletContext().getRequestDispatcher("/index.jsp");
rt.forward(request,response);
}
publicvoid doPost(HttpServletRequest request, HttpServletResponse response)
throwsServletException, IOException {
doGet(request, response);
}
}
5.通过ServletContext读取配置文件的内容。(使用两种方式)
方法一:
InputStream in =this.getServletContext().getResourceAsStream("WEB-INF/classes/db.properties");
Properties pro = new Properties();
pro.load(in);
String driver =pro.getProperty("driver");
String url =pro.getProperty("url");
String name =pro.getProperty("name");
String possword =pro.getProperty("possword");
System.out.println(driver+"..."+url+"..."+name+"..."+possword);
方法二:
String path =this.getServletContext().getRealPath("WEB-INF/classes/db.properties");
FileInputStream fis = newFileInputStream(path);
Properties pro1 = new Properties();
pro1.load(fis);
String driver1 =pro1.getProperty("driver");
String url1 =pro1.getProperty("url");
String name1 =pro1.getProperty("name");
String possword1 =pro1.getProperty("possword");
System.out.println(driver1+"..."+url1+"..."+name1+"..."+possword1);
6.通过一般的java类读取配置文件的内容。
InputStream in3 =Context2.class.getClassLoader().getResourceAsStream("db.properties");
Properties pro3 = new Properties();
pro3.load(in3);
String driver3 =pro3.getProperty("driver");
String url3 =pro3.getProperty("url");
String name3 = pro3.getProperty("name");
String possword3 =pro3.getProperty("possword");
System.out.println(driver3+"..."+url3+"..."+name3+"..."+possword3);
- ServletContext
- ServletContext
- servletcontext
- servletContext
- servletContext
- servletcontext
- ServletContext
- ServletContext
- servletContext
- ServletContext
- ServletContext
- servletContext
- ServletContext
- servletContext
- ServletContext
- servletContext
- ServletContext
- servletcontext
- 1.C++或Java中的异常处理机制的简单原理和应用。
- 加密
- 回归,梯度下降
- SGU题目分类
- 2012-10-22 11gR2"2DAY DBA"page126-280 & "ADMINISTRATOR'S GUIDE" page1-61
- ServletContext
- 《TCP/IP详解-协议》(10)动态选路
- 为什么中国的程序员总被称为码农?
- jsp中超链接带系统前缀
- hdu4005 缩点+无向图+重边
- VC++ ADO实现三层架构
- AutoCompleteTextView使用中的注意事项
- ZOJ题目分类
- 矩阵小记