在我所做 的项目中用到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"/>
分享到:
相关推荐
虽然你可以用自己的方式去实现它(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设置,并内置了商品爬虫类为用户提供了个性化的运动鞋类产品推荐...
所使用的应用服务器是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 添加到您的应用程序中。 如果您不熟悉 ...
本文介绍了在Angular中使用JWT认证方法示例,分享给大家,具体如下: 项目地址: grading-system 基于session的认证和基于token的认证的方式已经被广泛使用。在session认证中,服务端会存储一份用户登录信息,这份...
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 20、abstract class和interface有什么区别? ...
PHP数据的存取与传递 Session、cookie在实际项目中的应用 Session、cookie的定义以及使用方法 Session、cookie的记录方式 处理Session、cookie的函数 复杂样例(13个) 5 PHP文件操作 文件操作在实际项目中的应用 ...
也论该不该在项目中使用存储过程代替SQL语句 如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典信息 C#中利用GetOleDbSchemaTable获取数据库内表信息...
基于PHP+MySQL实现的科研项目成果管理系统源代码+数据库 安装 composer create-project topthink/think tp 6.0.* 如果需要更新框架使用 composer update topthink/framework ...统一和精简大量用法
手把手视频详细讲解项目开发全过程,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 项目介绍: iHRM是一款基于SaaS平台的人力资源管理系统, 企业通过该系统可以完成员工管理、审批管理、考勤管理、社保...
2.2.2 ORM中间件的基本使用方法 31 2.2.3 常用的ORM中间件 33 2.3 实体域对象的其他持久化模式 34 2.3.1 主动域对象模式 35 2.3.2 JDO模式 37 2.3.3 CMP模式 37 2.4 Hibernate API简介 38 2.4.1 Hibernate的...