当在Servlet类中接收网页传来的数据中包含中文时,容易出现乱码现象,先看代码:
public class AddBookServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String addBookId = req.getParameter("addBookId");//接收网页数据
String addBookName = req.getParameter("addBookName");
String addBookState = req.getParameter("addBookState");
String addBookPrice = req.getParameter("addBookPrice");
String addBookIntroduce = req.getParameter("addBookIntroduce");
System.out.println(addBookName);//打印接收到的数据信息
System.out.println(addBookIntroduce);
}
}
打印的结果:
这是不需要去更改配置文件,只需要用请求对象设置一下编码方式就行:
public class AddBookServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");//解决乱码的关键所在
String addBookId = req.getParameter("addBookId");//接收网页数据
String addBookName = req.getParameter("addBookName");
String addBookState = req.getParameter("addBookState");
String addBookPrice = req.getParameter("addBookPrice");
String addBookIntroduce = req.getParameter("addBookIntroduce");
System.out.println(addBookName);//打印接收到的数据信息
System.out.println(addBookIntroduce);
}
}