欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

javaEE_______Servlet_______表单中文乱码解决

程序员文章站 2024-03-11 20:23:01
...

 表单的请求方式一: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”表示要转成的编码方式。

javaEE_______Servlet_______表单中文乱码解决

/*
两种提交方式的中文乱码的提交方式
*/
//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();
		}

	}
}