導航:首頁 > 凈水問答 > struts2過濾器登錄

struts2過濾器登錄

發布時間:2022-02-26 04:06:28

❶ Struts2 配置了登錄過濾器後,登錄界面不能載入css和js

判斷一下過濾的url

Stringurl=((HttpServletRequest)request).getRequestURL().toString();

不要攔截js和css文件

❷ struts2過濾器

WEB.xml中配置struts2的代碼片段
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
'/*'是攔截所有的url,你這里可以配置你的過濾規則的啊(例如/*.jsp、/*_aaa.jsp等),但是版一般不需要修改的,改權了以後,擴展起來會給你帶來一些的不必要的麻煩的

❸ struts2 使用攔截器控制登錄許可權

必然的啊,因為你在進入登陸的Action前執行的攔截器,而這時還沒有執行你的登陸方法,因此取得的username為空.

登陸攔截是攔截登陸方法以外的Action,登陸的Action千萬別攔截,否則永遠沒辦法登陸了

❹ 如何配置struts2的過濾器

你說的是攔截器吧
第一步:創建一個類實現Intercepter介面並實現其中方法
第二步:注冊攔截器(在struts.xml)如:
<package name="cust"
namespace="/cust"
extends="struts-default">
<interceptors>
<!-- 注冊攔截器 -->
<interceptor name="first"
class="com.interceptor.FirstInterceptor"/>
<interceptor name="second"
class="com.interceptor.SecondInterceptor"/>
<!-- 注冊攔截器棧,將所有攔截器打包在一起 -->
<interceptor-stack name="mystack">
<interceptor-ref name="first"/>
<interceptor-ref name="second"/>
<!-- 引用自定義的攔截器時,會使struts2自帶的攔截器失效
因此,要將默認的攔截器加入到自定義的攔截器棧中 -->
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<!--第三步: 引用攔截器 ,

<action name="toUpdateCustomer"
class="com.action.ToUpdateCustomerAction"
method="execute">
<!-- 引用攔截器 ,
<interceptor-ref name="first"/>
<interceptor-ref name="first"/>-->
<!-- 引用攔截器棧,會一次將所有的攔截器引用 -->
<interceptor-ref name="mystack"/>
<result name="success">
/WEB-INF/cust/update_customer.jsp
</result>
</action>
</package>
供參考

❺ Struts2入口過濾器配置

本人試驗了一下配置成*.action index.jsp是可行的,不過一般情況下是配置成/*的 然後結合版struts.properties文件裡面的struts.action.extension(定義擴權展名,例如.do,.action等等,多個擴展名中間用逗號隔開)值使用,樓主你最好檢查下你的伺服器啟動日誌 看看項目是否正常啟動。

❻ 急求 struts2過濾器 實例就是..當用戶訪問任何一個action時..先判斷.是否有登錄.

首先,struts2進行許可權驗證是用攔截器做的
一個簡單的登錄攔截器示例如下:
package com.zdf.interceptor;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.zdf.entity.Admin;

@SuppressWarnings("serial")
public class LoginInterceptor extends AbstractInterceptor{

@Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
Admin admin = (Admin)invocation.getInvocationContext().getSession().get("ADMIN");
if(admin!=null){
return invocation.invoke();
}else{
return Action.LOGIN;
}
}

}
struts.xml中的配置如下:
<interceptors>
<interceptor name="adminInterceptor" class="com.zdf.interceptor.AdminSessionInceptor"/>
<interceptor-stack name="myStack">
<interceptor-ref name="adminInterceptor"/>
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
在action中進行引用
<action name="Admin_*" class="adminAction" method="{1}">
<result name="success">/Admin_List.jsp</result>
<interceptor-ref name="myStack"/>
</action>
攔截器具體如何使用,請查找詳細資料!祝你好運!

❼ ssh使用tiles框架,怎麼使用struts2自定義的過濾器,例如過濾未登陸的用戶希望有個具體的例子!!

struts2可以通過配置interceptor來實現過濾未登錄用戶,在struts.xml文件中進行配置即可。
<package name="efe-default" extends="struts-default">
<interceptors>
<!-- 校驗用戶是否登錄用攔截器 -->
<interceptor name="checkLoginInterceptort" class="com.cn.inteceptor.CheckLoginInterceptor"/>
<!-- 定義攔截器棧 -->
<interceptor-stack name="MyDefaultStack">
<interceptor-ref name="checkLoginInterceptort">
<param name="actionNames">testLogin</param>
<param name="loginPath">outSys</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="MyDefaultStack"></default-interceptor-ref>
</package>

public class CheckLoginInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1652269041938963442L;
@SuppressWarnings("unchecked")
public String intercept(ActionInvocation ai) throws Exception {
Object action = ai.getAction();
//獲取當前操作系統文件路徑分隔符
String separator = System.getProperty("file.separator");

HttpServletRequest request = ServletActionContext.getRequest();
String requestUrl = request.getRequestURI();
int tempInt = CommonTools.getSitesInString(requestUrl, "/").get(1);
requestUrl = requestUrl.substring(tempInt);

Map session = ai.getInvocationContext().getSession();
String login = (String) session.get("USERID");

if(!CommonTools.isNullString(login) || !CommonTools.isNullString(examLogin) || singup != null
|| student != null || agency != null){

return ai.invoke();
}else{
//獲得伺服器絕對路徑
String rootUrl = ServletActionContext.getServletContext().getRealPath("/");
//讀取src\myXML文件夾下的Permissions.xml文件
DataDictionaryXmlParseUtil myPermissions = DataDictionaryXmlParseUtil.getInstance(rootUrl+"WEB-INF"+separator+"classes"+separator+"myXML"+separator+CommonConstants.PERMISSION_XML);
//得到允許不通過攔截器的url地址列表
List<String> permissionList = myPermissions.getDataMap().get(CommonConstants.REQUEST_RUL_KEY);

//比較是否有列表中的數據
for (String permissUrl:permissionList){
if (requestUrl!=null && requestUrl.equalsIgnoreCase(permissUrl)){
return ai.invoke();
}
}
return "no.access";
}
}

❽ Struts2如何通過過濾器防止直接訪問jsp頁面

可以在web.xml配置過濾條件,攔截一切jsp文件,如果沒有登陸的話,就跳轉到登陸界面

❾ struts2配置自定義過濾器,檢查用戶是否登錄,沒登錄就不許進入某些頁面

struts2寫攔截器吧?過濾器貌似servlet里邊用.
public class LoginInterceptor extends AbstractInterceptor{

private static final long serialVersionUID = 1L;

@Override
public String intercept(ActionInvocation invocation) throws Exception {
Map<String, Object> session=ActionContext.getContext().getSession();
User user=(User) session.get("user");
//如果確認訂單時沒有登錄返回登錄頁專否則繼續執屬行
if (user==null) {
return "relogin";
}else{
invocation.invoke();
return "";
}
}

}

❿ Struts2 攔截器判斷用戶是否登陸

我項目中的攔截器配置,其實樓上的filter方式也能實現功能要求,不過lz想研究下攔截器的話,可以參考我下面的配置。

有不明白的可以給我信息,我可以把整個struts.xml 發你參考。

<!--自定義攔截器配置 -->
<interceptors>
<interceptor name="Timeout" class="com.myproject.util.TimeOutInterceptor"/>
</interceptors>

action定義。。。。。。。。。。。
<action name="cf*" method="{1}" class="com.myproject.action.user.ConfigAction">
<!-- 引用自定義的攔截器 -->
<interceptor-ref name="Timeout">
<param name="excludeMethods">
UpdateInfo,UpdCss <!--注意參數配置 action中的僅這兩個方法會被攔截 估計lz需要的就是這里的參數配置,可以指定Action中的方法進行攔截-->
</param>
</interceptor-ref>
<interceptor-ref name="basicStack"/> <!-- struts 內置的默認攔截器 -->
<result name="config">/user/config.jsp</result>
</result>

//攔截器的實現。。。。。。。
package com.myproject.util;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
import java.util.Map;

/**
* 通用攔截器,判斷用戶超時
* @author maodrc
*/
public class TimeOutInterceptor extends MethodFilterInterceptor {

@Override
protected String doIntercept(ActionInvocation ai) throws Exception {
Map sessionMap = ai.getInvocationContext().getSession();

String username = (String) sessionMap.get("username");
if (com.myproject.util.Util.isNull(username)) { //判斷session
return "timeout"; // 這里可以配置一個 global 的result 即可。
} else {
return ai.invoke();
}
}

閱讀全文

與struts2過濾器登錄相關的資料

熱點內容
水壺中水垢能用食鹽水清洗嗎 瀏覽:657
德龍en560除垢 瀏覽:14
傳奇怎麼更換機油濾芯 瀏覽:604
草麻黃蒸餾 瀏覽:111
一台污水泵能賺多少 瀏覽:637
專用除垢劑多少錢一升 瀏覽:444
生產ro膜殼的企業 瀏覽:370
在污水處理廠培訓之後待遇 瀏覽:499
醫療廢水處罰環保依據 瀏覽:105
江西鹼廢水處理價格 瀏覽:997
發酵蒸餾水 瀏覽:615
純水導不導電怎麼回事 瀏覽:910
皇冠轎車如何安裝空調濾芯 瀏覽:170
工廠亂調廢水 瀏覽:311
凈水器tds值為什麼不降下來 瀏覽:739
865更新處理器提升什麼 瀏覽:23
凈水器一個月多少水 瀏覽:503
脫鹽水edi產水電阻小怎麼辦 瀏覽:18
超純水的化學公式是什麼 瀏覽:923
寵物飲水機為什麼貴 瀏覽:128