JSp的session内置对象取值方法
//创建session对象
HttpSession session =requst.getSession();
//设置session 对象的属性值
session.setAttribute("属性名",值);
取值
Object object=session.getAttibute("属性名")
设置方法
//设置响应回去的类型
response.setContentType("text/html");
//设置响应的字符编码格式
response.setCharacterEncoding("UTF-8");
request(请求)
//获取请求属性的值
request.getParameter("属性名");
多用于表单提交和URL参数的传递的取值
JSp内置对象生命周期:
out 只在本jsp页面使用 无生命周期
request 生命周期 一次请求
response 生命周期 一次响应
session 生命周期 项目浏览器关闭时,生全周期结束,默认不操作项目超过30分钟生命周期结束
application 生命周期 当开启Tomcat服务器时创建,关闭Tomcat服务器时结束生命周期 (作用:统计服务器访问人数或流量)
页面跳转:
response.sendRedirect("admin/one.jsp") 重定向
RequestDispatcher 请求跳转
两者实现的效果相同
二者的区别:
1、
URL 地址的变化用response.sendRedirect时,RequestDi.spatcher不会使URL地址进行变化。
RepuestDispatcher 是服务器端请求机制的跳转
response.sendRedirect 是客户端请求机制的重定向
2、
RequestDispatcher传值通过JSP-Servlet-JSp形式直接传入到下一个JSp页面
response.sendRedirect 传值通过JSP-Servlet-JSP形式,只能够传递到请求机制重定向这之前
3、
如果项目要跳转到另外一个服务器的页面时,用response.sendRedirect进行重定向
4、
我们尽量使用RequestDispatcher方式,因为是服务器响应,所以在web容器执行效率较高
RequestDispatcher什么时候使用呢?
项目中不进行页面的交互跳转的时候,例如一个界面的增、删、改、查,或者相关联同类型模块之间的跳转
response.sendRedirect重定向什么时候使用呢?
无关联的不同模块间跳转使用,例如,用户界面模块跳转到产品信息界面模块
5、
RequestDispatcher基本上认定使用在Servlet里面
response.sendRedirect 用在Servlet和JSP页面较多
重定向传值 只影响request,不影响session的传值
session何时使用?
传值时尽量不要使用session
购物车的实现必须使用session对象
session.removeAttribute("name") 全部删除物品
如果选择性删除?
传入要删除的购物信息主键id值,根据id值支查找集合中的对应信息,然后做集合中的删除操作
for(Product product : list){
if(deleteid==product.getid()){
list.remove(product);
}
}
session.setAttribute("gouwu",list)
两种提交方式的乱码处理:
post提交方式乱码处理
中文乱码问题
request.setcharacterEncoding("UTF-8");
处理get方式提交的乱码方式处理
String names=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8")