日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ssm实现用户登录功能拦截

發布時間:2024/1/8 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ssm实现用户登录功能拦截 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

攔截情況分為登,錄頁面不用攔截用戶未登錄要攔截,登錄后根據用戶的權限進行操作攔截;如果用戶未登錄就訪問某些頁面就攔截該頁面請求跳到登錄頁面,如果用戶登錄后想執行增加操作,但該用戶的權限中沒有增加的權限,所以顯示友好提示。

主要實現用攔截器:

/*** 實現用戶登錄,操作權限的攔截* @author ASUS**/ public class LoginInterceptor implements HandlerInterceptor {private List<String> passList=new ArrayList<>();@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {//允許放行的url路徑String url=request.getRequestURI();System.out.println("url-->"+url);for(String passUrl:passList) {System.out.println("passUrl-->"+passUrl);if(url.indexOf(passUrl)>0) {return true;}}//權限放行,獲取用戶已經登錄時,放在session的權限SysWorker worker= (SysWorker) request.getSession().getAttribute("user");for(SysRight right:worker.getSysJobs().getListRight()) {if(url.indexOf(right.getRightURL())>0) {return true;}else {request.getRequestDispatcher("/WEB-INF/pages/noPower.jsp").forward(request, response);return false;}}//已經登錄放行SysWorker user=(SysWorker)request.getSession().getAttribute("user");if(user!=null) {return true;}request.getRequestDispatcher("/WEB-INF/pages/error.jsp").forward(request, response);return false;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,ModelAndView modelAndView) throws Exception {// TODO Auto-generated method stub}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception {// TODO Auto-generated method stub}public List getPassList() {return passList;}public void setPassList(List passList) {this.passList = passList;}}

在springmvc.xml的配置文件中增加該攔截器:

<!--攔截器 --><mvc:interceptors><mvc:interceptor><mvc:mapping path="/pk/*/*" /><bean class="com.st.eleventh.interceptor.LoginInterceptor"><property name="passList"><list><value>/login</value></list></property></bean></mvc:interceptor></mvc:interceptors>

分析:<mvc:mapping path="/pk/*/*" />表示要攔截的路徑請求。

<property name="passList"><list>? <value>/login</value>?</list></property>存放的是不用攔截的路徑請求,list的值在LoginInterceptor中有一個屬性:List<String> passList=new ArrayList<>();來接收。

效果:

我的座右銘:不會,我可以學;落后,我可以追趕;跌倒,我可以站起來;我一定行。

?

總結

以上是生活随笔為你收集整理的ssm实现用户登录功能拦截的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。