经过一段时间的挣扎,终于能把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包里面正常不。我的前几次失败就是这个引起的。在此提醒大家。