问题描述:在userservlet中设置了编码格式
@WebServlet("/user")
public class UserServlet extends BaseServlet {
protected void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
//获取用户名密码
String username = req.getParameter("username");
String password = req.getParameter("password");
//设置响应的编码格式
resp.setCharacterEncoding("utf-8");
//设置响应格式
resp.setContentType("text/html;charset=UTF-8");
PrintWriter writer = resp.getWriter();
//新建user对象,设置账号密码
User user = new User();
user.setUsername("admin");
user.setPassword("123456");
//判断登录状态
if ("admin".equals(username)&&"123456".equals(password)){
resp.sendRedirect(req.getContextPath()+"/index.html");
}else {
req.getRequestDispatcher("login.html").forward(req,resp);
}
}
}
但是依然会有乱码,后来在网上搜索后发现是Tomcat中需要设置编码格式
具体方法:在Tomcat安装目录中找到conf文件夹
在conf中找到web.xml文件并打开
在如下位置添加框框内的代码
代码如下:
<init-param>
<param-name>fileEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
OK,问题解决了