1.request.setCharacterEncoding("utf-8");只适用于以post方式提交的数据,并不适用于get方式。
2.get方式传参的乱码问题解决方法:
例:String flightId=request.getParameter("flightId");
flightId=new String (flightId.getBytes("iso-8859-1"),"utf-8");
3.请求转发与重定向的区别:
(1):在请求转发过程中,页面只显示的是第一次被请求的页面的地址。(地址不变)
例:
dosearch.jsp页面中:
if(temp!=null){
request.setAttribute("key",temp);//将数据temp保存到请求范围中(可以存放很多数据)。
request.getRequestDispatcher("result.jsp").forward(request,response);//将请求转发到request.jsp页面。
result.jsp页面中:
FlightInfoModel model=(FlightInfoModel)request.getAttribute("key");
(2):在重定向过程中,只显示最后一次被重定向的地址(地址会变)
例:if (temp != null) {
response.sendRedirect("result.jsp?flightId=" + flightId);
} else {
response.sendRedirect("result.jsp");
}
(3):请求转发时只有一个请求可以一直延续。
(4):重定向是指前一个请求结束了,后一个新的请求结束了,两个请求之间毫无关系,重定向几次就发出几次请求。
(5):请求转发用request操作。
(6):重定向用response操作。
4.将temp字符保存到当前页面范围中:
pageContext.setAttribute("page","temp");
String temp=(String)pageContext.getAttribute("page");
5.放到request中的数据只有请求结束后才失效。(请求开始-->请求结束)
6.将数据保存到session范围中,只要session没有销毁,在任何页面都可以访问。(同一连接者,所有页面共用)
session.setAttribute("user",temp);
7.将数据放到application范围中。(所有连接者,所有页面共用的对象)
application.setAttribute("app",temp);
例:群聊模式,在线人数等公共数据应用。