以登录界面为例:为了统一代码,将HTML格式改为utf-8
<span style="font-size:14px;"><html>
<head>
<title>登录界面</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body align="center">
<form name="input" action="./text" method="get"> <!-- action为虚拟目录调用跳转出此界面时路径,method访问方式 -->
用户名:
<input type="text" name="name">
<br>
<br>
密 码:
<input type="password" name="password">
<br>
<br>
<input type="submit" value="登录">
</form>
</body>
</html></span>
<span style="font-size:14px;">public class WebTest extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8"); //防止中文输出乱码问题(输出)
String userName = req.getParameter("name");
String passWord = req.getParameter("password"); //获取传递值
System.out.println("userName :"+userName); //在doc命令中打印
PrintWriter writer = resp.getWriter();
if (userName.equals("123")&&passWord.equals("123")) {
writer.print("<h1>"+userName+"登录成功"+"</h1>");
}else {
writer.print("<h1>"+userName+"登录失败"+"</h1>");
}
// writer.print("登录成功");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) //当方法method改为post时调用
throws ServletException, IOException {
doGet(req, resp);
}
}</span>
这样统一编码后我的乱码问题就解决了,但是如果获取值时还存在乱码问题,可以试一下下面两种方法:
1、在tomcat的conf中的server.xml中添加上如下代码:
2、在servlet中加上String user = new String(userName.getBytes("ISO-8859-1"), "UTF-8");