请求中文乱码问题

package com.bjsxt.servlet;

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.bjsxt.pojo.User;
import com.bjsxt.service.LoginService;
import com.bjsxt.service.impl.LoginServicelmpl;
/**
 * 请求中文乱码的解决方式
 * 1使用String进行重新编码
 * 			uname = new String(uname.getBytes("iso8859-1"),"utf-8");
 * 2使用公共配置
 * 		get方式
 * 				步骤一:req.setCharacterEbcoding("utf-8");
 * 				步骤二:
 * 					在Tomact目录下的conf目录中修改server.xml文件:在Connector标签中增加属性 userBodyenCodingforURI="ture"	
 * 				
 * 		post方式
 * 				req.setCharacterEbcoding("utf-8");
 * Servlet流程总结:
 * 	   		浏览器发起请求到服务器 (请求)
 * 			服务器接收请求进行解析,创建request对象进行存储请求数据
 * 			服务器调用对应的servlet进行请求处理,并且将request对象作为实参传送给servlet方法
 * 			servlet方法执行进行请求处理
 * 					//设置请求编码格式
 * 					//设置响应编码格式
 * 					//获取请求信息
 * 					//处理请求信息
 * 						//创建业务层对象
 * 						//调用业务层对象的方法
 * 					//响应处理结果	 
 * 数据流转
 * 				浏览器----->服务器------>数据库
 * 				浏览器<------服务器<------数据库
 * 
 * 
 * 
 * 
 * 
 * @author Administrator
 *
 */
public class LoginServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		//设置响应编码格式
		resp.setContentType("text/html;charset=utf-8");
		//获取请求信息
		String uname=req.getParameter("uname");
		//中文         重新进行了一次编码
		 uname = new String(uname.getBytes("iso8859-1"),"utf-8");
		 //请求乱码问题的解决
		 //用于String进行重新编码
		String pwd=req.getParameter("pwd");
		System.out.println(uname+":"+pwd);
		
		//处理请求信息
			//获取业务层信息
		LoginService ls=new LoginServicelmpl();
		User u=ls.checkLoginService(uname, pwd);
		System.out.println(u);
		//响应处理结果 
		if(u!=null){
			resp.getWriter().write("登录成功");
		}else{
			resp.getWriter().write("登录失败");
			
		}
	
	}

}

  

猜你喜欢

转载自www.cnblogs.com/dream2060/p/11015819.html