一、基于XML

1. 创建Maven Project,选择war,修改pom.xml

SpringMVC是依赖于Spring的,需要导入核心包。

<properties>
<!-- JDK版本 -->
<java.version>1.8</java.version>
<!-- spring版本 -->
<spring.version>4.1.6.RELEASE</spring.version>
</properties> <dependencies>
<!-- web project基本配置 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency> <!-- 核心容器 之 spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 核心容器 之 spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 核心容器 之 spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 核心容器 之 spring-context-support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 核心容器 之 spring-expression -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency> <!-- spring web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- spring web mvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency> </dependencies>

2. 在src/main/webapp下创建META-INF、WEB-INF,在WEB-INF下创建web.xml

在web.xml中配置前端控制器:

<!-- 配置前端控制器DispatcherServlet -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- mvc配置文件的文件名以及目录 -->
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet> <servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

3. 在src/main/resources下创建springmvc.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: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.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 1. 配置处理器映射器 将bean的name作为url进行查找,需要在配置Handler时指定bean name(就是url) -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<!-- 2. 配置处理器适配器,所有适配器都得实现 HandlerAdapter接口 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
<!-- 3. 配置Handler -->
<bean name="/hello.do" class="com.linhw.demo.mvc.HelloController" /> <!--配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 返回视图页面的前缀 不能写成 /WEB-INF/jsp,最后的"/"一定要写-->
<property name="prefix" value="/WEB-INF/jsp/"></property>
<!-- 返回页面的后缀 -->
<property name="suffix" value=".jsp"></property>
</bean> </beans>

4. 创建HelloController

public class HelloController implements Controller {

    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView modelView = new ModelAndView();
modelView.setViewName("index");
return modelView;
}
}

5. 在WEB-INF/jsp目录下创建index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
hello world!
</body>
</html>

6. 浏览器访问

访问地址:http://ip:port/项目名/hello.do

二、基于注解

上面是基于 XML 的配置,我们发现每个 Handler(Controller) 类只能有一个方法,在实际开发中肯定是不可能这样来进行开发的。接下来我们就讲解实际开发中用的最多的基于注解配置的SpringMVC配置。

1. 修改springmvc.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: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.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--
1. 注解处理器映射器:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
2. 注解处理器适配器:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter
-->
<!--
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
--> <!--使用mvc:annotation-driven可以代替上面的映射器和适配器 这里面会默认加载很多参数绑定方法,比如json转换解析器就默认加载,所以优先使用下面的配置 -->
<mvc:annotation-driven/> <!--单个配置Handler,不使用注解 -->
<!-- <bean class="com.linhw.demo.mvc.HelloController"></bean> -->
<!--批量配置Handler,指定扫描的包全称 -->
<context:component-scan base-package="com.linhw.demo.mvc.controller"/> <!--配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 返回视图页面的前缀 -->
<property name="prefix" value="/WEB-INF/jsp/"></property>
<!-- 返回页面的后缀 -->
<property name="suffix" value=".jsp"></property>
</bean> </beans>

2. 修改Controller

@Controller
public class HelloController2 { @RequestMapping("/hello")
public ModelAndView showPage(){
ModelAndView modelView = new ModelAndView();
modelView.setViewName("index");
return modelView;
}
}

最新文章

  1. iOS 因为reason: &#39;Pushing the same view controller instance more than once is not supported而奔溃(下)
  2. 使用LinkedList模拟一个堆栈或者队列数据结构
  3. github 使用网址
  4. TFS与Eclipse、Microsoft Visual Studio等客户端以webservice进行交换。
  5. Parallax.js – 自适应智能设备方向的视差效果插件
  6. 【CImg】三角形绘制算法实现
  7. Xaml代码格式设置
  8. oracle还原数据库及遇到的问题
  9. 关于JS中查看当前节点的兄弟节点的使用
  10. 什么是券商PB业务
  11. 简单的Coretext 图文混排
  12. Jquery - UI - Dialog(转)
  13. PHP开发小技巧,让你瞬间提升逼格
  14. jacascript CSS样式的脚本化操作
  15. Mac下开发ASP.NET Core应用,我用FineUICore!
  16. Spring 事务传播特性
  17. opencv学习之路(37)、运动物体检测(二)
  18. synchronized无法禁止指令重排序的证明
  19. url传输编码
  20. 使用命令行工具npm新创建一个vue项目

热门文章

  1. Redis安装和基本操作
  2. java给图片写正反字体,并将二维码写到图片上,代码实现
  3. Java设计模式:Simple Factory(简单工厂)模式
  4. VS2019 MSB364 未找到框架“NETFramework,Version=v4.7”
  5. Java匹马行天下之学编程的起点——高级语言大锅烩
  6. StreamWriter StreamReader
  7. 简单的计时器 (倒计时)--html Demo
  8. 用Python在Excel里画出蒙娜丽莎
  9. PHP+Ajax点击加载更多列表数据实例
  10. 初始HTML_二