經過一段時間的掙扎,終於能把springnvc搭好了,其中心情難以言明,決心寫下小白教程。
1.創建一個maven項目。
進入後選擇maven,選擇jdk,在選擇3步驟,在項目中創建web.xml
在寫下項目的組名和唯一標識
在選擇maven,和本地的倉庫,用自己的和ide內置的都ok
最後給項目命名
這些弄完後,再去ide裏面配置一下tomcat和war包,然後啓動就行了。
如果沒有問題會顯示index.jsp的 hello word !
配置的時候,把項目的resource目錄,和項目啓動的web.xml,默認是在項目的web目錄下,把它改到src/main/webapp下就好了。
2.引入springmvc的jar包
pom.xml
<properties>
<spring.version>4.3.6.RELEASE</spring.version>
</properties>
<dependencies>
<!-- 默認就有的 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- 下面的是需要添加的 -->
<!-- spring mvc 的核心jar包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 服務器響應客戶端HTTP請求 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<!--JSP Standard Tag Library,JSP標準標籤庫-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
3.修改web.xml,在web-app標籤中加入下面的部分。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/applicationContext.xml</param-value>
<!-- 默認是/WEB-INF/applicationContext.xml -->
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- DispatcherServlet Spring mvc 的核心 -->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- DispatcherServler 對應的上下文配置 默認是/WEB-INF/[servlet名字]-servlet.xml -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/SpringMVC-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<!-- mvc-dispatccher 攔截所有的請求-->
<url-pattern>/</url-pattern>
</servlet-mapping>
然後在resources目錄下,新建springMVC-servlet.xml,和applicationContext.xml,記得把裏面的package改成自己的。
applicationContext.xml 內容
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config/>
<context:component-scan base-package="com.yu.test" >
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
</beans>
springMVC-servlet.xml內容
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
<!-- 本配置文件是工名爲SpringMVC的DispatccherSerlet使用,提供其相關的springmvc配置 -->
<!-- 啓用spring基於annotation的DI,使用戶可以在Springmvc中使用spring的強大功能
激活@Required,@Autowired,JSR 250'S,@PostConstruct,@PreDestory and,@Resource等標註
-->
<context:annotation-config/>
<!-- 設置使用註解的類所在的jar包 -->
<!-- DispatcherSerlet上下文,只管理@Controller類型的bean,忽略其他類型的bean,如@service-->
<context:component-scan base-package="com.yu.test" >
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 開啓註解 -->
<!-- 擴展驅動註解 可以將請求參數綁定到控制器參數 -->
<mvc:annotation-driven/>
<!-- 靜態資源處理-->
<mvc:resources mapping="/resources/**" location="/resources/"/>
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
4.在src目錄下創建java文件夾設置成爲sources,package爲com.yu.test
在下面新建TestController.java
package com.yu.test;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* Created by koreyoshi on 2017/8/1.
*/
@Controller
@RequestMapping("test")
public class TestController {
@RequestMapping("index")
// @ResponseBody
public String test(){
return "index";
}
}
這個時候重啓下就ok了。然後訪問http://localhost:11000/springtest/test/index。端口號,項目名記得改下,返回頁面就ok了。這就意味着搭建OK了。其他的有需要再加。
比如log4j2日誌啦,mybits之類的了。
問題總結:
1.如果報spring類nullEception。這個時候先去檢查下jar是否下載下來了。如果下載ok,去看看打的war包裏面正常不。我的前幾次失敗就是這個引起的。在此提醒大家。