一、普通配置
1、创建web.xml
在WEB-INF目录下创建 web.xml
配置Spring MVC的入口 DispatcherServlet,把所有的请求都提交到该Servlet
注意:<servlet-name>springmvc</servlet-name>
springmvc这个名字在下一步会用到
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
2、创建springmvc-servlet.xml
在WEB-INF目录下创建 springmvc-servlet.xml
springmvc-servlet.xml 与上一步中的springmvc对应
<servlet-name>springmvc</servlet-name>
这是Spring MVC的 映射配置文件
表示访问路径/index会交给id=indexController的bean处理
id=indexController的bean配置为类:IndexController
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/index">indexController</prop> </props> </property> </bean> <bean id="indexController" class="controller.IndexController"></bean> </beans>
3、创建IndexController
控制类 IndexController实现接口Controller ,提供方法handleRequest处理请求
SpringMVC通过 ModelAndView 对象把模型和视图结合在一起
ModelAndView mav = new ModelAndView("index.jsp");
mav.addObject("message", "Hello Spring MVC");
表示视图是index.jsp
模型数据是 message,内容是 “Hello Spring MVC”
package controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class IndexController implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView mav = new ModelAndView("index.jsp");
mav.addObject("message", "Hello Spring MVC");
return mav;
}
}
4、创建视图index.jsp
在WebContent目录下创建index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<h1>${message}</h1>
原理图
1. 用户访问 /index
2. 根据web.xml中的配置 所有的访问都会经过DispatcherServlet
3. 根据 根据配置文件springmvc-servlet.xml ,访问路径/index
会进入IndexController类
4. 在IndexController中指定跳转到页面index.jsp,并传递message数据
5. 在index.jsp中显示message信息
二、视图重定向配置
1、创建web.xml
在WEB-INF目录下创建 web.xml
配置Spring MVC的入口 DispatcherServlet,把所有的请求都提交到该Servlet
注意:<init-param>标签
在<servlet>中配置contextConfigLocation参数,根据参数值<param-value>来定位springMVC的 映射配置文件
<servlet> <servlet-name>SpringDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:spring-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>SpringDispatcherServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
2、创建spring-servlet.xml
在Java Resources的resource目录下创建spring-serlvet.xml
spring-servlet.xml与上一步中的
<param-value>classpath*:spring-servlet.xml</param-value>
相对应;
这是Spring MVC的 映射配置文件
去掉映射相关的配置,因为已经使用注解方式了
增加 <context:component-scan base-package="controller" />
表示从包controller下扫描有@Controller注解的类
<!--表示从包com.insigma.controller下扫描有@Controller注解的类--> <context:component-scan base-package="com.insigma.controller" /> <!--- 视图定位 ---前缀+ viewName +后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- webroot到某一指定的文件夹的路径 --> <property name="prefix" value="/WEB-INF/view/"></property> <!-- 视图名称的后缀 --> <property name="suffix" value=".jsp"></property> </bean>
增加视图定位配置,其作用是把视图约定在 /WEB-INF/page/*.jsp 这个位置
3、创建controller类
在类前面加上@Controller 表示该类是一个控制器
在方法handleRequest 前面加上 @RequestMapping("/index") 表示路径/index会映射到该方法上
注意:不再让IndexController实现Controller接口
@Controller
public class IndexController {
@RequestMapping("/index")
public String handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
request.setAttribute("info", "Hello Spring MVC");
return "index";
}
}
4、创建视图
在WebContent/WEB-INF/view/目录下创建index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<h1>${info}</h1>