javaEE_______Servlet_______表单中文乱码解决

 表单的请求方式一: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();
		}

	}
}
	
		



    


    


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值