⑴ 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>-->
⑵ 魚缸過濾器是怎麼過濾的
有個小電機把水來抽到盒子裡面自
裡面放有過濾棉(過濾左右)、陶瓷環(培養硝化細菌)、活性炭(除臭)等過濾材料,比如魚糞便被抽上來就留在過濾棉上了。缸內的水經過盒子裡面的過濾材料再流回缸內,如此循環,缸內的水就被過濾盒一次又一次的過濾
⑶ java web登錄後的各種請求在瀏覽器地址不變,過濾器該怎樣攔截每次的請求
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
if(req.getSession().getAttribute("user")==null){
req.setAttribute("error", "請你先登錄");
//非法請求才會進到這裡面,在這里保存請求的url地址,在成功登錄後再進行跳轉
req.getSession().setAttribute("goUrl", req.getRequestURL()+"?"+ req.getQueryString());
request.getRequestDispatcher("/ulogin.jsp").forward(request, response);
}
else{
chain.doFilter(request, response);
}
}
上面的代碼是過濾器中的代碼
下面的是servlet中的代碼
if(request.getSession().getAttribute("goUrl")!=null){
String url = (String)request.getSession().getAttribute("goUrl");
response.sendRedirect(url);
}
else{
response.sendRedirect("/webshopping/index.jsp");
}
⑷ Filter過濾器中指定過濾內容怎麼配置
追問: servlet的這個抄 是不是需要把襲每一個的servlet都寫進 <url-pattern>「servlet位置」</url-pattern>? 回答: 每個servlet都要在web.xml里配置,難道有沒配的? 追問: 有~~ 每個都有 就是覺得要是每個都寫一邊那麼會不會造成代碼冗餘 假設servlet的<url-pattern>配置 <url-pattern>/LoginServlet</url-pattern> <url-pattern>/RegisterServlet</url-pattern> 加入到過濾器的<url-pattern>中 那個後綴的看起來還不錯 具體能給個寫法看寫么? 回答: 比如servlet配置後綴 <url-pattern>/LoginServlet.jspx</url-pattern> <url-pattern>/RegisterServlet.jspx</url-pattern>那filter<url-pattern>/*.jspx</url-pattern>再如servlet配置路徑
⑸ java過濾器怎麼不過濾一個頁面里包含的多個請求
abstract public class FilterPerRequest implements Filter {
private static final Boolean FILTERED = true;
private ThreadLocal<Boolean> statusLocal = new ThreadLocal<Boolean>();
@Override
final public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
if (hasNotFiltering()) {
doFilterAndDispatchRequest(req, resp, chain);
return;
}
//dispatch request only
chain.doFilter(req, resp);
}
private boolean hasNotFiltering() {
Boolean status = statusLocal.get();
if (status == null) {
return true;
}
return false;
}
private void doFilterAndDispatchRequest(ServletRequest req,
ServletResponse resp, FilterChain chain) throws IOException,
ServletException {
try {
doFilterPerRequest(req, resp);
setFiltered();
chain.doFilter(req, resp);
} finally {
cleanFilterStatus();
}
}
abstract protected void doFilterPerRequest(ServletRequest req,
ServletResponse resp);
private void setFiltered() {
statusLocal.set(FILTERED);
}
private void cleanFilterStatus() {
statusLocal.set(null);
}
}
那要就情況而定了。。。
如果是request范圍內的話,就可以使用上面的過濾器。
如果是session范圍內的話,就需要在session內存儲一個標志變數,方式和request差不多。
如果是限制用戶操作的話,那就必須將用戶操作持久化。
由於你的問題不明確,我也不好多說...
⑹ 在過濾器中怎樣獲得頁面請求路徑
request.getRequestURI();
注意,是URI不是URL
⑺ JAVA過濾器可以改變請求的內容或者重新設置請求 這里的請求就是這個servlet 或者jsp或
可以。隨意跳轉。
HttpServletResponse res = (HttpServletResponse) response;
res.sendRedirect(redirectURL);//這里是你回的新請求路答徑
⑻ 請問:如何在java過濾器更改url請求地址,然後交給下一個過濾器處理
更改地址?除非你在這個filter里重定向,第二次直接放行,到第二個filter
⑼ filter過濾器怎麼設置攔截servlet請求
servletNamecom.xxx.xxx.servletClassservletName*.doweb.xml裡面的過濾器配置只支持以下三種①完內全匹配/test/.do②目容錄匹配/test/*③擴展名匹配*.do而不支持/*.do這樣的
⑽ 如何設置過濾器過濾action
過濾器可以配置抄只攔襲截某個請求,當然你也可以在過濾器中判斷該url是否需要你過濾的。
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>a.jsp</url-pattern>
</filter-mapping>