導航:首頁 > 凈水問答 > jsp過濾器過濾文件夾下的

jsp過濾器過濾文件夾下的

發布時間:2024-09-13 23:16:51

A. jsp 過濾器攔截URL時,如何把URL後面參數加上

最近在做項目中,發現jsp的過濾器在獲取到攔截的URL時,得到的URL沒有加入URL後面的參數,這樣就造成在用response.sendRedirect時,無法加入後面的參數,本人研究後,發現可以這么解決,希望對大家有所幫助<pString currentURL = req.getRequestURI(); // 取得根目錄所對應的絕對路猜衫徑: java.util.Enumeration enumParam = req.getParameterNames(); StringBuffer condition = new StringBuffer("?"); boolean isHasCondition = false; while(enumParam.hasMoreElements()){ isHasCondition = true; String paramName = enumParam.nextElement(); condition.append(paramName); condition.append("="); condition.append(request.getParameter(paramName)); condition.append("&"); } if(isHasCondition){ currentURL += condition.toString(); }</p<p </橘兆仔p<圓汪p </p

B. jsp/servlet過濾器和struts2攔截器的有什麼區別

攔截器和過濾器的區別:

1、攔截器是基於java的反射機制的,而過濾器是基於函數回調

2、過濾器依賴與servlet容器,而攔截器不依賴與servlet容器

3、攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用

4、攔截器可以訪問action上下文、值棧里的對象,而過濾器不能

5、在action的生命周期中,攔截器可以多次被調用,而過濾器只能在容器初始化時被調用一次

攔截器
:是在面向切面編程的就是在你的service或者一個方法前調用一個方法,或者在方法後調用一個方法比如動態代理就是攔截器的簡單實現,在你調用方法前列印出字元串(或者做其它業務邏輯的操作),也可以在你調用方法後列印出字元串,甚至在你拋出異常的時候做業務邏輯的操作。

下面通過實例來看一下過濾器和攔截器的區別:

使用攔截器進行/admin 目錄下jsp頁面的過濾

[html] view plain

<package name="newsDemo"
extends="struts-default"

namespace="/admin">

<interceptors>

<interceptor name="auth"
class="com.test.news.util.AccessInterceptor" />

<interceptor-stack name="authStack">

<interceptor-ref
name="auth" />

</interceptor-stack>

</interceptors>

<!-- action -->

<action name="newsAdminView!*" class="newsAction"

method="{1}">

<interceptor-ref
name="defaultStack"/>

<interceptor-ref
name="authStack">

</interceptor-ref>

下面是我實現的Interceptor class:

[java] view plain

package com.test.news.util;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;

import
com.opensymphony.xwork2.ActionInvocation;

import
com.opensymphony.xwork2.interceptor.AbstractInterceptor;

import
com.test.news.action.AdminLoginAction;

/**

*
@author chaoyin

*/

public class AccessInterceptor
extends AbstractInterceptor {

private static final long
serialVersionUID = -4291195782860785705L;

@Override

public String intercept(ActionInvocation actionInvocation) throws
Exception {

ActionContext actionContext =
actionInvocation.getInvocationContext();

Map session =
actionContext.getSession();

//except login action

Object action = actionInvocation.getAction();

if (action
instanceof AdminLoginAction) {

return
actionInvocation.invoke();

}

//check
session

if(session.get("user")==null ){

return
"logout";

}

return actionInvocation.invoke();//go
on

}

}

過濾器:是在javaweb中,你傳入的request,response提前過濾掉一些信息,或者提前設置一些參數,然後再傳入servlet或者struts的
action進行業務邏輯,比如過濾掉非法url(不是login.do的地址請求,如果用戶沒有登陸都過濾掉),或者在傳入servlet或者
struts的action前統一設置字元集,或者去除掉一些非法字元。

使用過濾器進行/admin
目錄下jsp頁面的過濾,首先在web.xml進行過濾器配置:

[html] view plain

<filter>

<filter-name>access
filter</filter-name>

<filter-class>

com.test.news.util.AccessFilter

</filter-class>

</filter>

<filter-mapping>

<filter-name>access filter</filter-name>

<url-pattern>/admin/*</url-pattern>

</filter-mapping>

下面是過濾的實現類:

[java] view
plain

package com.test.news.util;

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;

import
javax.servlet.http.HttpServletRequest;

import
javax.servlet.http.HttpServletResponse;

import
javax.servlet.http.HttpSession;

public class AccessFilter
implements Filter {

/**

* @author chaoyin

*/

public void destroy() {

}

public void doFilter(ServletRequest arg0, ServletResponse arg1,

FilterChain filterChain) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest)arg0;

HttpServletResponse response = (HttpServletResponse)arg1;

HttpSession session = request.getSession();

if(session.getAttribute("user")== null &&
request.getRequestURI()。indexOf("login.jsp")==-1 ){

response.sendRedirect("login.jsp");

return ;

}

filterChain.doFilter(arg0, arg1);

}

public void init(FilterConfig arg0) throws ServletException {

}

}
摘自網路--

C. 關於jsp過濾器的問題,為什麼把圖片都過濾了呢

jsp過濾器主要的作用是保證頁面支持中文輸入和顯示,
或者應用在一些論壇專上過濾一些不文明的詞彙等屬。
但是圖片被過濾了是不可能的。
無非就是路徑寫錯了,不知道樓主寫的路徑是相對的還是絕對的。
有一個好辦法看路徑的正誤:右鍵點擊X圖,屬性,查看該圖片路徑是否與你項目中保存的圖片是同一個文件夾下的。
希望能幫的上你。

D. 當定義多個過濾器時,執行的順序是什麼樣的

filter和攔截器的區別和執行順序

1.Filter過濾器只過濾jsp文件不過濾action請求解決回方案

解決辦法:在web.xml中將答filter的配置放在struts2配置的前面。

2.攔截器與Filter的區別
Spring的攔截器與Servlet的Filter有相似之處,比如二者都是AOP編程思想的體現,都能實現許可權檢查、日誌記錄等。不同的是:

使用范圍不同:Filter是Servlet規范規定的,只能用於Web程序中。而攔截器既可以用於Web程序,也可以用於Application、Swing程序中。

規范不同:Filter是在Servlet規范中定義的,是Servlet容器支持的。而攔截器是在Spring容器內的,是Spring框架支持的。

使用的資源不同:同其他的代碼塊一樣,攔截器也是一個Spring的組件,歸Spring管理,配置在Spring文件中,因此能使用Spring里的任何資源、對象,例如Service對象、數據源、事務管理等,通過IoC注入到攔截器即可;而Filter則不能。

E. struts2用過濾器過濾非法jsp請求的時候,對於根文件夾下的請求如何過濾

<filter>
<filter-name>authority</filter-name>
<filter-class>com.bstek.test.demo.filter.AuthorityFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>authority</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--可以匹配多個的,不過只要上面那種就回可以攔截所有的了答<filter-mapping>
<filter-name>authority</filter-name>
<url-pattern>/jsp/*</url-pattern>
</filter-mapping>-->

F. 設計用戶過濾器 對需要保護的頁面過濾 如果已經登錄則允許訪問 否則跳轉到login.jsp

比如你將要需抄要登錄後才能訪問的頁面放在main文件夾下,然後配置過濾器時,將過濾路徑設置為/main/*就可以了,login.jsp不能放在main文件夾中,防止login.jsp也被過濾,造成死循環。。。。

G. jsp中為什麼加上了過濾器就報錯 (HTTP Status 404)

路徑配置錯誤

H. filter過濾器配置如何不過濾一些頁面

直接添加多個文件映射啊,為每個需要進行過濾的文件都寫個映射標簽

I. jsp中過濾器可以攔截請求和響應嗎

過濾器可以動態地攔截請求和響應,以變換或使用包含在請求或響應中的信息。

閱讀全文

與jsp過濾器過濾文件夾下的相關的資料

熱點內容
可更換空氣過濾器 瀏覽:557
江蘇電鍍含氰廢水處理價格如何 瀏覽:564
如何凈化生活污水養殖 瀏覽:512
樹脂熱線性膨脹系數 瀏覽:26
污水處理廠設備單機運行方案 瀏覽:878
離子交換吸附原 瀏覽:330
樂山污水處理設備批發多少錢 瀏覽:43
如何維修污水浸泡的牆 瀏覽:164
中國凈水服務網平台怎麼樣 瀏覽:891
怎樣去滴定硫酸根離子濃度 瀏覽:194
樹脂釋迦佛小的 瀏覽:638
廢水處理怎麼學 瀏覽:465
17款思域空調濾芯怎麼換 瀏覽:282
凈水器排水孔是干什麼用的 瀏覽:657
AS樹脂高溫分解生成什麼 瀏覽:454
怎麼處理飲水機水桶里的水垢 瀏覽:255
如何處理濃氟廢水 瀏覽:32
GE和bwt即熱凈水機哪個好 瀏覽:738
一個車間每天產生多少廢水 瀏覽:541
寶雞市十里鋪污水招標 瀏覽:740