获取请求参数
get 或 post请求&&Content-Type 为application/x-www-form-urlencoded :
可以通过HttpServletRequest.getParameter
或HttpServletRequest.parameterMap
来获取URL中字段参数
post请求body参数只能通过HttpServletRequest.reader
或HttpServletRequest.inputStream
获取
中文乱码问题
1.HttpServletRequest.getParameter
或HttpServletRequest.parameterMap
获取URL中字段参数中文乱码问题
原因是浏览器默认用UTF-8进行URL encode,而tomcat
默认用ISO-8859-1解码后放入parameterMap。解决方案:String(req.getParameter("xxx").getBytes("ISO-8859-1"),"UTF-8")
Tomcat 8后默认以UTF-8解码,故无此问题
请求转发
请求转发(forward)
一种在服务器内部的资源跳转方式,1次请求 req.getRequestDispatcher("/本服务内要挑战的路径").forward(req, resp)
重定向
请求2次
方式1:
1 | resp.setStatus(302) |
方式2:
1 | resp.sendRedirect("重定向地址") |
response
1 | resp.contentType = "text/html;charset=utf-8" //告诉客户端响应字符集,如果用字节流返回文字,也要设置 |