register_utf-8.html
<html >
<head>
<title>register.html</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form method="post" action="register_utf8.jsp">
<table>
<tr><td>用户名<input name="userName" type="text"></td></tr>
<tr><td>密码<input name="password" type="text"></td></tr>
<tr><td><input type="submit" value="submit"></td></tr>
</table>
</html>
register-utf8.jsp
<%@ page contentType="text/html; charset=UTF-8" language="Java" pageEncoding="UTF-8" %>
<jsp:useBean id="user" scope="page" class="com.example.ch3.UserBean"/>
<jsp:setProperty name="user" property="*"/>
<html>
<head>
<title>注册.jsp</title>
</head>
<body>
<%=request.getParameter("userName")%>
<hr>
<%
request.setCharacterEncoding("UTF-8");
String hz=request.getParameter("userName");
hz=new String(hz.getBytes("ISO-8859-1"),"UTF-8" );
out.print(hz) ;
%>
<hr>
<%=request.getParameter("userName")%>
<hr>
用户名 <%=user.getUserName() %><br>
密码:<%=user.getPassword() %><br>
<%
out.println("Hello World @@@@@") ;
%>
<hr>
用户名:<jsp:getProperty name="user" property="userName" /><br>
密码:<jsp:getProperty name="user" property="password" /><br>
</body>
</html>
调试方法:tomcat启动后,改动jsp、html文件,要删除tomcat 底下的 webapps/项目名称/work底下下中间文件。该目录底下存放着.jsp文件对应的.java 和.class。
JSP页面乱码
输入http://localhost:8080/ch3/ch5/register_utf8.jsp 出现乱码
解决方法:
1、jsp文件的编码, eclipse中查看: edit->set endcoding
2、<%@ page contentType=”text/html; charset=UTF-8” language=”Java” pageEncoding=”UTF-8” %>
服务器接收到获取xx.jsp请求时,会把xxx.jsp转化为servlet(该文件存在在work目录下:xxx.java),此时转化的编码格式是依据页面指令元素 的pageEncoding
也就说pageEncoding的属性值必须与步骤1中查到的jsp文件编码一致。
查看xxx.java中关于中文部分是否显示正常。
3、浏览器的编码格式
contentType=”text/html; charset=UTF-8”
这里指明浏览器以何种编码显示。
中文参数乱码
输入http://localhost:8080/ch3/ch5/register_utf8.html,输入中文用户名后请求http://localhost:8080/ch3/ch5/register_utf8.jsp出现乱码
解决方法:在tomcat conf/server.xml
加入URIEncoding=”UTF-8”