Servlet/JSP-02 Servlet相关类
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相关的方法(后文详述)
引子:如何在Servlet中获取请求信息?
Servlet的service方法用于应答请求,每次请求都会调用service方法:
public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException
ServletRequest:封装了请求信息,从中可以获取任何请求信息
ServletResponse:封装了响应信息,可以通过它想用户传递响应
上述二者都是由Servlet容器实现,并传递给service方法
三. ServletRequest
1.获取请求参数
String getParamter(String name)
根据请求参数名称获取参数值,若请求参数有多个值(checkbox)只能获取第一个值
String[] getParameterValues(String name)
用于获取请求参数有多个值的情况
Map getParamterMap()
获取参数名和参数值的键值对Map<String, String[]>
Enumeration getParameterNames()
获取请求参数名对应的Enumeration
-- 以下为HttpServletRequest的方法
2.获取请求的URL
HttpServletRequest.getRequestURL()
3.获取请求方法
HttpServletRequest.getMethod()
4.获取GET请求的查询字符串
HttpServletRequest.getQueryString()
5.获取请求的Servlet的映射路径
HttpServletRequest.getServletPath() //web.xml配置的url-pattern
6.与Attribute相关的方法(后文详述)
四. ServletResponse
1. ServletResponse.getWriter()
返回PrinterWriter对象,调用该对象的print()方法,可以把内容直接显示到浏览器上
2.ServletResponse.setContentType(String type)
设置响应类型, setContentType("application/msword") 输出word文档,具体类型可到tomcat下得web.xml文件中查询
3.ServletResponse.getOutputStream()
获取文件输出流
4.HttpServletResponse的方法在后文HttpServlet中描述,例如sendRedirect(String location)
最新文章
- acm小知识
- Web Service 的创建简单编码、发布和部署
- 用canvas 实现个图片三角化(LOW POLY)效果
- C# Label显示多行文本及换行(WinForm/WebForm)
- 在Nginx 下运行 Laravel5.1 的配置
- 函数page_align
- 在Activity中为什么要用managedQuery()
- JAVA中ClassPath妙用
- C++标准库之stack(各函数及其使用全)
- 6.function自定义插件的方法和使用
- Quartz格式设置说明
- js 事件冒泡和事件捕获
- Windows中根据端口定位持有者程序
- 20162308 实验一《Java开发环境的熟悉》实验报告
- ogma
- 具体分析UGUI中RectTransform
- qml性能优化(来源于群友分享);
- Windows平台下nginx跨域配置
- 小程序源码下载[demo整理自github]
- Go Example--超时处理