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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Struts2自定义拦截器实例—登陆权限验证

發(fā)布時(shí)間:2025/6/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Struts2自定义拦截器实例—登陆权限验证 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

版本:struts2.1.6

此實(shí)例實(shí)現(xiàn)功能:用戶需要指定用戶名登陸,登陸成功進(jìn)入相應(yīng)頁(yè)面執(zhí)行操作,否則返回到登陸頁(yè)面進(jìn)行登陸,當(dāng)直接訪問操作頁(yè)面(登陸后才能訪問的頁(yè)面)時(shí)則不允許,須返回登陸頁(yè)面。

代碼如下:

一、頁(yè)面

login.jsp

[xhtml] view plain copy
  • <%@?page?language="java"?import="java.util.*"?pageEncoding="UTF-8"%>??
  • ??
  • <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">??
  • <html>??
  • ??<head>????
  • ????<title>yuewei'Login</title>???
  • ????<!--?
  • ????<link?rel="stylesheet"?type="text/css"?href="styles.css"?mce_href="styles.css">?
  • ????-->??
  • ??</head>??
  • ????
  • ??<body>??
  • ??<form?action="login.action"?method="post">??
  • ??User:<input?type="text"?name="username"><br>??
  • ??Passoword:<input?type="password"?name="password"><br>??
  • ??<input?type="submit"?value="submit">??
  • ??</form>??
  • ?????
  • </body>??
  • </html>??
  • welcome.jsp

    [xhtml] view plain copy
  • <%@?page?language="java"?import="java.util.*"?pageEncoding="UTF-8"%>??
  • <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">??
  • <html>??
  • ??<head>??
  • ?????
  • ????<title>?yuewei's?Welcome</title>??
  • ??????
  • ?<!--?
  • ?<link?rel="stylesheet"?type="text/css"?href="styles.css"?mce_href="styles.css">?
  • ?-->??
  • ??
  • ??</head>??
  • ????
  • ??<body>??
  • ??<h1>登錄成功后顯示此頁(yè)面</h1>??
  • ??<a?href="show.action"?mce_href="show.action">show</a>??
  • ??</body>??
  • </html>??
  • show.jsp

    [xhtml] view plain copy
  • <%@?page?language="java"?import="java.util.*"?pageEncoding="UTF-8"%>??
  • ??
  • <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">??
  • <html>??
  • ??<head>??
  • ??????
  • ????<title>yuewei's?Show</title>??
  • ??????
  • ????<!--?
  • ????<link?rel="stylesheet"?type="text/css"?href="styles.css"?mce_href="styles.css">?
  • ????-->??
  • ??
  • ??</head>??
  • ????
  • ??<body>??
  • ????Show?This?Page???
  • ????????登錄后執(zhí)行此頁(yè)面<br>??
  • ??</body>??
  • </html>??
  • ?

    二、Action

    LoginFormAction

    [java] view plain copy
  • package?com.ywjava.action;??
  • ??
  • import?com.opensymphony.xwork2.ActionSupport;??
  • ??
  • public?class?LoginFormAction?extends?ActionSupport?{??
  • ????public?String?exexcute()?{??
  • ????????return?"success";??
  • ????}??
  • }??
  • LoginAction

    [java] view plain copy
  • package?com.ywjava.action;??
  • ??
  • import?com.opensymphony.xwork2.ActionContext;??
  • import?com.opensymphony.xwork2.ActionSupport;??
  • import?com.ywjava.utils.Constants;??
  • ??
  • public?class?LoginAction?extends??ActionSupport{??
  • private?String?username;??
  • private?String?password;??
  • public?String?getPassword()?{??
  • ????return?password;??
  • }??
  • public?void?setPassword(String?password)?{??
  • ????this.password?=?password;??
  • }??
  • public?String?getUsername()?{??
  • ????return?username;??
  • }??
  • public?void?setUsername(String?username)?{??
  • ????this.username?=?username;??
  • }??
  • ??
  • private?boolean?isInvalid(String?value)?{?????
  • ????return?(value?==?null?||?value.length()?==?0);?????
  • }?????
  • public?String?execute(){??
  • ????????System.out.println(username);??
  • ????????System.out.println(password);??
  • ??????????
  • ?????????if?(isInvalid(getUsername()))?????
  • ????????????????return?INPUT;?????
  • ????????
  • ????????????if?(isInvalid(getPassword()))?????
  • ????????????????return?INPUT;?????
  • ????????
  • ??
  • ????if(this.getUsername().equals("yuewei")&&?this.getPassword().equals("yuewei")){??
  • ????????ActionContext.getContext().getSession().put(Constants.USER_SESSION,getUsername());??
  • ????????ActionContext.getContext().getSession().put(Constants.PASS,getPassword());??
  • ????????return?"success";??
  • ????}??
  • ????return?"error";??
  • }??
  • }??
  • ShowAction

    [java] view plain copy
  • package?com.ywjava.action;??
  • ??
  • import?com.opensymphony.xwork2.ActionSupport;??
  • ??
  • public?class?ShowAction?extends?ActionSupport?{??
  • ?public?String?execute()?{??
  • ??return?"success";??
  • ?}??
  • }??
  • 三、攔截器

    [java] view plain copy
  • package?com.ywjava.interceptot;??
  • ??
  • import?java.util.Map;??
  • ??
  • import?com.opensymphony.xwork2.Action;??
  • import?com.opensymphony.xwork2.ActionContext;??
  • import?com.opensymphony.xwork2.ActionInvocation;??
  • import?com.opensymphony.xwork2.interceptor.AbstractInterceptor;??
  • import?com.ywjava.utils.Constants;??
  • ??
  • public?class?LoginInterceptor?extends?AbstractInterceptor?{??
  • ??
  • ????@Override??
  • ????public?String?intercept(ActionInvocation?invocation)?throws?Exception?{??
  • ??
  • ????????//?取得請(qǐng)求相關(guān)的ActionContext實(shí)例??
  • ????????ActionContext?ctx?=?invocation.getInvocationContext();??
  • ????????Map?session?=?ctx.getSession();??
  • ????????String?user?=?(String)?session.get(Constants.USER_SESSION);??
  • ??
  • ????????//?如果沒有登陸,或者登陸所有的用戶名不是yuewei,都返回重新登陸??
  • ??
  • ????????if?(user?!=?null?&&?user.equals("yuewei"))?{??
  • ????????????System.out.println("test");??
  • ????????????return?invocation.invoke();??
  • ????????}??
  • ??
  • ????????ctx.put("tip",?"你還沒有登錄");??
  • ????????return?Action.LOGIN;??
  • ??
  • ????}??
  • ??
  • }??
  • 四 struts.xml

    [c-sharp] view plain copy
  • <?xml?version="1.0"?encoding="UTF-8"?>??
  • <!DOCTYPE?struts?PUBLIC??
  • ????"-//Apache?Software?Foundation//DTD?Struts?Configuration?2.1//EN"??
  • ????"http://struts.apache.org/dtds/struts-2.1.dtd">??
  • <struts>??
  • ????<package?name="authority"?extends="struts-default">??
  • ??????
  • ????????<!--?定義一個(gè)攔截器?-->??
  • ????????<interceptors>??
  • ????????????<interceptor?name="authority"??
  • ????????????????class="com.ywjava.interceptot.LoginInterceptor">??
  • ????????????</interceptor>??
  • ????????????<!--?攔截器棧?-->??
  • ????????????<interceptor-stack?name="mydefault">??
  • ????????????????<interceptor-ref?name="defaultStack"?/>??
  • ????????????????<interceptor-ref?name="authority"?/>??
  • ????????????</interceptor-stack>??
  • ????????</interceptors>??
  • ??
  • ????????<!--?定義全局Result?-->??
  • ????????<global-results>??
  • ????????????<!--?當(dāng)返回login視圖名時(shí),轉(zhuǎn)入/login.jsp頁(yè)面?-->??
  • ????????????<result?name="login">/login.jsp</result>??
  • ????????</global-results>??
  • ??
  • ????????<action?name="loginform"??
  • ????????????class="com.ywjava.action.LoginFormAction">??
  • ????????????<result?name="success">/login.jsp</result>??
  • ????????</action>??
  • ??????????
  • ????????<action?name="login"?class="com.ywjava.action.LoginAction">??
  • ????????????<result?name="success">/welcome.jsp</result>??
  • ????????????<result?name="error">/login.jsp</result>??
  • ????????????<result?name="input">/login.jsp</result>??
  • ????????</action>??
  • ??
  • ????????<action?name="show"?class="com.ywjava.action.ShowAction">??
  • ????????????<result?name="success">/show.jsp</result>??
  • ????????????<!--?使用此攔截器?-->??
  • ????????????<interceptor-ref?name="mydefault"?/>??
  • ????????</action>??
  • ??????????
  • ????</package>??
  • </struts>?
  • 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

    總結(jié)

    以上是生活随笔為你收集整理的Struts2自定义拦截器实例—登陆权限验证的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。