servlet实现时,解决编码问题时,发现浏览器编码格式(EDGE浏览器)
1.请求方式为get时,不会出现请求乱码(这里使用tomcat8.5.47,高版本都不会乱码)
2.请求方式为post时,需要解决乱码问题
(1)这里我们设置服务器编码格式为UTF-8,可以解决客户端请求乱码问题。这说明了浏览器发送post请求时,使用了UTF-8编码格式
req.setCharacterEncoding("UTF-8");
(2)当服务器未设置编码格式时,或者设置为UTF-8编码格式时,会出现响应乱码。但是如果设置编码格式为GBK则不会出现乱码问题。这说明浏览器的解码时的编码格式为GBK
@WebServlet("/req02")
public class Servlet007 extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println(req.getRequestURL());
System.out.println(req.getRequestURI());
System.out.println(req.getQueryString());
System.out.println(req.getMethod());
System.out.println(req.getProtocol());
System.out.println(req.getContextPath());
req.setCharacterEncoding("UTF-8");
System.out.println(req.getParameter("uname"));
System.out.println(req.getParameter("upwd"));
System.out.println(Arrays.toString(req.getParameterValues("hobbies")));
resp.setCharacterEncoding("GBK");
req.getRequestDispatcher("req01").forward(req,resp);
}
}
@WebServlet("/req01")
public class Servlet006 extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println(req.getRequestURL());
System.out.println(req.getRequestURI());
System.out.println(req.getQueryString());
System.out.println(req.getMethod());
System.out.println(req.getProtocol());
System.out.println(req.getContextPath());
System.out.println(req.getParameter("uname"));
System.out.println(req.getParameter("upwd"));
System.out.println(Arrays.toString(req.getParameterValues("hobbies")));
resp.getWriter().write("欢迎跳转过来");
}
}