導航:首頁 > 凈水問答 > java過濾器沒有過濾主頁面

java過濾器沒有過濾主頁面

發布時間:2023-07-19 20:17:14

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

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

2. 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差不多。
如果是限制用戶操作的話,那就必須將用戶操作持久化。
由於你的問題不明確,我也不好多說...

3. 為何java中的過濾器filter不起作用

過濾器配置正抄確,但卻沒有起到過濾作用,原因可能是排放位置的問題。如下:

錯誤:

<filter>
<filter-name>struts2</filter-name>
<filter-class>com.yiwo.base.web.filter.PrepareFilter</filter-class>
</filter>

<filter>
<filter-name>userFilter</filter-name>
<filter-class>com.yiwo.base.web.filter.UserFilter</filter-class>
</filter>

4. 如何用java過濾器是不要把login.jsp頁面也過濾掉

|public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {

HttpServletRequest hrequest = (HttpServletRequest) request;

String uri = hrequest.getRequestURI();得到請求地址

String file[] = uri.split("/");通過/分隔,這樣,數組的最後一個值,就是頁面,

你比較下file[file.lenght-1].equals("login.jsp")就可以了。版

if(file[file.lenght-1].equals("login.jsp"||)){}要解除某頁權面的過濾,用||在if裡面添加就可以

chain.doFilter(request, response);
}
為了讓層次跟清晰一點,最好還是分文件夾。

5. java添加過濾器驗證登錄後無法跳轉到登錄界面

改成request.getRequestDispatcher("/login.jsp").forward(request, response);

6. java web項目裡面的加了過濾器,在自己電腦上面測試項目的時候就打不開網頁了,怎麼回事

這是我自己寫過的一個登陸過濾器

public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {

System.out.println("=============LoginFilter============");

//將父類轉成子類
HttpServletRequest request=(HttpServletRequest) req;

//javaweb_T7/LoginServlet
String uri=request.getRequestURI();

//控制登錄的
HttpSession session=request.getSession();
String userName=(String) session.getAttribute("userName");
//如果沒有登錄就跳轉

//要麼你session中有東西(已經登錄) ,要麼你是登錄的動作
if(userName!=null || uri.indexOf("LoginServlet")!=-1){
//如果登錄過,就不阻攔
chain.doFilter(req, res);
}else{
request.setAttribute("msg", "請先登錄後操作");
request.getRequestDispatcher("login.jsp")
.forward(request, res);
}
}

7. 請教Java Filter過濾器中頁面的跳轉問題

filter只能對請求進行過濾處理,並不能直接跳轉某個頁面。servlet才能跳轉頁面的吧。

8. Java:現在Filter把所有請求都攔截了,怎麼使Filter不過濾login.jsp頁面呢

對於這種,抄我說兩種方法:

1、將你所有的JSP頁面單獨放在一個文件夾里(假如jspPage),jspPage文件夾里可根據類別分若乾子文件夾,再把相對應的JSP放在子文件夾里;
JS、CSS及圖片等分別放在外面的文件夾里(與文件夾jspPage並列)
再:<url-pattern>/jspPage/*</url-pattern>就行了
一般用的就是這種

2、在過濾的JAVA文件中,在doFilter方法里進行判斷,將後綴名為.css、.js等直接設置為通過就行了,這種較為復雜,在一些特殊情況下才用到,一般不

9. java過濾器不過濾某個貨某一些路徑

<param-name>noLoginPaths</param-name> 參數名可自取

<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.imooc.filter.LoginFilter</filter-class>
<init-param>
<param-name>noLoginPaths</param-name>
<param-value>login.jsp;fail.jsp;LoginServlet</param-value>
</init-param>
<init-param>
<param-name>charset</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

StringnoLoginPaths=config.getInitParameter("noLoginPaths");

關鍵代碼 :

if(noLoginPaths!=null){
String[]strArray=noLoginPaths.split(";");
for(inti=0;i<strArray.length;i++){

if(strArray[i]==null||"".equals(strArray[i]))continue;

if(request.getRequestURI().indexOf(strArray[i])!=-1){
arg2.doFilter(arg0,arg1);
return;
}
}

}

完整代碼:

importjava.io.IOException;

importjavax.servlet.Filter;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletException;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;

{

privateFilterConfigconfig;

@Override
publicvoiddestroy(){

}

@Override
publicvoiddoFilter(ServletRequestarg0,ServletResponsearg1,FilterChainarg2)throwsIOException,ServletException{

HttpServletRequestrequest=(HttpServletRequest)arg0;
HttpServletResponseresponse=(HttpServletResponse)arg1;
HttpSessionsession=request.getSession();

StringnoLoginPaths=config.getInitParameter("noLoginPaths");

Stringcharset=config.getInitParameter("charset");
if(charset==null){
charset="UTF-8";
}
request.setCharacterEncoding(charset);

if(noLoginPaths!=null){
String[]strArray=noLoginPaths.split(";");
for(inti=0;i<strArray.length;i++){

if(strArray[i]==null||"".equals(strArray[i]))continue;

if(request.getRequestURI().indexOf(strArray[i])!=-1){
arg2.doFilter(arg0,arg1);
return;
}
}

}
if(session.getAttribute("username")!=null){
arg2.doFilter(arg0,arg1);
}else{
response.sendRedirect("login.jsp");
}

}

@Override
publicvoidinit(FilterConfigarg0)throwsServletException{
config=arg0;
}

}
閱讀全文

與java過濾器沒有過濾主頁面相關的資料

熱點內容
工業污水排放基本情況 瀏覽:161
js過濾網址 瀏覽:592
乳膠漆污水到洗菜盆上怎麼擦 瀏覽:585
第一次使用過濾桶濾芯怎麼清洗 瀏覽:607
共和移動空氣凈化器大概多少錢 瀏覽:775
污水管道總圖怎麼看圖報價 瀏覽:311
乙醇對超濾膜有影響嗎 瀏覽:395
魚缸水垢成分 瀏覽:341
污水泵的出水口壓力 瀏覽:792
為什麼污水處理cod高 瀏覽:138
豬場污水處理竣工驗收報告 瀏覽:536
污水池污泥為什麼有人要 瀏覽:578
陽離子交換樹脂洗脫溶劑 瀏覽:386
紅柴油過濾脫色設備 瀏覽:586
純水機廢水流不停是什麼原因 瀏覽:225
ro反滲透水處理設備報價 瀏覽:924
大型噴漆過濾機械 瀏覽:679
純水的蒸汽壓與什麼有關 瀏覽:645
鑄造樹脂和脈紋添加劑的關系 瀏覽:222
純水機怎麼加麥飯石 瀏覽:942