以登录界面为例:为了统一代码,将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");
本文介绍了一种解决Web登录界面中文乱码的方法,通过设置HTML文档编码为UTF-8,并在Servlet中设置响应内容类型,确保了中文字符正确显示。同时提供了额外的配置建议以应对复杂的编码转换场景。
1112

被折叠的 条评论
为什么被折叠?



