struts2登录拦截器.docx
- 文档编号:30185345
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:11
- 大小:17.06KB
struts2登录拦截器.docx
《struts2登录拦截器.docx》由会员分享,可在线阅读,更多相关《struts2登录拦截器.docx(11页珍藏版)》请在冰豆网上搜索。
struts2登录拦截器
struts2登录拦截器示例需求:
要求用户登录,且必须为指定用户名才可以查看系统中某个视图资源;否则,系统直接转入登陆页面。
一、页面部分
1、登陆页面代码(login.jsp)Java代码%@pagelanguage=javaconten-struts2登录拦截器
示例需求:
要求用户登录,且必须为指定用户名才可以查看系统中某个视图资源;否则,系统直接转入登陆页面。
一、页面部分
1、登陆页面代码(login.jsp)Java代码
<%@pagelanguage="java"contentType="text/html;charset=GBK"%>
<%@taglibprefix="s"uri="/struts-tags"%>
textname="loginPage"/>
--使用form标签生成表单元素-->
formaction="login"> textfieldname="username"label="%{getText('user')}"/> textfieldname="password"label="%{getText('pass')}"/> submitvalue="%{getText('login')}"/> form> 2、登陆成功页面(welcome.jsp)Java代码 <%@pagelanguage="java"contentType="text/html;charset=GBK"%> <%@taglibprefix="s"uri="/struts-tags"%> textname="succPage"/> head/> textname="succTip"/> --欢迎,${sessionScope.user},您已经登录! ${sessionScope.pass}--> ahref="show.action">show a>
ahref="add.action">add
a>
ahref="qurey.action">qurey
a>
3、登陆失败页面(error.jsp)Java代码
<%@pagelanguage="java"contentType="text/html;charset=GBK"%>
<%@taglibprefix="s"uri="/struts-tags"%>
textname="errorPage"/>
textname="failTip"/>
ahref="login.jsp">return
a>
4、和权限有关的几个显示页面(add.jsp)Java代码
<%@pagelanguage="java"contentType="text/html;charset=GBK"%>
<%@taglibprefix="s"uri="/struts-tags"%>
textname="addPage"/>
textname="addTip"/>
ahref="login.jsp">returnlogin
a>
(show.jsp)
Java代码
<%@pagelanguage="java"contentType="text/html;charset=GBK"%>
<%@taglibprefix="s"uri="/struts-tags"%>
textname="showPage"/>
textname="showTip"/>
ahref="login.jsp">returnlogin
a>
(qurey.jsp)
Java代码
<%@pagelanguage="java"contentType="text/html;charset=GBK"%>
<%@taglibprefix="s"uri="/struts-tags"%>
textname="qureyPage"/>
textname="qureyTip"/>
ahref="login.jsp">returnlogin
a>
<
二、Action部分(LoginAction.java)
Java代码
publicclassLoginActionextendsActionSupport{
privatestaticfinallongserialVersionUID=1030294046920869257L;
privateStringusername;
privateStringpassword;
//处理用户请求的execute方法
publicStringexecute()throwsException{
if(isInvalid(getUsername()))
returnINPUT;
if(isInvalid(getPassword()))
returnINPUT;
if((getUsername().equals("mm")||getUsername().equals("aumy"))
&&getPassword().equals("111")){
//通过ActionContext对象访问Web应用的Session
ActionContext.getContext().getSession().put("user",getUsername());
ActionContext.getContext().getSession().put("pass",getPassword());
System.out.println(getUsername()+"----"+getPassword());
returnSUCCESS;
}else{
System.out.println(getUsername()+"----"+getPassword());
returnERROR;
}
}
privatebooleanisInvalid(Stringvalue){
return(value==null||value.length()==0);
}
publicStringadd(){
returnSUCCESS;
}
publicStringshow(){
returnSUCCESS;
}
publicStringqurey(){
returnSUCCESS;
}
publicStringgetUsername(){
returnusername;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
}
三、拦截器部分(AuthorityInterceptor.java)
Java代码
publicclassAuthorityInterceptorextendsAbstractInterceptor{
privatestaticfinallongserialVersionUID=1358600090729208361L;
//拦截Action处理的拦截方法
publicStringintercept(ActionInvocationinvocation)throwsException{
//取得请求相关的ActionContext实例
ActionContextctx=invocation.getInvocationContext();
Mapsession=ctx.getSession();
//取出名为user的session属性
Stringuser=(String)session.get("user");
//如果没有登陆,或者登陆所有的用户名不是aumy,都返回重新登陆
if(user!
=null&&user.equals("aumy")){
returninvocation.invoke();
}
//没有登陆,将服务器提示设置成一个HttpServletRequest属性
ctx.put("tip","您还没有登录,请登陆系统");
returnAction.LOGIN;
}
}
四、配置文件部分
(struts.xml)
Java代码
DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
"http:
//struts.apache.org/dtds/struts-2.0.dtd">
--不受权限控制的Action请求配置-->
--受权限控制的Action请求配置-->
--定义一个名为authority的拦截器-->
class="com.aumy.struts.example.intercepter.AuthorityInterceptor" name="authority"/> --定义一个包含权限检查的拦截器栈--> --配置内建默认拦截器--> --配置自定义的拦截器--> --定义全局Result--> method="show"> method="add"> (struts.properties) Java代码 struts.custom.i18n.resources=message.messageResouce (web.xml) Java代码 xmlversion="1.0"encoding="UTF-8"? > xmlns=" xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation=" 五、国际化资源文件(messageResouce.properties) Java代码 loginPage=LoginPage errorPage=ErrorPage succPage=WelcomePage failTip=Sorry,Youcan'tlogin! succTip=welcome,youhasloggedin! user=UserName pass=UserPass login=Login showPage=ShowPage showTip=showaexample! addPage=AddPage addTip=addaexample! qureyPage=QureyPage qureyTip=qureyaexample!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- struts2 登录 拦截