简介
- Spring 提供了一个Web MVC框架,便于开发MVC结构的Java Web程序。
- Spring MVC框架控制器为DispatcherServlet,DispatcherServlet负责接收请求,然后将请求分发到不同的处理器进行业务处理,最后由控制器完成转发动作。
- Spring Web MVC提供了M、V和C相关的实现,主要实现组件如下:
– DispatcherServlet(控制器,请求入口)
– HandlerMapping(控制器,请求派发)
– Controller(控制器,请求处理流程)
– ModelAndView(模型,封装处理结果和视图)
– ViewResolver(视图,视图显示处理器) - Spring Web MVC的主要处理流程如下:
应用
- 搭建Spring Web MVC环境的步骤如下:
- 创建web项目工程
- 添加ioc和webmvc开发包
- 添加Spring配置文件applicationContext.xml
- 在web.xml和applicaationContext.xml中分别配置
简单实例
首先创建一个动态web工程
创建完成之后,默认不提供web.xml,这时我们需要右击Deployment Descriptor:SpringWebMVC,然后点击Generate Deployment Descriptor Stub,即可生成web.xml;但是如果在创建时选择了版本(亲测3.0以下都可以),那么就可以不用考虑这一步
导入相关jar包和配置文件的模板:
- 导入与IOC相关、与webmvc相关的jar包
- 再添加applicationContext.xml文件,放入Java Resources中的src目录下即可
- 设计流程
开始配置
在web.xml中配置DispatcherServlet
<servlet> <servlet-name>SpringWebMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>SpringWebMVC</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
在applicationContext.xml中配置HandlerMapping、ViewResolver
<!-- 定义HelloController --> <bean id="HelloController" class="com.ll.HelloController"></bean> <!-- SpringWebMVC --> <!-- 定义HandlerMapping --> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <!-- <prop key="请求">Controller的id</prop> --> <prop key="hello.do">HelloController</prop> </props> </property> </bean> <!-- 定义viewResolver --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean>
开始编辑Controller(HelloController.java)
package com.ll; 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 HelloController implements Controller{ @Override public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { ModelAndView mav = new ModelAndView(); mav.setViewName("hello"); return mav; } }
注意:默认工程没有Apache Tomcat服务,因此需要自己添加这一个Library,具体添加过程 : 右击SpringWebMVC工程名 =》左击Build Path =》 左击Configure Build Path =》 找到Libararies =》点击Add Library =》 选择Server Runtime =》 选择Apache下的Apache Tomcat v7.0 =》 点击Apply =》 最后点击ok完成
编辑View视图(hello.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8" 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 Spring Web MVC! </body> </html>
测试程序
首先将我们的项目添加到tomcat服务器上- 打开Servers控制台:最上面找到Window =》Show View =》找到Server(如果未找到就继续往下) =》 Other =》 Server =》 Servers。
- 创建一个Tomcat的Server:在Servers控制台中右键 =》 New =》 Server =》 找到Apache =》 选择Tomcat版本(本实例使用Tomcat v7.0 Server) =》 Next =》 选择左边框中我们需要添加的工程SpringWebMVC =》 点击中间位置的Add =》 点击Finish。
发布工程到Tomcat服务器中
- 右键点击Servers中的Tomcat v7.0 Server at localhost =》 Publish
启动Tomcat服务器
- 右键点击Servers中的Tomcat v7.0 Server at localhost =》 Start
在网页输入请求测试程序
- Tomcat的服务器端口默认是8080
请求格式:http://主机ip:Tomcat端口/工程名称/请求
本次请求:http://localhost:8080/SpringWebMVC/hello.do
页面显示结果