真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

springaopaction中驗(yàn)證用戶登錄狀態(tài)的實(shí)例代碼

最近在學(xué)習(xí)ssh框架時(shí),照著網(wǎng)上做了一個(gè)商城系統(tǒng),之前在一些需要用戶存在的操作中,都是在每一個(gè)action中寫(xiě)重復(fù)的代碼,這樣做現(xiàn)在想起來(lái)并不好,想起了spring的aop,于是想通過(guò)aop來(lái)給每個(gè)需要用戶操作的Action驗(yàn)證用戶登錄狀態(tài)。

為溫江等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及溫江網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、溫江網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

想法是這樣的:

1. 用戶登錄時(shí)把userId放入session中

2. 通過(guò)spring 寫(xiě)一個(gè)advice來(lái)獲取session中的userId,判斷用戶登錄狀態(tài),如果userId不符合,則拋出自定義異常

3. 通過(guò)struts中配置來(lái)捕獲異常,跳轉(zhuǎn)界面

以下是代碼: 

advice代碼:

public class IsUserLoginAdvice{

  public void isUserLogin() throws UserNotFoundException{
    // TODO Auto-generated method stub
    int id=0;
    Map sessionMap=ActionContext.getContext().getSession();
    System.out.println(sessionMap);
    try {
      //這里在一開(kāi)始時(shí)userId是不存在的可能會(huì)拋出NullPointException,catch起來(lái)
      id=(int) sessionMap.get("userId");
      //在用戶注銷(xiāo)時(shí)我把session中的userId設(shè)為0
      if(id==0){
        throw new UserNotFoundException();
      }
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      throw new UserNotFoundException();
    }
  }
}

struts.xml:

這里通過(guò)全局異常映射來(lái)處理這個(gè)異常:

  

    
      /web_resource/error_jsp/user_not_found.jsp
      
    

    
      
    
  

全局異常有個(gè)name屬性,給那些想要共享該異常捕獲的package繼承,這樣就可以共享該異常捕獲行為:

applicationContext.xml:

   
  
    
      
      
    
  
  
  

其中pointcut可以通過(guò)or 來(lái)連接多個(gè)切入點(diǎn),這里有這么多切入點(diǎn)是因?yàn)榈谝淮巫?,沒(méi)想到用aop,各個(gè)Action的命名沒(méi)有考慮太多,導(dǎo)致現(xiàn)在必須配置這么多個(gè)切入點(diǎn)表達(dá)式- -!!!

還有一個(gè),如果struts交由spring管理時(shí),即struts.xml中配置了這一句:

在生成代理類(lèi)時(shí)會(huì)發(fā)生錯(cuò)誤,無(wú)法捕捉到拋出的異常,在網(wǎng)上查了后發(fā)現(xiàn)需要在struts.xml加入這一句,struts就可以捕捉到該異常了:

  
  

剛剛還想刪除這一句配置后把異常發(fā)上來(lái),但是發(fā)現(xiàn)刪除后居然還可以運(yùn)行?!

算了還是寫(xiě)上來(lái),以后遇到這個(gè)問(wèn)題,還可以看一下博客。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


當(dāng)前文章:springaopaction中驗(yàn)證用戶登錄狀態(tài)的實(shí)例代碼
網(wǎng)頁(yè)URL:http://weahome.cn/article/ihhjoo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部