1. Java的過濾器。我有4個界面 1login.jsp和2login.jsp和1.jsp和2.jsp
在action里邊寫上servlet的地址就可以了,你的servlet地址要和你web.xml文件中配置的相同要不然是跳不過去的
2. jsp 配置過濾器 java放在哪
需要在web.xml文件中配置過濾器
<filter>
<filter-name>logonFilter</filter-name>
<filter-class>自己寫的過濾器</filter-class>
</filter>
<filter-mapping>
<filter-name>logonFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>logonFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
3. java我寫了一個過濾器,所有訪問的(js、jsp、各種圖片等等)都會進過濾器,但是為什麼.do、.action這樣訪
需要在web.xml文件中配置過濾器
<filter>
<filter-name>logonFilter</filter-name>
<filter-class>自己版寫的權過濾器</filter-class>
</filter>
<filter-mapping>
<filter-name>logonFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>logonFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
4. jsp 過濾器過濾jsp和html怎麼寫
<servlet-mapping>
<servlet-name>servletname</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>servletname</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
5. java jsp 中過濾器 filter 有什麼功能
過濾器來,聽名字就自是過濾作用了!!!
就是在瀏覽器發送請求道伺服器,可以先經過過濾器,然後再到我們寫的邏輯部分。
這些過濾器可以實現 表單驗證,用戶許可權等功能。比如一些不合法的表單輸入,就可以再過濾
器中處理不讓他運行我們的後面的邏輯。比如許可權低的用戶不能進入某些頁面或者實現某些功能
6. 如何在過濾器Filter.java中獲取jsp頁面文本框的值
1、在Jsp頁面將文本框輸入域放在html表單form之中提交
2、後台定義一個過濾器繼承Filter.java
3、在過濾器中的doFilter方法中,將參數ServletRequest轉化為HttpServletRequest
4、利用HttpServletRequest.getParameter();方法即可獲取對應輸入域的value值。
示例:
在Jsp頁面:
<form>
<input type="text" name="username" value="zhangsan"/>
</form>
後台過濾器:
public class TestFilter implements Filter{
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filter) throws IOException, ServletException {
HttpServletRequest res = (HttpServletRequest) request;
//獲取頁面的username輸入框的值
String username = request.getParameter("username");
return;
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
}
7. JAVA過濾器可以改變請求的內容或者重新設置請求 這里的請求就是這個servlet 或者jsp或
可以。隨意跳轉。
HttpServletResponse res = (HttpServletResponse) response;
res.sendRedirect(redirectURL);//這里是你回的新請求路答徑
8. jsp\java如何編寫過濾器過濾特殊字元
正則表達式來校驗:過濾器就網路一大堆,怎麼寫正則表達式,也可以網路,不知你說的特殊字元是什麼字元,所以只能給方法
9. 如何用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);
}
為了讓層次跟清晰一點,最好還是分文件夾。
10. jsp\java 如何編寫過濾器過濾特殊字元
package com.jing.common;
import java.io.IOException;
import java.io.PrintWriter;
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;
public class IllegalCharacterFilter implements Filter {
private String[] characterParams = null;
private boolean OK=true;
public void init(FilterConfig config) throws ServletException {
// if(config.getInitParameter("characterParams").length()<1)
// OK=false;
// else
// this.characterParams = config.getInitParameter("characterParams").split(",");
System.out.println("初始化");
}
@SuppressWarnings("unchecked")
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest servletrequest = (HttpServletRequest) request;
HttpServletResponse servletresponse = (HttpServletResponse) response;
String param = "";
String paramValue = "";
//設置請求編碼格式
servletresponse.setContentType("text/html");
servletresponse.setCharacterEncoding("UTF-8");
servletrequest.setCharacterEncoding("UTF-8");
java.util.Enumeration params = request.getParameterNames();
//循環讀取參數
while (params.hasMoreElements()){
param = (String) params.nextElement(); //獲取請求中的參數
String[] values = servletrequest.getParameterValues(param);//獲得每個參數對應的值
for (int i = 0; i < values.length; i++) {
paramValue = values[i];
//轉換目標字元變成對象字元,可以多個。後期擴展特殊字元庫用於管理
paramValue = paramValue.replaceAll("'","");
paramValue = paramValue.replaceAll("@","");
paramValue = paramValue.replaceAll("胡錦濤","***");
//這里還可以增加,如領導人 自動轉義成****,可以從資料庫中讀取非法關鍵字。
values[i] = paramValue;
}
//把轉義後的參數重新放回request中
request.setAttribute(param, paramValue);
}
//繼續向下 執行請求,如果有其他過濾器則執行過濾器
arg2.doFilter(request, response);
}
public void destroy() {
// TODO Auto-generated method stub
}
}