Servlet处理请求参数
HttpServletRequest对象提供了获取get、post请求参数的方法 getParamter
- Tomcat收到浏览器请求时候
- 先解析请求行和请求头,然后将这些信息存储到request对象中。
- 执行Servlet可以收到request
- 对于Post请求
- post请求参数在"请求Body"中传输到服务器
- request对象在第一次调用getParamter时候解析请求Body中的参数
- request会按照ISO8859-1编码解析post请求参数。
- 对于get请求
- get请求参数在“请求行”中传递到服务器
- tomcat默认按照ISO8859-1编码解析请求行和请求头,并且存储到request对象
- getParamter方法执行时候不进行编码解析。
获取post请求案例:
-
编写客户端页面 login.html
登录页
登录
利用Servlet处理请求参数, 表单大多使用post请求
2.编写Servlet处理请求
/**
* 在Servlet中接收表单参数
*/
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
/*
* 用户浏览器发起的 Post 请求被Tomcat接收,
* Tomcat将请求信息解析到 Request 对象中。
* 任何请求信息,都可以从Request对象中获取
* 如获取请求参数:request.getParamter("username")
* paramter: 参数
*/
//setCharacterEncoding通知Request对象
//在解析 请求Body 时候使用UTF-8编码
//必须在 getParameter 方法调用之前设置
request.setCharacterEncoding("UTF-8");
String name=request.getParameter("username");
System.out.println("name="+name);
String pwd=request.getParameter("pwd");
System.out.println("pwd="+pwd);
response.setContentType(
"text/html; charset=UTF-8");
PrintWriter out=response.getWriter();
out.println("");
//简易密码验证逻辑
if(name.equals("tom") && pwd.equals("123")) {
out.println("登录成功
");
}else {
out.println("登录失败
");
}
out.println("");
}
}
获取get请求案例:
-
编写Servlet
/**
* 处理get请求参数当浏览器的get请求发送到Tomcat服务器时候,Tomcat会
* 解析请求头部,将请求头部数据存储到Request对象中传递到 Servlet。在Servlet中可以利用getParamter方法获取get请求参数
*/
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
//获取get请求参数时候,如果key对应的参数不存在就返回null
//request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
String age = request.getParameter("age");
String pwd = request.getParameter("pwd");
System.out.println("name="+name);
System.out.println("age="+age);
System.out.println("pwd="+pwd);
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("");
out.println("收到get参数!
");
out.println("