简介:讲解 HttpServletRequest和表单提交实战
- 使⽤用jsp编写form表单提交
- UserServlet, doPost⾥里里⾯面调⽤用doGe
java
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>简易 JSP 示例</title>
</head>
<body>
<form action="/user/login" method="post">
<div>⽤用户名: <input type="text" name="userName"/></div>
<div>密码: <input type="password" name="pwd"/></div>
<div><input type="submit" value="登录"></div>
</form>
</body>
</html>
java
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
String userName = req.getParameter("userName");
String pwd = req.getParameter("pwd");
if (userName.equals("gaze") && pwd.equals("123")) {
resp.getWriter().write("登录成功");
} else {
resp.getWriter().write("账号密码错误");
}
}
- 关于乱码问题
//POST⽅方式遇到中⽂文乱码,如果客户端是以UTF-8字符编码,需要服务器器以UTF-8的编码接收数据,
req.setCharacterEncoding("UTF-8");
//对于以get⽅方式传输的中⽂文数据乱码需要另外⼀一种⽅方式,默认的还是使⽤用ISO8859-1这个字符编码来接
收数据
//办法:对接收到的原始数据的字节数组,然后通过字节数组以指定的编码构建字符串串,解决乱码问题
String name = request.getParameter("name");//接收数据
name =new String(name.getBytes("ISO8859-1"), "UTF-8")
- 乱码问题解决的核⼼心:通过字节数组以指定的编码构建字符串串,这⾥里里指定的编码是根据客户端那边提交数据时使⽤用的字符编码来定