j2ee请求HttpServletRequest和响应HttpServletResponse,以及请求的中文乱码处理

发布于 2020-04-07  61 次阅读


1. HttpServletRequest常用方法

HttpServletRequest:是ServletRe quest的子接口,专门用来处理基于HTTP协议的请求对象,对请求信息的封装

常用的方法:

// 获取上下文路径
java.lang.String getContextPath();
// 获取指定名称的请求头信息
java.lang.String getHeader(java.lang.String name);
// 获取请求的方式(get/post)
java.lang.String getMethod();
// 获取资源的名称(上下文路径/资源名称)
java.lang.String getRequestURI();
// 获取请求的资源的全路径
java.lang.StringBuffer getRequestURL();

获取用户提交的请求参数的方法:

// 获取指定名称的参数的值
java.lang.String getParameter(java.lang.String name);
// 获取所有的请求参数,并且封装到一个map集合中
java.util.Map<java.lang.String,java.lang.String[]> getParameterMap();
// 获取所有的请求参数的名称
java.util.Enumeration<java.lang.String> getParameterNames();
// 获取指定名称的参数的值
java.lang.String[] getParameterValues(java.lang.String name);

区分getInitParameter(String name)和getParameter(String name)?

  • getInitParameter(String name)是ServletConfig中的方法,获取当前的Servlet中的初始化参数(在web.xml文件中)
  • getParameter(String name)是ServletRequest中的方法,获取前台用户提交的数据

2. HttpServletResponse常用方法

HttpServletResponse接口:是javax.servlet.ServletResponse接口的子接口,专门用来处理基于HTTP协议的响应信息

HttpServletResponse中常用的方法:

// 获取字符输出流
java.io.PrintWriter getWriter();
// 获取字节输出流(通常在做文件下载的时候使用)
ServletOutputStream getOutputStream();

==以上两个方法不能共存==否则报错:

3. 请求的中文乱码处理

1).HttpServletRequest

中文乱码的原因:

Tomcat默认是使用ISO-8859-1的方式在处理请求参数,一个字节一个字节的编码,不适合中文的编码

解决的方案:

  1. 先按ISO-8859-1方式解码,再按UTF-8方式编码

  1. 方式一麻烦,可以通过修改配置的方式(在server.xml文件中修改端口的节点中)只支持get方式是请求

  1. 在获取请求参数之前进行编码的设置(只支持post方式的请求)

2). HttpServletResponse

响应信息的中文乱码:

以上的两行代码可以合并在一起


做一只特立独行的猪