java-springmvc4-web项目搭建
1.新建一个 maven project web 项目,用 “maven-archetype-webapp”类型,项目名为 mavens-web
2.配置 maven ,添加 spring 需要的 jar 包
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>demo.mavens.parent</groupId>
<artifactId>mavens-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>demo.mavens.parent</groupId>
<artifactId>mavens-web</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>mavens-web Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<!-- 文件拷贝时的编码 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- 编译时的编码 -->
<org.springframework.version>4.3.7.RELEASE</org.springframework.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-websocket</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework.version}</version>
</dependency>
</dependencies>
<!-- 读取不同环境配置文件 -->
<profiles>
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
<profile>
<id>product</id>
<properties>
<env>product</env>
</properties>
</profile>
</profiles>
<build>
<finalName>mavens-web</finalName>
</build>
</project>
3.配置 web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<!-- 配置DispatchcerServlet -->
<servlet>
<servlet-name>demoServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>demoServlet</servlet-name>
<!-- / 表示对于所有的请求的拦截,包括静态资源如html, js, jpg等 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/index.html</welcome-file>
</welcome-file-list>
</web-app>
4.在 WEB-INF 目录下创建 xxxservlet.xml,xxx 为 servlet-name 指定的名
<?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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<!-- 不拦截静态资源 -->
<mvc:annotation-driven />
<mvc:resources location="/content/" mapping="/content/**"/>
<!-- 配置自动扫描的包 -->
<context:component-scan base-package="demo.mvc">
</context:component-scan>
<!-- 配置视图解析器 如何把handler 方法返回值解析为实际的物理视图 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 拼接物理视图的地址前缀 -->
<property name="prefix" value="/views/"></property>
<!-- 拼接物理视图的地址后缀 -->
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
5.创建一个 controller 控制器文件,定义和处理请求
注:包名结构这里将 spring 相关的东西都放到 demo.mvc 下了
控制器都放到 demo.mvc.controllers 包下
package demo.mvc.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
*
*/
@Controller
@RequestMapping("/hello")
public class HelloController {
/**
* 请求地址:项目名/hello/index
* @return
*/
@RequestMapping("index")
public String index(){
return "hello/index"; //servlet.xml 中定义的 前缀(prefix)+返回值+后缀(suffix)拼接的物理地址
}
}
6.在 webapp 目录下创建 views/hello 目录
views 目录放所有页面文件
hello 目录对应每个controller控制器,这里对应 HelloController 这个控制器
目录结构为:
webapp
--views
----hello
------index.jsp
7.部署到 tomcat 中,看下目录结构对不
webapps
--mavens-web
----META-INF
----views
------index.jsp //这个是目标页
----WEB-INF
index.jsp
8.请求 http://localhost:8080/mavens-web/hello/index 查看效果