⑴ 如何在過濾器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 {
}
}
⑵ 要過濾所有的jsp頁面和action的session是否過時 web裡面怎麼配置
你是要配置filter來檢查是否session過期, 如果過期就跳回登陸頁面?
無非就是寫一個SessionFilter(一般都會叫AuthFilter)實現Filter介面, 然後實現裡面的doFIlter()方法
這個方法自然會傳兩個參數, 一個request, 一個response, request參數就可以得到url和session例如
request.getURI(); request.getSession();
response可以用來重定向, response.sendRedirect();
filter寫好後在web.xml中配置一下過濾那些頁面,
首先頂一個filter對應到你上面寫的那個類, 然後定義一個filter-mapping, 來說明過濾哪些頁面, 一般要看你工程中頁面是用的.do返回還是用的jsp返回, 或者直接寫成/*都可以...
⑶ JSP中用filter 過濾某個包中的所有servlet
web.xml中這樣配置:
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>com.zq.servlet.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/servlet/Login</url-pattern>
</servlet-mapping>
或者不配置web.xml在servlet中寫註解:
@WebServlet("/servlet/Login")
配置fliter可以在web.xml中這樣寫:
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.zy.filter.UserLoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/servlet/*</url-pattern>
</filter-mapping>
或者不配置web.xml在filter中寫註解:
@WebFilter(filterName="/MyFilter",urlPatterns="/servlet/*")
即在所有想過濾的servlet名字前加上「/setvlet」在過濾的時候過濾路徑就可以寫成「/servlet/*」這樣就能過濾所有的Servlet。
⑷ 在filter中,我要過濾所有JSP和action,但登錄頁login.jsp和login.action不能過濾,這樣的話怎麼配置
把login.jsp換一個後綴嘛,比如login.htm
⑸ web配置問題 過濾所有的jsp文件該怎麼搞啊
寫個過濾器(創建一個類實現Filter介面)
在web.xml中配置如下
添加以下代碼
<filter>
<filter-name>encoding</filter-name> //名字任意
<filter-class>全類路徑</filter-class> //實現filter介面的類的路徑
</filter>
<filter-mapping>
<filter-name>encoding</filter-name> //與上面的名字匹配
<url-pattern>*.jsp</url-pattern> //*.jsp表示任意jsp文件
</filter-mapping>
⑹ JSP filter過濾器,怎樣可以配置成除某幾個jsp文件外,所有的jsp文件都過濾呢
你可以在xml文件裡面去抄更改襲
你在裡面好好的找找你過濾器的名字
過濾器默認的都是/*
你想保護什麼就吧*換成什麼或者是換成一個文件夾
如果你是昨晚項目在放的過濾器那就多弄幾個過濾器
一個個來(麻煩,最好提前想好,把需要保護的放在一個包裡面)
⑺ 如何配置Filter過濾器處理JSP中文亂碼
注意問題:在學慣用selvert的過濾器filter處理中文亂碼時,在filter配置初始化時用了utf-8處理中文亂碼,而在提交的jsp頁面中卻用了gbk。雖然兩種都可以出來中文亂碼,但是卻造成了處理亂碼的格式不一致。所以編譯出錯。
解決方法:所有地方都用utf-8或gbk
//過濾器類
CharactorFilter.jsp
package cn.com.Filter;
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 CharactorFilter implements Filter { //繼承Filter類
//字元編碼
String encoding=null;
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(encoding!=null){
//設置request字元編碼
request.setCharacterEncoding(encoding);
//設置response字元編碼
response.setContentType("text/html;charset="+encoding);
}
//傳遞給下一個過濾器
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
//獲取初始化參數
encoding=filterConfig.getInitParameter("encoding");
}
public void destroy() {
// TODO Auto-generated method stub
encoding=null;
}
}
web.xml
<filter> <!--注意這里是filter,不要配置成servlet-->
<filter-name>CharactorFilter</filter-name> <!--過濾器名稱-->
<filter-class>cn.com.Filter.CharactorFilter</filter-class> <!--過濾器的完整類名-->
<init-param> <!--初始化參數-->
<param-name>encoding</param-name> <!--參數名稱-->
<param-value>utf-8</param-value> <!--參數值-->
</init-param>
</filter>
<filter-mapping> <!--過濾器映射-->
<filter-name>CharactorFilter</filter-name><!--過濾器名稱-->
<url-pattern>/*</url-pattern><!--URL映射,給所有頁面處理亂碼-->
</filter-mapping>
⑻ 在 java EE中怎麼實現對哪一個.jsp文件進行過濾
先寫個過濾的bean,然後在web.xml里配置,如下面是字元過濾:
<!-- 字元編碼過濾器 -->
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>filters.ChangeCharsetFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
<!-- 指定編碼為UTF-8 -->
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern> //注:把要過濾的jsp頁面添加到這里,*則對所有的頁面過濾
<!-- 對於所有的request改變其編碼 -->
</filter-mapping>
我只是個初學者,不知道說得對不對,嘿嘿。。。
⑼ 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>-->
⑽ 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>