標籤:ons forward web div todo 目標 方式 意義 設定
使用過濾器來給servlet設定編碼
public class CharacterEncodingFilter implements Filter{ @Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest request=(HttpServletRequest)arg0; request.setCharacterEncoding("utf-8"); arg2.doFilter(arg0, arg1); } @Override public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub }}
同時要在XML檔案加入下面的內容使其有效
<filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>com.smn.filter.CharacterEncodingFilter</filter-class></filter><filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>INCLUDE</dispatcher> <dispatcher>ERROR</dispatcher> <dispatcher>FORWARD</dispatcher></filter-mapping>
<dispatcher>
指定過濾器所攔截的資源被 Servlet 容器調用的方式,可以是REQUEST
,INCLUDE
,FORWARD
和ERROR
之一,預設REQUEST
。使用者可以設定多個<dispatcher>
子項目用來指定 Filter 對資源的多種調用方式進行攔截。
<dispatcher>
子項目可以設定的值及其意義
REQUEST
:當使用者直接存取頁面時,Web容器將會調用過濾器。如果目標資源是通過RequestDispatcher的include()或forward()方法訪問時,那麼該過濾器就不會被調用。
INCLUDE
:如果目標資源是通過RequestDispatcher的include()方法訪問時,那麼該過濾器將被調用。除此之外,該過濾器不會被調用。
FORWARD
:如果目標資源是通過RequestDispatcher的forward()方法訪問時,那麼該過濾器將被調用,除此之外,該過濾器不會被調用。
ERROR
:如果目標資源是通過聲明式異常處理機制調用時,那麼該過濾器將被調用。除此之外,過濾器不會被調用。
jsp實用過濾器寫法