Servlet跳转到JSP页面出现乱码
来源:互联网 发布:昆士兰会计硕士知乎 编辑:程序博客网 时间:2024/05/16 01:41
今天写程序时,用一个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("fail.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("fail.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("fail.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("fail.jsp").forward(request, response);
out.println("</body></html>");
}
这样就解决问题了
- Servlet跳转到JSP页面出现乱码
- servlet跳转到JSP页面会出现乱码
- JSP页面到Servlet出现乱码问题
- Javaweb项目中从servlet跳转到jsp页面出现乱码
- web项目中servlet跳转jsp页面 出现乱码
- servlet页面跳转出现乱码
- Servlet跳转到jsp页面输出结果乱码
- JSP页面超链接跳转到Servlet后中文乱码解决
- JSP页面超链接跳转到Servlet后中文乱码解决
- servlet跳转到jsp页面
- servlet 跳转到 jsp 乱码解决
- RequestDispatcher跳转到jsp页面中文乱码
- servlet中通过request.getRequestDispatcher跳转到jsp页面汉字乱码问题
- servlet中通过request.getRequestDispatcher跳转到jsp页面乱码问题
- jsp页面上传文件到servlet获取到路径中有中文出现乱码
- jsp,servlet页面跳转
- servlet跳转jsp页面
- servlet、jsp页面跳转
- u-boot启动流程分析
- 面向对象的程序设计学习笔记1-类
- 程序员面试题精选100题(39)-颠倒栈[数据结构]
- CSDN第三次实训第一天感悟
- Java学习笔记25:Java中MD5使用
- Servlet跳转到JSP页面出现乱码
- Servlet&JSP的那些事儿(二十五)
- PCI Express (PCIe or PCI-E)
- 网络编程不常用结构体
- 第三天感悟
- Compile kernel: kuconfig/kdconfig/make clean/mrproper/distclean/menuconfig
- Tomcat 启动时类加载顺序
- 夏花已逝,秋风易老
- C语言实现encode和decode