`
kaixuan489577823
  • 浏览: 31393 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

session的用法和在项目中的应用

    博客分类:
  • ssh
阅读更多
在我所做 的项目中用到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"/>




分享到:
评论

相关推荐

    详解ABP框架中Session功能的使用方法

    虽然你可以用自己的方式去实现它(IAbpSession),但是它在module-zero项目中已经有了完整的实现。 注入Session IAbpSession通常是以属性注入的方式存在于需要它的类中,不需要获取会话信息的类中则不需要它。如果...

    spring-session-docker-demo:该项目使用Spring Boot,Spring Session,Redis,HAProxy和Docker在Docker Compose上运行HA环境

    这是一个演示项目,使用Spring Boot,Spring Session,Redis,HAProxy和Docker演示了可伸缩环境中Spring Session的使用。 先决条件 $ docker-machine create --driver virtualbox dev 为了让docker与我们刚刚创建的...

    UML建模,python web框架Django,具基本增删改查和session,内置商品爬虫类提供个性化运动鞋类产品推荐服务

    系统运用面向对象的分析设计方法,使用UML建模,采用python web框架Django进行开发,使用中间件、ModelForm等工具,具有基本的增删改查功能和session设置,并内置了商品爬虫类为用户提供了个性化的运动鞋类产品推荐...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    所使用的应用服务器是jboss 5.1和weblogic 11g,详细介绍了这两种应用服务器的安装和使用,以及如何在两大主流服务器上安装、部署java ee应用。  本书内容主要包括三部分,第一部分介绍java ee开发的基础知识,...

    双11电商项目实战之在线抽奖系统项目

    3奖项模块:通过后端实现了新增奖项,修改奖项,删除奖项等功能,在修改奖项采用了批量更新,使用的方法是Mybaits批量操作,提升了效率. 项目亮点:1框架升级:将从Servlet升级到SSM框架,框架变主流框架下从数据&架构&...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     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的核心接口  ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     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的核心接口  ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     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的核心接口  ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     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的核心接口  ...

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    phpsession:PHP 会话工具

    文档PHPSession 是一个小包,用于在面向对象和更安全的方法中使用会话。 有一个名为Session的类,您可以与之交互以访问操作会话。安装使用作曲家强烈建议使用将 PHPSession 添加到您的应用程序中。 如果您不熟悉 ...

    在Angular中使用JWT认证方法示例

    本文介绍了在Angular中使用JWT认证方法示例,分享给大家,具体如下: 项目地址: grading-system 基于session的认证和基于token的认证的方式已经被广泛使用。在session认证中,服务端会存储一份用户登录信息,这份...

    超级有影响力霸气的Java面试题大全文档

    当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 20、abstract class和interface有什么区别? ...

    PHP PHP5.0

    PHP数据的存取与传递 Session、cookie在实际项目中的应用 Session、cookie的定义以及使用方法 Session、cookie的记录方式 处理Session、cookie的函数 复杂样例(13个) 5 PHP文件操作 文件操作在实际项目中的应用 ...

    asp.net知识库

    也论该不该在项目中使用存储过程代替SQL语句 如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典信息 C#中利用GetOleDbSchemaTable获取数据库内表信息...

    基于PHP+MySQL实现的科研项目成果管理系统源代码+数据库

    基于PHP+MySQL实现的科研项目成果管理系统源代码+数据库 安装 composer create-project topthink/think tp 6.0.* 如果需要更新框架使用 composer update topthink/framework ...统一和精简大量用法

    javaiHRM人力资源管理系统项目实战视频教程

    手把手视频详细讲解项目开发全过程,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 项目介绍: iHRM是一款基于SaaS平台的人力资源管理系统, 企业通过该系统可以完成员工管理、审批管理、考勤管理、社保...

    精通hibernate:对象持久化技术孙卫琴第二版part2

    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的...

Global site tag (gtag.js) - Google Analytics