jsp的servlet容器跳转是出现乱码(转载) 挺经典的
2013-05-10 07:18
375 查看
今天写程序时,用一个Servlet跳转到JSP页面后该JSP页面出现乱码,但是直接在IE运行该JSP不出现乱码
出问题的代码如下:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out = response.getWriter();
response.setContentType("type=text/html; charset=GBK");
String username = request.getParameter("username");
out = response.getWriter();
out.println("<html><head><title>处理</title></head><body>");
Check check = new Check();
check.setName(username);
System.out.println(check.getName());
if(check.checkName()){
request.setAttribute("username", check.getName());
request.getRequestDispatcher("login_success.jsp").forward(request, response);
}else
request.getRequestDispatcher("faile.jsp").forward(request, response);
out.println("</body></html>");
}
问题如下:如果用该servlet运行跳转到JSP页面,就会出现乱码,如果把PrintWriter out去掉,就不会出现乱码。
具体原因:因为在设置编码之前就获得PrintWriter对象,所以必然出现乱码
解决办法:在获得PrintWriter对象之前就设置好编码,这样就不会出现问题
正确代码:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("GBK");
response.setContentType("GBK");
PrintWriter out = null;
response.setContentType("type=text/html; charset=GBK");
String username = request.getParameter("username");
username = new String(username.getBytes("iso-8859-1"),"GBK");
out = response.getWriter();
out.println("<html><head><title>处理</title></head><body>");
Check check = new Check();
check.setName(username);
System.out.println(check.getName());
if(check.checkName()){
request.setAttribute("username", check.getName());
request.getRequestDispatcher("login_success.jsp").forward(request, response);
}else
request.getRequestDispatcher("faile.jsp").forward(request, response);
out.println("</body></html>");
}
这样就解决问题了
出问题的代码如下:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out = response.getWriter();
response.setContentType("type=text/html; charset=GBK");
String username = request.getParameter("username");
out = response.getWriter();
out.println("<html><head><title>处理</title></head><body>");
Check check = new Check();
check.setName(username);
System.out.println(check.getName());
if(check.checkName()){
request.setAttribute("username", check.getName());
request.getRequestDispatcher("login_success.jsp").forward(request, response);
}else
request.getRequestDispatcher("faile.jsp").forward(request, response);
out.println("</body></html>");
}
问题如下:如果用该servlet运行跳转到JSP页面,就会出现乱码,如果把PrintWriter out去掉,就不会出现乱码。
具体原因:因为在设置编码之前就获得PrintWriter对象,所以必然出现乱码
解决办法:在获得PrintWriter对象之前就设置好编码,这样就不会出现问题
正确代码:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("GBK");
response.setContentType("GBK");
PrintWriter out = null;
response.setContentType("type=text/html; charset=GBK");
String username = request.getParameter("username");
username = new String(username.getBytes("iso-8859-1"),"GBK");
out = response.getWriter();
out.println("<html><head><title>处理</title></head><body>");
Check check = new Check();
check.setName(username);
System.out.println(check.getName());
if(check.checkName()){
request.setAttribute("username", check.getName());
request.getRequestDispatcher("login_success.jsp").forward(request, response);
}else
request.getRequestDispatcher("faile.jsp").forward(request, response);
out.println("</body></html>");
}
这样就解决问题了
相关文章推荐
- Javaweb项目中从servlet跳转到jsp页面出现乱码
- Servlet跳转到JSP页面后该JSP页面出现乱码,但是直接在浏览器运行该JSP不出现乱码
- jsp跳转servlet时出现乱码的处理方法
- web项目中servlet跳转jsp页面 出现乱码
- Servlet跳转到JSP页面出现乱码
- (转载)jsp与servlet之间页面跳转及参数传递实例
- servlet页面跳转出现乱码
- Servlet3.0 jsp跳转到Servlet 出现404错误的路径设置方法
- 关于jsp中超链接跳转进行传值时出现乱码的解决方法
- 解决浏览器,servlet,jsp页面之间传值出现乱码的情况
- JSP页面到Servlet出现乱码问题
- jquery+jsp+servlet做$.ajax交互时出现中文乱码(字符集问题)的解决方案
- servlet中通过request.getRequestDispatcher跳转到jsp页面汉字乱码问题
- servlet跳转到JSP页面会出现乱码
- servlet 跳转到 jsp 乱码解决
- weblogic容器通过JSP页面输出图片出现乱码Tomcat下却正常
- Jsp 向servlet URL方式传递参数出现乱码
- 解决Get和Post请求中中文乱码问题 (2013-01-26 23:59:39)转载▼ 标签: javaee it 分类: JavaEE 对于Post请求,只需在Servlet或者jsp中写入如下
- servlet通过URL传参到jsp页面出现乱码问题的解决
- 如何解决Servlet与jsp之间传递汉字出现乱码