在我所做 的项目中用到session的地方
1。用户的登录/退出
2。购物车
在jsp+servelt+javabean的mvc的开发模式下的应用:只粘贴servlet代码了:
登录:
if (user != null) {
HttpSession session = request.getSession(true);
session.setAttribute("user", user);
ShopCart cart = new ShopCart();
session.setAttribute("cart", cart);
response.sendRedirect("../product/products1.jsp");
}else {
request.setAttribute("msg", "此用户不存在");
this.getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
}
用户退出:
HttpSession session=request.getSession(false);
session.removeAttribute("cart");
session.removeAttribute("user");
session.invalidate();
response.sendRedirect("../index.jsp");
购物车:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String option=request.getParameter("option");
System.out.println("-------------"+option);
if(option!=null&&!"".equals(option)){
HttpSession session=request.getSession(false);
ShopCart cart=(ShopCart)session.getAttribute("cart");
if(cart==null){
cart=new ShopCart();
session.setAttribute("cart", cart);
}
String pid=request.getParameter("pid");
int id=Integer.parseInt(pid);
ProductDAO pdao=new ProductDAOimpl();
if("add".equals(option)){
Product product=pdao.getProductById(id);
cart.addProduct(product);
//this.getServletContext().getRequestDispatcher("/servlet/ProductServlet?option=userfind").forward(request, response);
}else if("delet".equals(option)){
cart.deletProduct(id);
this.getServletContext().getRequestDispatcher("/product/cartshowyk.jsp").forward(request, response);
}else if("update".equals(option)){
String number2=request.getParameter("number2");
int number=Integer.parseInt(number2);
cart.updateProductNumber(id, number);
this.getServletContext().getRequestDispatcher("/product/cartshowyk.jsp").forward(request, response);
}
}
}
----------------------------------------------------------------------下面只貼 在struts2 中获取 session,reuqest,response的方法:
1.
非IoC(Spring中的控制反转)方式:
直接使用ServletActionContext类的getRequest、getResponse方法来获得HttpServletRequest、HttpServletResponse对象。代码如下:
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
Map session=ActionContext.getContext().getSession();
2.IoC方式:
public class BaseAction extends ActionSupport implements SessionAware, ServletRequestAware, ServletResponseAware {
ActionContext context = ActionContext.getContext();
HttpServletRequest request;
HttpServletResponse response;
SessionMap session;
public void setSession(Map map) {
this.session = (SessionMap) map;
}
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
}
三。项目中session的用法
1.session的创建
Map session = ActionContext.getContext().getSession();
session.put("usr", usr);
2.通过session获取值
在jsp页面中:
<s:property value="#session.usr.username"/>
3.session的销毁
Map session = ActionContext.getContext().getSession();
session.remove("usr");
session.clear();
4.然后在jsp中取值:
<s:property value="#session.user.username"/>
分享到:
相关推荐
如:A,B两个服务,在浏览器中登录访问A后,当前打开的浏览器上在开一个选项卡访问B服务后,回过来点击访问A时session丢失,需要重新登录A才可以访问。经过资料查找,发现问题是因为:IP相同认为是同一个域,接收了B...
cookie 机制和 session 机制的区别 cookie 机制和 session 机制是两种常用的Web会话跟踪机制,虽然它们都可以实现会话跟踪,但它们的实现机制和应用场景却有所...了解它们的区别和特点,可以更好地应用于实际项目中。
虽然你可以用自己的方式去实现它(IAbpSession),但是它在module-zero项目中已经有了完整的实现。 注入Session IAbpSession通常是以属性注入的方式存在于需要它的类中,不需要获取会话信息的类中则不需要它。如果...
这是一个演示项目,使用Spring Boot,Spring Session,Redis,HAProxy和Docker演示了可伸缩环境中Spring Session的使用。 先决条件 $ docker-machine create --driver virtualbox dev 为了让docker与我们刚刚创建的...
系统运用面向对象的分析设计方法,使用UML建模,采用python web框架Django进行开发,使用中间件、ModelForm等工具,具有基本的增删改查功能和session设置,并内置了商品爬虫类为用户提供了个性化的运动鞋类产品推荐...
2. 实现 Controller 层方法:在客户控制器类 CustomerController 中编写创建客户的方法,获取了 Session 中的当前用户信息,然后将当前用户 id 信息添加到 Customer 对象的创建人 id 属性中。 本报告总结了JAVAEE...
所使用的应用服务器是jboss 5.1和weblogic 11g,详细介绍了这两种应用服务器的安装和使用,以及如何在两大主流服务器上安装、部署java ee应用。 本书内容主要包括三部分,第一部分介绍java ee开发的基础知识,...
3奖项模块:通过后端实现了新增奖项,修改奖项,删除奖项等功能,在修改奖项采用了批量更新,使用的方法是Mybaits批量操作,提升了效率. 项目亮点:1框架升级:将从Servlet升级到SSM框架,框架变主流框架下从数据&架构&...
2.2.2 ORM中间件的基本使用方法 2.2.3 常用的ORM中间件 2.3 实体域对象的其他持久化模式 2.3.1 主动域对象模式 2.3.2 JDO模式 2.3.3 CMP模式 2.4 Hibernate API简介 2.4.1 Hibernate的核心接口 ...
2.2.2 ORM中间件的基本使用方法 2.2.3 常用的ORM中间件 2.3 实体域对象的其他持久化模式 2.3.1 主动域对象模式 2.3.2 JDO模式 2.3.3 CMP模式 2.4 Hibernate API简介 2.4.1 Hibernate的核心接口 ...
2.2.2 ORM中间件的基本使用方法 2.2.3 常用的ORM中间件 2.3 实体域对象的其他持久化模式 2.3.1 主动域对象模式 2.3.2 JDO模式 2.3.3 CMP模式 2.4 Hibernate API简介 2.4.1 Hibernate的核心接口 ...
2.2.2 ORM中间件的基本使用方法 2.2.3 常用的ORM中间件 2.3 实体域对象的其他持久化模式 2.3.1 主动域对象模式 2.3.2 JDO模式 2.3.3 CMP模式 2.4 Hibernate API简介 2.4.1 Hibernate的核心接口 ...
在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...
文档PHPSession 是一个小包,用于在面向对象和更安全的方法中使用会话。 有一个名为Session的类,您可以与之交互以访问操作会话。安装使用作曲家强烈建议使用将 PHPSession 添加到您的应用程序中。 如果您不熟悉 ...
在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...
包括页面间的参数传递、hidden表单域的作用、jsp的内置对象、request和session的作用、jsp动作、servlet API中的forward和redirect、class.forName的作用、分页的实现、cookie被禁止后使用session、项目开发的阶段、...
本文介绍了在Angular中使用JWT认证方法示例,分享给大家,具体如下: 项目地址: grading-system 基于session的认证和基于token的认证的方式已经被广泛使用。在session认证中,服务端会存储一份用户登录信息,这份...
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 20、abstract class和interface有什么区别? ...