首页 > 代码库 > Spring MVC系列:(1)SpringMVC快速入门

Spring MVC系列:(1)SpringMVC快速入门


回顾一下struts2,struts2框架有如下特点:

struts.xml配置文件,必须以struts.xml命名,且放在src目录下【配置】

     每次请求action时,都创建action实例【单例/多例】

action类一成不变的直接或间接继续ActionSupport类【类层面】

action类中的业务控制方法总是相类似的签名且无参【方法层面】

action类中,接收参数要用成员变量和对应的set方法或set/get方法【成员变量层面】



1、什么是springmvc,它与spring有什么关系

springmvc属于spring框架的后续产品,用在基于MVC的表现层开发,类似于struts2框架


技术分享

2、初识springmvc工作流程


大致流程:请求Action(/hello.action)→DispatcherServlet→handler→adapter→开发者自定义的Action类(HelloAction)→ModelAndView→View→DispatcherServlet→JSP页面

技术分享

3、springmvc快速入门

步骤:

    (1)引入jar包

    (2)配置 web.xml

    (3)编写Action代码,并进行URL映射配置



3.1、引入jar包

需要引入的jar包分成三个部分:

spring-core

spring-web

spring-webmvc

spring-core

commons-logging-1.2.jar

spring-beans-3.2.5.RELEASE.jar

spring-context-3.2.5.RELEASE.jar

spring-core-3.2.5.RELEASE.jar

spring-expression-3.2.5.RELEASE.jar

spring-webspring-web-3.2.5.RELEASE.jar
spring-webmvcspring-webmvc-3.2.5.RELEASE.jar



3.2、配置web.xml

在web.xml文中注册springmvc框架的核心控制器

<?xml version="1.0" encoding="UTF-8"?>
<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_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>springmvc01</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <!-- 注册springmvc框架核心控制器 -->
  <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>springmvc</servlet-name>
  	<url-pattern>*.action</url-pattern>
  </servlet-mapping>
</web-app>



3.3、编写Action类,并进行URL映射配置 


(1)编写Action类的代码

HelloWorldAction.java

package com.rk.web.action;

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 HelloWorldAction implements Controller {

	public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.addObject("message", "这是我的第一个SpringMVC应用");
		modelAndView.setViewName("/jsp/success.jsp");
		return modelAndView;
	}

}


(2)对HelloWorldAction进行URL映射配置

在WebRoot/WEB-INF/目录下创建springmvc-servlet.xml配置文件,xml头部信息与spring.xml相同

注意:该配置文件的命名规则:web.xml文件中配置的<servlet-name>的值-servlet.xml

<servlet-name>-servlet.xml

技术分享


springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <bean name="/helloworld.action" class="com.rk.web.action.HelloWorldAction"></bean>


</beans>

注意:<bean>的name属性中以“/”开始,否则访问不到



3.4、添加JSP页面

在/WebRoot/下创建jsp/success.jsp

<%@ page language="java"  pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta name="content-type" content="text/html; charset=UTF-8">
    <title>My SpringMvc</title>
  </head>
  
  <body>
    success.jsp<br>
    ${message }
  </body>
</html>


技术分享


4、加载自定义目录下的springmvc.xml配置文件


在默认情况下:springmvc框架的配置文件必须叫<servlet-name>-servlet.xml,且必须放在WebRoot/WEB-INF/目录下。

我们可以在web.xml文件中,为DispatcherServlet配置一个初始化参数,让它去我们指定的目录下加载springmvc-helloworld.xml配置文件。

(1)假如springmvc-helloworld.xml放置在src目录下的com.rk.web.action包下

web.xml代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<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_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>springmvc01</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <!-- 注册springmvc框架核心控制器 -->
  <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>/WEB-INF/classes/com/rk/web/action/springmvc-helloworld.xml</param-value>
  	</init-param>
  </servlet>
  <servlet-mapping>
  	<servlet-name>springmvc</servlet-name>
  	<url-pattern>*.action</url-pattern>
  </servlet-mapping>
</web-app>

其中,<param-value>也可以写成classpath:...

  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:com/rk/web/action/springmvc-helloworld.xml</param-value>
  	</init-param>


(2)如果springmvc-helloworld.xml配置文件放在src目录下

web.xml代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<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_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>springmvc01</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <!-- 注册springmvc框架核心控制器 -->
  <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:springmvc-helloworld.xml</param-value>
  	</init-param>
  </servlet>
  <servlet-mapping>
  	<servlet-name>springmvc</servlet-name>
  	<url-pattern>*.action</url-pattern>
  </servlet-mapping>
</web-app>





Spring MVC系列:(1)SpringMVC快速入门