本文属于SpringMVC的入门篇,属于基础知识,仅供学习分享使用,如有不足之处,还请指正。
什么是SpringMVC ?
SpringMVC是一个基于Spring的MVC框架,继承了Spring的优秀特点,目前是使用率最高的Java EE Web MVC框架。
SpringMVC优势有哪些?
- SpringMVC运行速度会比Struts快一些(SpringMVC是单例模式,线程不安全,所以不要使用成员变量,Struts是多线程的方式,线程间是安全的)
- SpringMVC更加简洁,开发效率更高;层次清晰,便于阅读
SpringMVC体系结构
如下图所示:
SpringMVC环境搭建
1. 新建一个Web工程【Dynamic Web Project】
File-->New-->Dynamic Web Project,按照步骤执行即可。如下图所示:
2. 导入SpringMVC需要的Jar(Java Archive)包
需要导入的Jar包共8个,分为三个部分,如下所示:
//日志包 commons-logging-1.1.1.jar spring核心包 spring-aop-4.0.6.RELEASE.jar spring-beans-4.0.6.RELEASE.jar spring-context-4.0.6.RELEASE.jar spring-core-4.0.6.RELEASE.jar spring-expression-4.0.6.RELEASE.jar WebMVC包 spring-web-4.0.6.RELEASE.jar spring-webmvc-4.0.6.RELEASE.jar
3. 配置web.xml
主要是配置核心控制器,如下图所示:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 3 <!-- SpringMVC是使用Servlet来做控制器的,默认在/WEB-INF/[servlet-name]-servlet.xml这个路径,如:dispatcher-servlet.xml --> 4 为什么用的时候才报错?Tomcat启动的时候不报错? 5 Sturts只要配置报错了,启动的时候就会报错,SpringMVC是在第一次访问的时候才创建Servlet 6 7 servlet 8 servlet-name>dispatcher</ 9 servlet-class>org.springframework.web.servlet.DispatcherServlet10 以下语句配置,在tomcat启动时,启动核心控制器 11 load-on-startup>112 /WEB-INF/dispater-servlet.xml 13 14 servlet-mapping15 16 请求入口 17 url-pattern>/18 19 20 display-name>FirstSpringMvc21 welcome-file-list22 welcome-file>index.html23 >index.htm24 >index.jsp25 >default.html26 >default.htm27 >default.jsp28 29 web-app>
4. 新建一个类实现Cotroller接口
一个Controller只有一个handleRequest方法需要实现,用来处理页面的请求
package com.hex.springmvc; 2 3 import javax.servlet.http.HttpServletRequest; 4 javax.servlet.http.HttpServletResponse; 5 6 org.springframework.web.servlet.ModelAndView; 7 org.springframework.web.servlet.mvc.Controller; 8 9 /** 10 * 实现Controller接口 11 * @author Administrator 12 * 13 */ 14 public class HelloWorldController implements Controller { 15 16 @Override 17 public ModelAndView handleRequest(HttpServletRequest req,HttpServletResponse resp) throws Exception { 18 ModelAndView mav=new ModelAndView(); 19 mav.addObject("msg","Hello World,你好,SpringMVC"); 20 mav.setViewName("WEB-INF/jsp/HelloWorld.jsp"21 System.out.println("控制器被执行了!!!"22 return mav; 23 } 24 25 }
5. 新增Controller配置文件
SpringMVC有一个默认的配置文件,默认在/WEB-INF/[servlet-name]-servlet.xml这个路径,如:dispatcher-servlet.xml。
一个bean就表示一个Controller,用id属性来唯一表示。如下所示:
1 2 beans xmlns="http://www.springframework.org/schema/beans" 3 ="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans 5 http://www.springframework.org/schema/beans/spring-beans.xsd"6 bean id="/HelloWorld" class="com.hex.springmvc.HelloWorldController"></bean7 beans6. 新增JSP(Java Server Pages)页面${msg}表示接收Controller传递过来的参数内容,如下所示:
1 <%@ page language="java contentTypetext/html; charset=UTF-8" 2 pageEncodingUTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"htmlheadMeta http-equiv="Content-Type" content="text/html; charset=UTF-8"title>SpringMVC欢迎你 8 body10 h1>欢迎信息11 >${msg}13 7. 访问启动Tomact,打开浏览器,输入网址http://localhost:8080/FirstSpringMvc/HelloWorld,如下所示,则表示成功
8. 文件结构
整个文件结构,如下图所示:
SpringMVC对静态资源的支持
在配置核心控制器时<url-pattern>/</url-pattern>,会导致SpringMVC框架下,静态资源无法访问(css,js,img),则需要配置对静态资源的支持,如下所示:
3 4 xmlns:mvc="http://www.springframework.org/schema/mvc" 5 http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd" 9 静态资源的支持 10 mvc:default-servlet-handler/> >配置过后,图片就可以访问了,如下所示:
备注
如山间清爽的风,如古城温暖的光