首页 > 代码库 > 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-web | spring-web-3.2.5.RELEASE.jar |
spring-webmvc | spring-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快速入门