表单的请求方式一:POST
表单POST提交时不会将提交内容提交到地址栏而是通过缓存区的方式进行进行存取,而缓存区是采用ISO-8859-1的编码方式,当我们直接通过getParameter("")读取是相当于读到是一堆乱码。这时在HttpServletRequest中就提供了setCharacterEncoding("UTF-8")来更改缓冲区的编码信息。这样就避免了中文乱码。
表单的请求方式二:GET
表单GET提交时会将提交内容提交到地址栏,当我们直接通过getParameter("")读取是相当于读到是一堆乱码。通过String s = request.getParameter("")方法取出乱码;
通过String的构造方法进行编码new String (s.getBytes("ISO-8859-1"),"UTF-8”);
其中s.getbye表示将s乱码指定为ISO-8859-1;第二个参数“UTF-8”表示要转成的编码方式。
/*
两种提交方式的中文乱码的提交方式
*/
//post的乱码提交方式
post的提交方式是将内容进行了缓存而缓存的编码方式采用ISO-8859-1
所以解决方法是
直接将缓存区的编码改成utf-8 ( request.setCharacterEncoding(“UTF-8”);)
//get提交方式乱码处理方式
通过String s = request.getParameter("")方法取出乱码;
通过String的构造方法进行编码new String (s.getbye("ISO-8859-1"),"UTF-8”);
其中s.getbye表示将s乱码指定为ISO-8859-1;第二个参数“UTF-8”表示要转成的编码方式
package com.pro.project.Web;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.pro.project.domain.user;
import com.pro.project.service.userService;
/**
* 注册处理请求
*/
public class UserTosql extends HttpServlet {
private static final long serialVersionUID = 1L;
public UserTosql() {
}
/*
*DOGET方式
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 改字符集
try {
user u = new user();
u.setUsernameToSql(request.getParameter("username"));
u.setPasswordToSql(request.getParameter("password"));
u.setEmilToSql(request.getParameter("email"));
u.setNameToSql(new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8"));
u.setTellToSql(request.getParameter("telephone"));
userService us = new userService();
boolean usertosql = us.userTosql(u);
if (usertosql) {
response.sendRedirect("/project/demo3-login/login.htm");
}
} catch (Exception e) {
e.printStackTrace();
}
}
/*
* post方式的字符集
* */
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 改字符集
request.setCharacterEncoding("UTF-8");
try {
user u = new user();
u.setUsernameToSql(request.getParameter("username"));
u.setPasswordToSql(request.getParameter("password"));
u.setEmilToSql(request.getParameter("email"));
u.setNameToSql(request.getParameter("name"));
u.setTellToSql(request.getParameter("telephone"));
userService us = new userService();
boolean usertosql = us.userTosql(u);
if (usertosql) {
//定向跳转
response.sendRedirect("/project/demo3-login/login.htm");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}