Java Web之请求和响应
2016-05-09 09:31
507 查看
Servlet最主要作用就是处理客户端请求并作出回应,为此,针对每次请求,Web容器在调用service()之前都会创建两个对象,分别是HttpServletRequest和HttpServletResponse。其中HttpServletRequest封装HTTP请求消息,HttpServletResponse封装HTTP响应消息。需要注意的是,Web服务器运行过程中,每个Servlet都会只创建一个实例对象,不过每次请求都会调用Servlet实例的service(ServletRequest req, ServletResponse res)方法,这里HttpServletRequest是ServletRequest的子类,HttpServletResponse是ServletResponse的子类。
HttpServletRequest和HttpServletResponse接口继承关系图如下所示:
View Code
获取请求体的相关方法
获取请求参数
获取请求参数实例见:http://www.cnblogs.com/xdp-gacl/p/3798347.html
RequestDispatcher接口中方法
2、Java Web之Servlet技术
HttpServletRequest和HttpServletResponse接口继承关系图如下所示:
package zzz; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Hello extends HttpServlet { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { // 设置响应消息编码 response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); Enumeration<String> names = request.getHeaderNames(); while (names.hasMoreElements()) { String name = names.nextElement(); String value = request.getHeader(name); out.println(name + ": " + value + "</br>"); } } @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { this.doGet(request, response); } }
View Code
获取请求体的相关方法
方法 | 说明 |
public ServletInputStream getInputStream() | 获取请求的ServletInputStream对象,如果实体内容为非文本,只能通过getInputStream方法获取请求体消息体 |
public BufferedReader getReader() | 获取请求的BufferedReader对象,该对象会将实体内容字节数据转换为指定字符集编码的文本字符串 |
方法 | 说明 |
public String getParameter(String name) | 获取指定的参数值,没有该参数返回null |
public Enumeration<String> getParameterNames() | 返回一个包含所有参数名的Enumeration对象 |
public String[] getParameterValues(String name) | HTTP请求中可能有多个相同的参数,获取同一个参数名对应的所有参数值 |
3、RequestDispatcher接口
当一个Web资源受到客户端请求后,如果希望服务器通知另外一个资源如处理请求,除了使用功能sendRedirect()实现重定向外,还可以通过RequestDispatcher接口的实例对象来实现,在ServletRequest接口中定义了一个获取RequestDispatcher对象的方法--getRequestDispatcher(String path),它返回某个路径所指定资源的RequestDispatcher对象,参数path必须以"/"开头,用于表示当前Web应用的根目录,也就是path路径必须是在本Web程序中,否则会出现异常。RequestDispatcher接口中方法
方法 | 功能 |
public void forward(ServletRequest request, ServletResponse response) | 将一个Servlet传递给另外一个Web资源,将请求传递给其他资源进行响应 |
public void include(ServletRequest request, ServletResponse response) | 用于将其他资源作为当前响应内容包含进来 |
4、参考资料
1、javaweb学习总结(十)——HttpServletRequest对象(一)2、Java Web之Servlet技术
相关文章推荐
- JDK源码分析:hashCode()方法
- 如何用Java编写一段代码引发内存泄露
- 常见问题-spring通过反射调用service
- 如何诊断 Java 中的内存泄露
- myeclipse javaWeb项目+JAX-WS webService接口开发
- 这应该是迄今为止最全的一份Java就业指导书
- Eclipse工作视图的背景色更改
- Java Web项目如何提高访问效率
- [置顶] struts2实现文件的下载
- 【SSH网上商城项目实战07】Struts2和Json的整合
- java的static final 和final static区别
- 举例讲解Java的RTTI运行时类型识别机制
- SpringMVC Controller介绍
- 《java入门第一季》之类(Scanner类)
- 《java入门第一季》之类(Scanner类)
- (九)Struts2 防重复提交
- (八)Struts2 文件上传和下载
- J2SE基础之JDK环境变量配置
- Spring源码解析——start from BeanFactory(一)
- 《java入门第一季》之eclipse快捷键