响应乱码处理
字节流
- 服务器发送数据时采用getByte方法,默认使用平台码GBK,浏览器接收时也是GBK
- 可以设置接收数据使用的字符集,通知浏览器的代码要写在最前面
@WebServlet("/ResponseDemo1")
public class ResponseDemo1 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setHeader("Content-type","text/html;charset=utf-8");\
response.getOutputStream().write("啊法克鱿".getBytes("utf-8"));
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
字符流
response.setCharacterEncoding("utf-8");
response.setHeader("Content-type","text/html;charset=utf-8");
response.getWriter().write("啊法克鱿");
注意
请求重定向 ----服务器之间的资源跳转方式
- 请求转发—只能在服务器内部
- 重定向 两次请求,两次响应,浏览器能感受变化
- 两两请求是毫无联系的
原理实现
@WebServlet("/ResponseDemo2")
public class ResponseDemo2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setStatus(302);
response.setHeader("location","http://www.baidu.cn");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
API实现
response.sendRedirect("http://www.tmooc.cn");
定时刷新缓存