Spring3.0后超越了Struts2,Spring为展现层提供了一种基于MVC设计、轻量级Web层应用框架,是Spring框架的一个后续产品(偏前端非基于业务逻辑层),是目前企业主流的MVC框架之一;
SpringMVC通过注解,让POJO(简单的Java对象即普通的JavaBean)成为处理请求的控制器,无序实现任何接口;
SpringMVC支持Restful风格的URL请求(POST、DELETE、PUT、GET);
SpringMVC采用松散耦合可插拔组件结果,比对其它MVC框架,更具有扩展性和灵活性。
①与Spring框架无缝集成,如:(IOC,AOP);
② 支持Restful风格;
③ 进行更简洁的Web层开发;
④支持灵活的URL到页面控制器的映射;
⑤非常容易与其他视图技术集成,如:Velocity、FreeMarker等等;
⑥因为模型数据不存放在特定的API里,而是放在一个Model里(Map数据结构实现,因此很容易被其他框架使用);
⑦非常灵活的数据验证、格式化和数据绑定机制、能使用任何对象进行数据绑定,不必实现特定框架的API;
⑧更加简单、强大的异常处理;
⑨对静态资源的支持;
⑩支持灵活的本地化、主题等解析;
8个JAR包:
<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>SpringmvcDemo01display-name>
<servlet>
<servlet-name>dispatcherServletservlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
<init-param>
<param-name>contextConfigLocationparam-name>
<param-value>classpath:spring-mvc.xmlparam-value>
init-param>
<load-on-startup>1load-on-startup>
servlet>
<servlet-mapping>
<servlet-name>dispatcherServletservlet-name>
<url-pattern>/url-pattern>
servlet-mapping>
web-app>
快捷配置快捷键:Alt+"/"!!!
<?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"
xsi:schemaLocation="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.0.xsd">
<!-- 【1】组件扫描 -->
<context:component-scan base-package="com.codinglin.springmvc.helloworld"></context:component-scan>
<!-- 【2】视图解析器
作用:将prefix +处理器返回的逻辑名称+suffix 拼接成物理视图,就会做转发操作
-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试入口页面title>
head>
<body>
<a href="https://coding0110lin.blog.csdn.net/">测试1--绝对路径a><br>
<a href="blog.html">测试2--相对路径a><br>
<a href="/blog.html">测试3--相对路径a><br>
<a href="${pageContext.request.contextPath}/blog.html">测试4--相对路径a><br>
<a href="${pageContext.request.contextPath}/codinglin/hello">SpringMVC--helloWorld测试2a>
body>
html>
SpringmvcDemo01我们称之为为当前项目,官方说法是“上下文根”!如果我们下修改项目名,即重命名,选中项目–>Properties:
package com.codinglin.springmvc.helloworld;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/*这个处理器,不依赖某一个类和某一个接口
*
* 1.交给容器管理
* 2.标识为Controller
* 注意:在SpringMVC上,处理器必须加上Controller注解
* */
@Controller
@RequestMapping("/codinglin")
public class HelloWorldController {
//将客户端的请求交给该方法进行处理
// "/"表示相对的项目 http://localhost:8080/SpringmvcDemo01/hello
//请求的映射路径名称和处理请求的方法名称最好一致!
@RequestMapping("/hello")
public String hello() {
//返回的是要跳转的页面的【逻辑视图名称】
//通过视图解析器
return "success";
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title heretitle>
head>
<body>
<h3>Success Page!h3>
body>
html>
总结:
开发HelloWorld案例的步骤如下:
(1)创建创建DynamicWebProject<动态工程>
(2)导包(8个)
aop
,bean
,context
,core
,expression
,common-logging
,web
,web-mvc
(3)配置web.xml文件
① 配置SpringMVC的中央调度器
② 指定SpringMVC配置文件(spring-mvc.xml)的路径
③ 在web服务器启动阶段实例化servlet(4)配置spring-mvc.xml文件
①组件扫描
②视图解析器(prifix
、suffix
)(5)编写处理器HelloWordController处理器客户端请求
①@Controller
②@RequestMapping
③返回跳转的页面的逻辑名称(6) 编写success.jsp页面在WEB-INF/views目录下
(1)启动Tomcat服务器
①读取web.xml
文件;
②在web.xml
文件配置SpringMVC的中央调度器,配置了
;
③在启动服务器时,DispatcherServlet就会被创建,init()就会执行;
④在init()中,中央调度器实例化Spring的容器对象,在实例化容器时,需要读取spring的配置文件,通过
指定spring的配置文件路径(类路径);实例化容器对象时,会读取spring-mvc.xml
文件。
⑤在spring-mvc.xml
配置文件中,指定了扫描的组件,会将HelloWorldController扫描到,同时会对方法上的@RequestMapping
注解进行解析,就可知道请求与处理器间的一个映射关系;
控制台信息:
(2)在浏览器中地址栏中发送http://localhost:8080/SpringmvcDemo01/index.jsp
请求
①该请求交个中央处理器处理,在web.xml中,中央处理器匹配了所有的请求,
,中央处理器根据请求和处理器的映射关系,会决定选择将请求交给对应的处理器的方法进行处理;
②处理器的方法处理完请求之后,返回一个字符串类型值,这个字符串是跳转视图的逻辑名称;
③在spring-mvc.xml配置文件中视图解析器对返回值进行解析:
格式:前缀+逻辑名称+后缀=具体的物理视图
④解析完毕后,通过请求转发的方法跳转到具体的物理视图success.jsp
。
☝上述分享来源个人总结,如果分享对您有帮忙,希望您积极转载;如果您有不同的见解,希望您积极留言,让我们一起探讨,您的鼓励将是我前进道路上一份助力,非常感谢!我会不定时更新相关技术动态,同时我也会不断完善自己,提升技术,希望与君同成长同进步!
☞本人博客:https://coding0110lin.blog.csdn.net/ 欢迎转载,一起技术交流吧!