session的用法和在项目中的应用(收藏)

在我所做 的项目中用到session的地方


1。用户的登录/退出
2。购物车
jsp+servelt+javabean的mvc的开发模式下的应用:只粘贴servlet代码了:

登录:

Java代码 复制代码

  1. if  (user !=  null ) {   
  2. HttpSession session = request.getSession( true );   
  3. session.setAttribute( "user" , user);   
  4.   
  5. ShopCart cart =  new  ShopCart();   
  6. session .setAttribute( "cart" , cart);   
  7. response.sendRedirect( "../product/products1.jsp" );   //重定向的使用session
  8.   
  9. } else  {   
  10. request .setAttribute( "msg" "此用户不存在" );   //跳转的使用request
  11. this .getServletContext().getRequestDispatcher( "/index.jsp" ).forward(request, response);   
  12. }  



用户退出:

 

Java代码 复制代码
  1. HttpSession session=request.getSession( false );   
  2. session.removeAttribute( "cart" );   
  3. session.removeAttribute( "user" );   
  4. session.invalidate();   
  5. response.sendRedirect( "../index.jsp" );  

 

购物车:

 

Java代码 复制代码
  1.   
  2. public   void  doGet(HttpServletRequest request, HttpServletResponse response)   
  3.              throws  ServletException, IOException {   
  4.            
  5.         String option=request.getParameter( "option" );   
  6.            
  7.            
  8.         System.out.println( "-------------" +option);   
  9.          if (option!= null &&! "" .equals(option)){   
  10.             HttpSession session=request.getSession( false );   
  11.             ShopCart cart=(ShopCart)session.getAttribute( "cart" );   
  12.                
  13.              if (cart== null ){   
  14.                 cart= new  ShopCart();   
  15.                 session.setAttribute( "cart" , cart);   
  16.             }   
  17.              String pid=request.getParameter( "pid" );   
  18.                          int  id=Integer.parseInt(pid);   
  19.                
  20.                         ProductDAO pdao= new  ProductDAOimpl();   
  21.              if ( "add" .equals(option)){   
  22.                 Product product=pdao.getProductById(id);   
  23.                 cart.addProduct(product);   
  24.                  //this.getServletContext().getRequestDispatcher("/servlet/ProductServlet?option=userfind").forward(request, response);   
  25.                    
  26.                    
  27.                    
  28.             } else   if ( "delet" .equals(option)){   
  29.                    
  30.                 cart.deletProduct(id);   
  31.                  this .getServletContext().getRequestDispatcher( "/product/cartshowyk.jsp" ).forward(request, response);   
  32.                    
  33.                    
  34.                    
  35.                    
  36.            
  37.                    
  38.                    
  39.             } else   if ( "update" .equals(option)){   
  40.                 String number2=request.getParameter( "number2" );   
  41.                  int  number=Integer.parseInt(number2);   
  42.                 cart.updateProductNumber(id, number);   
  43.                  this .getServletContext().getRequestDispatcher( "/product/cartshowyk.jsp" ).forward(request, response);   
  44.                    
  45.                    
  46.                    
  47.                    
  48.             }   
  49.         }   
  50.   
  51.     }  



----------------------------------------------------------------------下面只貼 在struts2 中获取 session,reuqest,response的方法:

1.
非IoC(Spring中的控制反转)方式:

 

Java代码 复制代码
  1.   
  2. 直接使用ServletActionContext类的getRequest、getResponse方法来获得HttpServletRequest、HttpServletResponse对象。代码如下:   
  3.       
  4.  HttpServletRequest request=ServletActionContext.getRequest();   
  5.  HttpServletResponse response = ServletActionContext.getResponse();   
  6.   
  7. Map session=ActionContext.getContext().getSession();  





2.IoC方式:
 

Java代码 复制代码
  1. public   class  BaseAction  extends  ActionSupport  implements  SessionAware, ServletRequestAware, ServletResponseAware {      
  2.      
  3.       
  4.           
  5.     ActionContext context = ActionContext.getContext();      
  6.     HttpServletRequest request;      
  7.     HttpServletResponse response;      
  8.     SessionMap session;      
  9. public   void  setSession(Map map) {      
  10.          this .session = (SessionMap) map;      
  11.     }      
  12.      public   void  setServletRequest(HttpServletRequest request) {      
  13.          this .request = request;      
  14.     }      
  15.      public   void  setServletResponse(HttpServletResponse response) {      
  16.          this .response = response;      
  17.     }      
  18.           
  19. }    



三。项目中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"/> 
 原文地址:http://kaixuan489577823.javaeye.com/blog/665404

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年11月    »
123
45678910
11121314151617
18192021222324
252627282930
搜索
标签列表
网站分类
最新留言
    文章归档
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.闽ICP备11018667号-2