HttpServletRequest的使用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

请求信息的取得

当请求来到服务器时,Web 容器会创建HttpServletRequest 实例来包装请求中的相关信息,HttpServletRequest 接口继承自ServletRequest 接口,后者定义了取得一些通用请求信息的方法,如getParameter()、getInputStream()等方法,前者定义了取得HTTP 相关信息的方法,例如getHeader()、getMethod()等。

处理请求时最基本的就是取得请求参数: getQueryStirng() 取得HTTP 请求的查询字符串 getParameter() 指定请求参数来取得对应的值 getParameterValues() 取得一个String 数组,数组元素代表被选择选项的值 getHeader() 指定标头后可以返回字符串值 getHeaderNames() 取得浏览器所发出的所有标头值

一个简单地例子:

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import java.io.IOException; import java.io.PrintWriter;

import java.util.Enumeration;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@WebServlet ("/ShowHeader")

public class ShowHeader extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter();

out.println("

"); out.println(""); out.println(" "); out.println(""); out.println(""); out.println("

Servlet Header at " + request.getContextPath() + "

"); Enumeration e = request.getHeaderNames(); while (e.hasMoreElements()) { String param = e.nextElement(); String value = request.getHeader(param); out.print(param + ": " + value + "

"); } out.println(""); out.println(""); out.close(); } protected void

doGet(HttpServletRequest request, HttpServletResponse response) throws

ServletException, IOException { processRequest(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } } 中文处理问题

若要传送给浏览器UTF-8编码的文字,可以执行如下语句:

response.setContentType("text/html;charset=utf-8");

若接收请求时也使用UTF-8编码字符串,则可以在取得请求之前,执行以下语句: request.setCharacterEncoding("utf-8");

另一个处理编码的方式是取得请求值之后,通过String 的getBytes()取得指定编码的该字符串的字节数组,然后再重新构造utf-8字符串,执行以下语句:

?

1 2 String username =

request.getParameter("name");

String username = new String(user.getBytes("ISO-8859-1"),

"utf-8");

如果java 原始代码文件中编写了中文字符串,则编译.java 时,可以指定-encoding 选项来指定编码,例如:

javac -encoding itf-8 Main.java

在编写JSP 时,若使用utf-8编码,可以使用以下语句,告知Web 容器将.jsp 转移为.java 以及进行编译时,必须使用utf-8编码格式:

%@page pageEncoding="UTF-8"%

以下是一个简单的例子:

myform.html:

?

1 2

姓名:

邮件:

你喜爱的宠物代表:

Pet.java:

相关文档
最新文档