`
kaixuan489577823
  • 浏览: 31475 次
  • 性别: 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"/>




分享到:
评论

相关推荐

    一个服务器搭多个tomcat导致session丢失,或者同一个IP不同端口,多个应用的session会冲突解决方法

    如:A,B两个服务,在浏览器中登录访问A后,当前打开的浏览器上在开一个选项卡访问B服务后,回过来点击访问A时session丢失,需要重新登录A才可以访问。经过资料查找,发现问题是因为:IP相同认为是同一个域,接收了B...

    cookie机制和session机制的区别.docx

    cookie 机制和 session 机制的区别 cookie 机制和 session 机制是两种常用的Web会话跟踪机制,虽然它们都可以实现会话跟踪,但它们的实现机制和应用场景却有所...了解它们的区别和特点,可以更好地应用于实际项目中。

    详解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设置,并内置了商品爬虫类为用户提供了个性化的运动鞋类产品推荐...

    JAVAEE期末项目总结报告.doc

    2. 实现 Controller 层方法:在客户控制器类 CustomerController 中编写创建客户的方法,获取了 Session 中的当前用户信息,然后将当前用户 id 信息添加到 Customer 对象的创建人 id 属性中。 本报告总结了JAVAEE...

    经典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 添加到您的应用程序中。 如果您不熟悉 ...

    java源码包---java 源码 大量 实例

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

    JavaWeb答辩问题.doc

    包括页面间的参数传递、hidden表单域的作用、jsp的内置对象、request和session的作用、jsp动作、servlet API中的forward和redirect、class.forName的作用、分页的实现、cookie被禁止后使用session、项目开发的阶段、...

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

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

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

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

Global site tag (gtag.js) - Google Analytics