SSM三大框架環境搭建之SpringMVC
阿新 • • 發佈:2018-12-14
第一步:基於瀏覽器傳送請求給伺服器之後,伺服器啟動訪問的web.xml配置前端控制器(DispatcherServlet)
<!-- 配置Spring MVC 前端控制器 --> <!-- 註冊前端控制器 --> <servlet> <servlet-name>frontController</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name><!-- 這個名字不能隨意寫 --> <param-value>classpath:spring-configs.xml</param-value> </init-param> <!--配置servlet在伺服器啟動時載入(數字越小優先順序越高) 配置如下選項以後,tomcat啟動時就會初始化這個servlet, 這個servlet在初始化時會讀取contextConfigLocation 引數對應的配置檔案. --> <load-on-startup>1</load-on-startup> </servlet> <!-- 配置前端控制器對映 --> <servlet-mapping> <servlet-name>frontController</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
第二步:前端控制器根據請求的url在HandlerMapping中找對應的Controller
在此之前要新增pom.xml檔案的jar包依賴 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.9.RELEASE</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.9.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.9.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.3.9.RELEASE</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.40</version> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>annotations-api</artifactId> <version>6.0.29</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.29</version> </dependency> </dependencies>
第三步:在SpringMVC-config.xml中新增開啟mvc註解
<mvc-annotation-driven/>
第四步:寫Controller後端控制器
package com.jt.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class TestController { @RequestMapping("testMVC") @ResponseBody public String testMVC(){ return "pageMVC"; } }
在前端控制器直和後端控制器之間還有一個SpringMVC的核心構建是攔截器
寫MVC的攔截器有兩種方式
第一種:寫一個類繼承HandlerInterceptorAdapter,並重寫其方法三個方法,這三個方法的執行順序是不同的,pre方法在前端控制器執行之後後端控制器執行之前執行,post方法在後端控制器執行之後執行,after方法在前端控制器和檢視解析器之間執行
pre方法中需要一個返回值是boolean型別,該返回值若是true就是放行,若是false就是攔截住,所以在這裡還可以設定判斷要攔截的條件
package com.jt.intercepter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.ibatis.type.IntegerTypeHandler;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class TimeIntercepter extends HandlerInterceptorAdapter{
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
System.out.println("TimeIntercepter.preHandle()");
return true;
}
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
System.out.println("TimeIntercepter.postHandle()");
}
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
System.out.println("TimeIntercepter.afterCompletion()");
}
}
第二種:寫一個類實現HandlerInterceptor介面,並實現其方法
然後在SpringMVC-configs.xml配置該攔截器
這裡可以設定的屬性還有許多,例如不攔截的url,就不一一測試
<!-- 配置攔截器物件 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- 要攔截的路徑 -->
<mvc:mapping path="/**" />
<!-- 攔截器物件 -->
<bean class="com.jt.intercepter.TimeIntercepter" />
</mvc:interceptor>
</mvc:interceptors>
第四步:配置檢視解析器
當前端處理器找到請求的url對應的後端控制器,則得到其返回值,根據返回值從檢視解析器裡去加上字首和字尾在我們的web應用中找到對應的web資源、
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="Prefix" vlaue="/WEB-INF/pages/"></property>
<property name="Suffix" value=".jsp"></property>
</bean>
第五步:加上包掃描,將指定的controller交給spring管理
<context:component-scan base-package="com.jt" />
第六步:在專案上右鍵選中屬性為專案新增targetRuntimes執行時環境,再將專案釋出到伺服器中,最後測試一下url
測試url:http://localhost/jt-programer/testMVC.do
測試結果: