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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

struts2自定义拦截器一——模拟登陆权限验证

發(fā)布時間:2023/12/1 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 struts2自定义拦截器一——模拟登陆权限验证 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、http://localhost:8083/struts2/user.jsp?表示用戶已登陸,存放session對象

2、http://localhost:8083/struts2/quit.jsp?表示用戶已退出,移除session對象

3、http://localhost:8083/struts2/login/addUIHelloWorld.do? 如果session存在則往下執(zhí)行,否則提示“你沒有權(quán)限執(zhí)行該操作”

4、http://localhost:8083/struts2/login/executeHelloWorld.do? 如果session存在則往下執(zhí)行,否則提示“你沒有權(quán)限執(zhí)行該操作”

???

代碼

user.jsp頁面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
request.getSession().setAttribute(
"user", "ljq");
%>

用戶已經(jīng)登錄

????????????

quit.jsp頁面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
request.getSession().removeAttribute(
"user");
%>

用戶已經(jīng)退出登錄

??????????????

Action類

package com.ljq.action;

public class HelloWorldAction {
private String message;

public String addUI() {
this.message = "addUI";
return "success";
}

public String execute() throws Exception {
this.message = "execute";
return "success";
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}
}

?????????????????

權(quán)限類

package com.ljq.interceptor;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;

/**
* 限制沒有登錄的用戶進入訪問頁面
*
*
@author jiqinlin
*
*/
@SuppressWarnings(
"serial")
public class PermissionInterceptor implements Interceptor {

public void destroy() {
}

public void init() {
}

public String intercept(ActionInvocation invocation) throws Exception {
Object user
= ActionContext.getContext().getSession().get("user");
// 如果user不為null,代表用戶已經(jīng)登錄,允許執(zhí)行action中的方法
if (user != null){
return invocation.invoke();
}
ActionContext.getContext().put(
"message", "你沒有權(quán)限執(zhí)行該操作");
return "success";
}

}

??????

struts.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<constant name="struts.i18n.encoding" value="UTF-8" />
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.action.extension" value="do" />

<package name="login" namespace="/login" extends="struts-default">
<interceptors>
<!-- 自定義攔截器 -->
<interceptor name="permission" class="com.ljq.interceptor.PermissionInterceptor" />
<!-- 配制默許的攔截器到攔截器棧 -->
<interceptor-stack name="permissionStack">
<!-- 此處先后順序好像沒影響哦,我嘗試過是沒影響的 -->
<interceptor-ref name="permission" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<!-- 配置默認的攔截器 -->
<default-interceptor-ref name="permissionStack" />
<!-- 全局變量 -->
<global-results>
<result name="success">/WEB-INF/page/message.jsp</result>
</global-results>
<action name="*HelloWorld" class="com.ljq.action.HelloWorldAction"
method
="{1}">
<!-- <interceptor-ref name="permissionStack" /> -->
</action>
</package>

</struts>

轉(zhuǎn)載于:https://www.cnblogs.com/linjiqin/archive/2011/03/19/1988797.html

總結(jié)

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

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