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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Struts2 拦截器 及如何获得 servlet 请求对象 以及Struts 基本配置 Session 超时设置...

發布時間:2025/4/5 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Struts2 拦截器 及如何获得 servlet 请求对象 以及Struts 基本配置 Session 超时设置... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在攔截器中可以三種實現

一:繼承 AbstractInterceptor 類
二:繼承?MethodFilterInterceptor類
三:實現?Interceptor 接口

在實現Interceptor接口時,會多出init() 和 destroy() 方法

攔截器的主體方法是:
public String intercept(ActionInvocation arg0) throws Exception {
// TODO Auto-generated method stub

HttpServletRequest request = ServletActionContext.getRequest();
if(request.getParameter("username") == null){//輸入的用戶名為空
return "logFail";
}
logInterceptor.invoke();
return null;


}

在攔截器完成任務后-->記得 arg0.invoke() ?
激活action,讓程序得以繼續執行

另外:
<form action="logAction_login.action" method="post">
在struts.xml中<action name="logAction_*" class="my.test.Control" method="{1}"></action>
指定跳轉的處理類的處理方法

付一張必須jar包圖:

?通過非IOC 方式 獲取 http請求參數
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletRespons respons = ServletActionContext.getRespons();
HttpSession session ?= ServletActionContext.getRequest().getSession();//servlet 中的底層session
Map sessionMap = ActionContext.getContext().getSession(); //struts2 中封裝的Map session

?

------------------------------------------------------------------------------------------>

<struts><constant name="struts.ui.theme" value="simple" /><constant name="struts.objectFactory" value="spring" /><constant name="struts.objectFactory.spring.autoWire" value="name" /><constant name="struts.i18n.encoding" value="UTF-8" /><constant name="struts.custom.i18n.resources" value="messages,department,serch,device,login,user,role,ywtj,param,notice,hmd,jrs,jwjk"/><include file="struts-login.xml" />

?

</struts>

---------------------------------------------------------------------------------------->?

?判斷Session 是否超時:

public class SessionInterceptor extends BaseAction implements Interceptor ? ?{


private static final long serialVersionUID = 1L;public String intercept(ActionInvocation actionInvocation) throws Exception {HttpSession session ?= ServletActionContext.getRequest().getSession();Action action = (Action) actionInvocation.getAction();if (action instanceof LoginAction) {return actionInvocation.invoke();}else{SysUser user = UserSessionUtil.getUserInfo(session);if (user == null) {return "login";} else {return actionInvocation.invoke();}}}public void destroy() {// TODO Auto-generated method stub}public void init() {// TODO Auto-generated method stub}}

?---------------------------------------------------struts.xml 配置:

<package name="global" namespace="/" extends="struts-default"><!-- struts2 攔截器Session 超時 --> ? ?<interceptors><interceptor name="sessionInterceptor" class="com.egintra.common.base.SessionInterceptor" /><!-- 攔截器棧 --><interceptor-stack name="myStack"><interceptor-ref name="sessionInterceptor" /><interceptor-ref name="defaultStack" /></interceptor-stack></interceptors><default-interceptor-ref name="myStack" />? ? ? ? <global-results>? ? ? ? ? ? <result name="exception">/jsp/error.jsp</result> ??? ? ? ? ? ? <result name="login">/jsp/system/login/login.jsp</result> ? ? ?? ? ? ? </global-results>? ? ? ? <global-exception-mappings>? ? ? ? ? ? <exception-mapping result="exception" exception="java.lang.Exception"></exception-mapping>? ? ? ? </global-exception-mappings> ? ? ? ? ? ? ? ?? ? </package>

?

?

?

轉載于:https://www.cnblogs.com/leonkobe/archive/2013/03/01/2939128.html

總結

以上是生活随笔為你收集整理的Struts2 拦截器 及如何获得 servlet 请求对象 以及Struts 基本配置 Session 超时设置...的全部內容,希望文章能夠幫你解決所遇到的問題。

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