隨筆 - 6  文章 - 129  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(14)

          隨筆檔案(6)

          文章分類(467)

          文章檔案(423)

          相冊

          收藏夾(18)

          JAVA

          搜索

          •  

          積分與排名

          • 積分 - 827218
          • 排名 - 49

          最新評論

          閱讀排行榜

          評論排行榜

          在映射請求中添加一個攔截器,自定義攔截器必須實現org.springframework.web.servlet.HandlerInterceptor接口。
          HandlerInterceptor的示例代碼如下:
          public interface HandlerInterceptor
          {
             //在處理器執行前調用
          boolean preHandle(HttpServletRequest request, HttpServletResponse response,   Object handler) throws Exception;

             //在處理器執行后調用
          void postHandle(HttpServletRequest request, HttpServletResponse response,   Object handler,   ModelAndView modelAndView ) throws Exception;
             //在整個請求處理完后調用
          void afterCompletion(HttpServletRequest request, HttpServletResponse response,   Object handler,   Exception    ex) throws Exception;
          }
          ----------------------------------------------------------------------------------------------------------------------------
          文件NotLeaveWord.java
          package dgut.ke.interceptor;

          import java.util.Calendar;

          import javax.servlet.RequestDispatcher;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;

          import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

          public class NotLeaveWord extends HandlerInterceptorAdapter
          {
           private int startTime;
           private int endTime;
           private String interceptorPage;
            
           /*通過依賴注入*/
           public void setStartTime(int startTime) {
            this.startTime = startTime;
           }
           public void setEndTime(int endTime) {
            this.endTime = endTime;
           }
           public void setInterceptorPage(String interceptorPage) {
            this.interceptorPage = interceptorPage;
           }
           public int getStartTime() {
            return startTime;
           }
           public int getEndTime() {
            return endTime;
           }
           public String getInterceptorPage() {
            return interceptorPage;
           }
           /*進行攔截處理*/
           public boolean preHandle(HttpServletRequest request,
                 HttpServletResponse response,
                 Object handler)throws Exception
           {
            Calendar cal = Calendar.getInstance();
            int hour = cal.get(java.util.Calendar.HOUR_OF_DAY);
            if( hour > startTime && hour < endTime)
            {
             request.setAttribute("startTime", this.getStartTime());
             request.setAttribute("endTime", this.getEndTime());
             RequestDispatcher rd = request.getRequestDispatcher(this.getInterceptorPage());
             rd.forward(request, response);
             return false;
            }
            else
            {
             return true ;
            } 
           }
           
          }
          -----------------------------------------------------------------------------------------------------------------

          文件dispatcherServlet-servlet.xml
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "<beans>
          <!-- 定義映射 -->
           <bean id="urlMapping"
            class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"
            abstract="false" singleton="true" lazy-init="default"
            autowire="default" dependency-check="default">
            <!-- 設置攔截器 -->
            <property name="interceptors">
             <list>
              <ref local="notLeaveWord"/>
             </list>
            </property>
            <property name="mappings">
             <props>
              <prop key="helloWorld.do">helloWorld</prop>
             </props>
            </property>
           </bean>
          <!-- 定義視圖 -->
           <bean id="viewResolver"
            class="org.springframework.web.servlet.view.InternalResourceViewResolver"
            abstract="false" singleton="true" lazy-init="default"
            autowire="default" dependency-check="default">
            <property name="viewClass">
             <value>
             org.springframework.web.servlet.view.JstlView
             </value>
            </property>
            <!-- 定義jsp所在的目錄 -->
            <property name="prefix"><value>/</value></property>
            <property name="suffix"><value>.jsp</value></property>
           </bean>
          <!-- 定義控制器 -->
           <bean id="helloWorld" class="dgut.ke.action.HelloWorld"
            abstract="false" singleton="true" lazy-init="default"
            autowire="default" dependency-check="default">
            <property name="helloWorld">
             <value>Spring MVC 例子</value>
            </property>
            <property name="viewPage">
             <value>index</value>
            </property>
           </bean>
          <!-- 攔截器設置 -->
           <bean id="notLeaveWord" class="dgut.ke.interceptor.NotLeaveWord"
            abstract="false" singleton="true" lazy-init="default"
            autowire="default" dependency-check="default">
            <property name="startTime">
             <value>10</value>
            </property>
            <property name="endTime">
             <value>20</value>
            </property>
            <property name="interceptorPage">
             <value>outTime.jsp</value>
            </property>
           </bean>
          </beans>
          -------------------------------------------------------------------------------------------------------------
          文件web.xml
          <?xml version="1.0" encoding="UTF-8"?>
          <web-app version="2.4"
           xmlns="
           xmlns:xsi=" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
            
            <servlet>
             <servlet-name>dispatcherServlet</servlet-name>
             <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
             <!-- 初始化參數 -->
             <init-param>
              <param-name>contextConfigLocation</param-name>
              <param-value>/WEB-INF/dispatcherServlet-servlet.xml</param-value>
             </init-param>
             <load-on-startup>1</load-on-startup>
            </servlet>
           
            <servlet-mapping>
             <servlet-name>dispatcherServlet</servlet-name>
             <url-pattern>*.do</url-pattern>
            </servlet-mapping>
           
            <welcome-file-list>
              <welcome-file>index.jsp</welcome-file>
            </welcome-file-list>
          </web-app>



          FeedBack:
          # re: 攔截器[未登錄] 2008-06-30 23:17 aaa
          這個和《spring從入門到精通》里是一樣的,我試過了,沒有用哦……
          在prehander里加個控制臺輸入可以發現沒有用……  回復  更多評論
            
          主站蜘蛛池模板: 百色市| 大庆市| 梁山县| 大邑县| 南涧| 府谷县| 无锡市| 抚宁县| 蓬莱市| 谷城县| 巴南区| 留坝县| 北碚区| 布尔津县| 正阳县| 安仁县| 阜宁县| 肇源县| 大田县| 马边| 富顺县| 泉州市| 和硕县| 兴文县| 辽阳县| 二手房| 宜黄县| 澎湖县| 太康县| 报价| 咸丰县| 海兴县| 浏阳市| 玛曲县| 惠来县| 韶关市| 安西县| 论坛| 车险| 海淀区| 四子王旗|