SpringMVC(零)—— 第一个SpringMVC 程序
Posted Johnny*
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC(零)—— 第一个SpringMVC 程序相关的知识,希望对你有一定的参考价值。
- 开发所需Jar
开发Spring程序所必须的5个jar + Spring-webmvc.jar +Commons-logging.ar
SpringMVC就相当于Javaweb中Servlet。
在JavaWeb中,客户端发起的请求是根据web.xml中的url-pattern匹配然后交给对应的servlet区处理的。现在使用了Springmvc而不用普通的servlet类,那么如何让Springmvc接手servlet的工作呢?
SpringMVC提供了一个前端控制器DispatcherServlet,是 开发人员无需额外开发控制器对象。可以通过以下配置springmvc.xml配置文件,拦截所有请求,交给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:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
其中:
<url-pattern>.action</url-pattern>
/ 表示一切请求 ,注意不是 /*
/user 表示拦截以 /user开头的请求
/user/abc.do 表示只拦截该请求
.action 表示只拦截 .action结尾的请求
在web.xml中可以通过:
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
指定springmvc配置文件的路径,如果要省略,则springmvc配置文件必须放到 默认路径:
/WEB-INF下,且文件名为必须为springDispatcherServlet-servlet.xml;
第一个SpringMVc项目
项目结构:
spring-mvc.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
<!-- 配置注解扫描器 -->
<context:component-scan base-package="com.johnny.controller"></context:component-scan>
<!-- 配置视图解析器
该类的父类UrlBasedViewResolver有prefix和suffix两个属性
由于配置解析器的前缀和后缀
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
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>SPringMVCProject</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- 配置SpringMVC 自带的servlet
init-param 设置加载时的参数,该类DispatcherServlet有contextConfigLocation属性 用于注入SpringMVC 配置文件位置
load-on-startup 设置启动级别 1表示优先级最高
通过url-pattern的元素的/将所有的URL拦截,并交由DispatcherServlet处理
-->
<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:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- / 表示拦截所有请求 -->
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
package com.johnny.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class SpringMvcController {
@RequestMapping("welcome")
public String welcome() {
return "success"; //返回 success页面
}
}
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="welcome">to success.jsp</a>
</body>
</html>
success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
hello ,this is success.jsp!
</body>
</html>
请求过程
SpringMVC的执行流程:
以上是关于SpringMVC(零)—— 第一个SpringMVC 程序的主要内容,如果未能解决你的问题,请参考以下文章
SpringMVC 视图解析器 InternalResourceViewResolver
spring MVC新手从零新建第一个hello world项目
Android(或者Java)通过HttpUrlConnection向SpringMVC请求数据(数据绑定)
SpringMVC 常用applicationContext.xmlweb.xmlservlet-mvc.xml简单配置