1. struts2中怎樣實現過濾jsp頁面的過濾器
如下所示:
package test;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class LoginFilter implements Filter
{
public void destroy()
{
}
public void doFilter(ServletRequest req, ServletResponse rsp,
FilterChain chain) throws IOException, ServletException
{
chain.doFilter(req, rsp);
}
public void init(FilterConfig arg0) throws ServletException
{
}
}
在web.xml裡面配置
<filter>
<filter-name>logFilter</filter-name>
<filter-class>test.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>logFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
2. Struts2入口過濾器配置
本人試驗了一下配置成*.action index.jsp是可行的,不過一般情況下是配置成/*的 然後結合版struts.properties文件裡面的struts.action.extension(定義擴權展名,例如.do,.action等等,多個擴展名中間用逗號隔開)值使用,樓主你最好檢查下你的伺服器啟動日誌 看看項目是否正常啟動。
3. 1這里說的在struts2的過濾器中添加:是指那個文件web.xml還是struts.xml 2。struts2的過濾器在哪
過濾器在web.xml中添加,filter標簽表示配置過濾器的標簽
struts.xml中配置的是攔截器,攔截具體的請求,並完成到相應處理的action 的映射
4. 如何配置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>
供參考
5. Struts2如何通過過濾器防止直接訪問jsp頁面
可以在web.xml配置過濾條件,攔截一切jsp文件,如果沒有登陸的話,就跳轉到登陸界面
6. struts2 自帶過濾器
過濾器很多,不知道你說的哪個
變化最大的就是struts2
的核心控制器從servlet變成了filter,並且內ACTION由單例變成了多容例,並且還包含很多分支過濾器的配置,真要用功能可以說異常強大,曾今想用它來直接做許可權控制,可惜太復雜了·······放棄了
7. 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等),但是版一般不需要修改的,改權了以後,擴展起來會給你帶來一些的不必要的麻煩的
8. Java框架Struts2的攔截器和過濾器有什麼區別
過濾器,是在java web中,你傳入的request,response提前過濾掉一些信息,或者提前設置一些參數,然後再傳入servlet或者struts的
action進行業務邏輯,比如過濾掉非法url(不是login.do的地址請求,如果用戶沒有登陸都過濾掉),或者在傳入servlet或者
struts的action前統一設置字元集,或者去除掉一些非法字元.
攔截器,是在面向切面編程的就是在你的service或者一個方法,前調用一個方法,或者在方法後調用一個方法比如動態代理就是攔截器的簡單實現,在你調用方法前列印出字元串(或者做其它業務邏輯的操作),也可以在你調用方法後列印出字元串,甚至在你拋出異常的時候做業務邏輯的操作。
攔截器與過濾器的區別:
執行順序:過濾前 - 攔截前 - Action處理 - 攔截後 -
過濾後。個人認為過濾是一個橫向的過程,首先把客戶端提交的內容進行過濾(例如未登錄用戶不能訪問內部頁面的處理);過濾通過後,攔截器將檢查用戶提交數據的驗證,做一些前期的數據處理,接著把處理後的數據發給對應的Action;Action處理完成返回後,攔截器還可以做其他過程(還沒想到要做啥),再向上返回到過濾器的後續操作。
9. 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等)專,但是一般不屬需要修改的,改了以後,擴展起來會給你帶來一些的不必要的麻煩的
10. struts2過濾器干什麼用的
攔截器的工作原理:
當接收到一個httprequest
,
a)當外部的httpservletrequest到來時
b)初始到了servlet容器
傳遞給一個標准內的過濾器鏈
c)FilterDispatecher會去查找容相應的ActionMapper,如果找到了相應的ActionMapper它將會將控制許可權交給Actio