ServletConfig / ServletContext / ServletRequest / ServletResponse
一. ServletConfig:封装了Servlet得配置信息,并且可以获取ServletContext对象。
1 获取初始化参数
a. 配置初始化参数
<servlet> <servlet-name>helloServlet</servlet-name> <servlet-class>com.bwr.start.HelloServlet</servlet-class> <!-- init-param节点必须在load-on-startup前 --> <init-param> <param-name>encode</param-name> <param-value>utf-8</param-value> </init-param> <init-param> <param-name>encode</param-name> <param-value>utf-8</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
b. 获取初始化参数
getInitParamter(String name) 获取Servlet指定名称的初始化参数
getInitParameterNames() 获取Servlet中所有的初始化参数名的枚举值
public void init(ServletConfig config) throws ServletException { System.out.println("init..."); String name = config.getInitParameter("name"); System.out.println("name: " + name); Enumeration<String> params = config.getInitParameterNames(); while(params.hasMoreElements()) { String param = params.nextElement(); String value = config.getInitParameter(param); System.out.println(">> " + param + ": " + value); } }
Servlet加载时后台输出结果:
name: tom >> encode: utf-8 >> name: tom
2 获取Servlet名称 getServletName()
3 获取Servlet上下文 getServletContext()
二. ServletContext
1.Servlet引擎为每个WEB应用程序都创建一个对应的ServletContext对象,在Servlet中可以通过ServletConfig的getServletContext()方法获取。
2.由于一个WEB应用中所有Servlet共享同一个ServletContext对象,所以也被称之为application对象(WEB应用程序对象)
3.可以通过ServletContext获取当前WEB应用各方面的信息:
① 获取当前WEB应用初始化参数
配置:在web.xml文件的web-app标签下配置
<context-param> <param-name>web-name</param-name> <param-value>Hello</param-value> </context-param> <context-param> <param-name>version</param-name> <param-value>2.2.1</param-value> </context-param>
获取:通过ServletContext的getInitParamter(String name)和getInitParamterNames()获取。
② 获取当前WEB应用的某个文件的绝对路径
a.文件必须位于WEB应用内,即在项目的WebContent下;获取的绝对路径是应用部署后文件所在的绝对路径
b. 使用方法servletContext.getRealPath("/note.txt"),"/"在eclipse项目结构中代表WebContent
③ 获取当前WEB应用的名称
servletContext.getContextPath() // "/JavaWeb01"
④ 获取当前WEB应用某个文件对应的输入流
servletContext.getResourceAsStream(String path); // path前的"/"为WEB应用的根目录
a.在eclipse项目下src下有文件db.properties
ServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
getClass().getClassLoader().getResourceAsStream("db.properties");
b.在eclipse项目下WebContent下有文件note.txt
ServletContext().getResourceAsStream("/note.txt");
⑤ 与Attribute相关的方法
三. ServletRequest
四. ServletResponse