1,创建ServletConfig对象
ServletConfig对象叫servlet上下文对象。 一个网站只会创建一个ServletContext对象。代表的是整个网站的环境信息。
获取ServletContext对象必须要先获取ServletConfig对象,由此对象才可以获取ServletContext对象。
伪代码:此伪代码能够说明为什么必须先获取ServletConfig对象。
ServletContext对象:启动的时候创建
ServletConfig对象:调用init方法之前创建的,在ServletContext对象创建之前
publicServletCofig{
ServletContextcontext;
publicServletConfig(context){
this.context=context;
}
publicServetContxt getServletContext(){
return context;
}
}
ServletConfigconfig = new ServletConfig(context);
publicMyServlet extends HttpSevlet{
publlicinit(ServletConfig config){
SevletContextcontext= config. getServletContext();
}
}
2,ServletContext对象的作用(5个):
1)获取web的上下文路径
java.lang.StringgetContextPath()
2)获取全局参数
java.lang.StringgetInitParameter(java.lang.String name)
java.util.EnumerationgetInitParameterNames()
3)和域对象相关的
voidsetAttribute(java.lang.String name, java.lang.Object object)
java.lang.ObjectgetAttribute(java.lang.String name)
voidremoveAttribute(java.lang.String name)
什么是域对象?
域对象在不同的资源之间来共享数据。保存数据,获取数据。
ServletContext就是我们学习的第一个域对象。
Servlet三个域对象:
ServletContext
HttpServletRequest
HttpSession
4)请求转发的
RquestDispatcher getRequestDispatcher(java.lang.Stringpath)
在servlet跳转页面:
请求重定向:
1)地址栏会发送改变,变成重定向到的地址。
2)可以跳转到项目内的资源,也可以跳转项目外的资源
3)浏览器向服务器发出两次请求,那么就不能使用请求来作为域对象来共享数据。
请求转发:
1)地址栏不会改变。
2)只能跳转到项目内的资源,不能跳转到项目外的资源
3)浏览器向服务器发出一次请求,那么可以使用请求作为域对象共享数据。
5)读取web项目的资源文件
java.lang.StringgetRealPath(java.lang.String path)
java.io.InputStreamgetResourceAsStream(java.lang.String path)
java.net.URLgetResource(java.lang.String path)