本篇内容主要讲解“如何解决Servlet JSP页面乱码问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决Servlet JSP页面乱码问题”吧!
成都创新互联专注于宽城企业网站建设,响应式网站,电子商务商城网站建设。宽城网站建设公司,为宽城等地区提供建站服务。全流程专业公司,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
从form表单提交信息到Servlet JSP页面进行处理的时候,提交的中文信息若不加处理的话就会显示乱码,如一串???。现在通过一个例子来进行总结如下:
写一个用户信息提交页面,通过这个页面向Servlet JSP页面提交用户信息,代码如下:
<%@ page language="java" contentType="text/html; charset=gbk"%>表单提交
现在写deal处理页面,代码如下:
<%@ page language="java" contentType="text/html; charset=gbk"%>显示用户信息 <% //request.setCharacterEncoding("gb2312"); String username = request.getParameter("username"); //String username = new String(request.getParameter("username").getBytes("iso-8859-1"),"gbk"); String password = request.getParameter("password"); //String love = new String(request.getParameter("love").getBytes("iso-8859-1"),"gbk"); String love = request.getParameter("love"); %> <%= username %>您好,你的密码是:<%= password %>,您的爱好是:<%= love %>!
从前面的信息提交页面提交来的信息包含中文,这时就会出现乱码。如:
??????您好,你的密码是:1234569,您的爱好是:????!
现在,把第8行的注释符号去掉,重新执行页面(请确保web服务器会自动加载更改后的页面,否则请重新启动web服务器),这时可以看到正确的中文信息了,如:
王中玉您好,你的密码是:9856322,您的爱好是:音乐!
也可以使用另外一种方法进行处理,把deal.jsp的第8行注释掉,然后把第9行、第13行也注释掉,去掉第10行和第12行的注释符号,保存好重新执行页面(方法同上),同样会显示正常的信息。
下面通过前面的信息提交页面向一个servlet提交信息,然后对其中的中文乱码进行处理。写一个servlet程序(formdeal.java),如下:
package org.wzhongyu; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class formdeal extends HttpServlet { public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //response.setContentType("text/html; charset=gbk"); PrintWriter out = response.getWriter(); //request.setCharacterEncoding("gbk"); String username = request.getParameter("username"); String password = request.getParameter("password"); String love = request.getParameter("love"); out.print("您的用户名:" + username + "
"); // out.print("您的密码:" + password + "
"); // out.print("您的爱好:" + love); // } public void init() throws ServletException { // Put your code here } }
该servlet的部署描述文件(web.xml)如下:
This is the description of my J2EE component This is the display name of my J2EE component formdeal org.wzhongyu.formdeal formdeal /servlet/formdeal
把信息提交页面的第7行改为: