springmvc 打成jar包_SpringMVC-基础篇(一)

本文详细介绍了SpringMVC的基础知识,包括什么是Spring MVC、其底层的Servlet实现、入门案例、全注解开发、执行流程、请求响应、数据绑定和响应传值方式等。通过实例讲解了Spring MVC如何处理请求、响应,以及如何处理中文乱码问题,帮助读者深入理解Spring MVC的工作原理。
摘要由CSDN通过智能技术生成

1. SpringMVC概述

1.1. 什么是Spring MVC

SpringMVC是Spring框架内置的MVC的实现.
SpringMVC就是一个Spring内置的MVC框架.
MVC框架,它解决WEB开发中常见的问题(参数接收、文件上传、表单验证、国际化、等等),而且使用简单,与Spring无缝集成。 
支持 RESTful风格的 URL 请求 。
采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性。

1.2. SpringMVC的作用

MVC模式:(Model-View-Controller):为了解决页面代码和后台代码的分离.

2. SpringMVC底层实现

在没有使用SpringMVC之前我们都是使用的Servlet在做Web开发。
但是使用Servlet开发在接受请求数据参数,数据共享,页面跳转等操作相对比较复杂。

SpringMVC底层就是的Servlet,SpringMVC就是对Servlet进行更深层次的封装

2.1. 回顾MVC模式

回顾什么是mvc模式

   模型model(javabean),  视图view(jsp/img)   控制器Controller(Action/servlet)   C存在的目的.就是为了保证M和V的一致性
   当M发生改变时,C可以把M中的新内容更新到V中.

2.1.1. 原始MVC 模式

MVC模式最早开始是在CS 架构上面 20世纪70+年代

下面为原始的mvc模式.

目前web应用中,99%的项目都会使用mvc模式开发.

8dd1af8e3795b2dfa7dd9063ff848962.png

2.1.2. WEB开发的MVC

WEB开发从20世纪90+年代开始,也是使用MVC模式。在最原始的MVC上有一些改进
优秀的框架改变了这种模式,将model更广泛的使用,这样会比原始的mvc好多了.
像现在一些优秀的mvc的框架,如Struts2,springMVC
在客户端提交也使用了模型来请求参数
spring MVC 也实现的相关的功能

a1911d7a59543d550989604be3e1ab69.png

3. 入门案例 -xml 配置

3.1. 准备工作

创建动态Web项目

f3563ed55feca8bec8bf95770ed42e8b.png

b9583ef1a8a774c5d803d4994d735f3d.png

1baf5c261552717f06a02346f8202f35.png

3.2. 步骤

3.3. 准备jar包

45fca92f70b6ac8dceb77a8ccec3f8b4.png

3.4. SpringMVC开发相关jar包

spring-web-4.3.3.RELEASE.jar         spring 对web项目的支持。
spring-webmvc-4.3.2RELEASE.jar   spring mvc核心包。

1e790a06d48e6c318e9c5f6effad3f3d.png

3.5. 编写Controller控制器(与以前servlet类似)

public class HelloController implements Controller  {
	@Override
	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		ModelAndView mv = new ModelAndView();
		mv.addObject("username", "师姐");
		mv.setViewName("/WEB-INF/hello/hello.jsp");
		return mv;
	}
}

3.6. 在springmvc.xml配置 Controller

	<!--
		name : 给当前控制器取的一个名字,相当于Servlet中的资源名称,以便浏览器访问,必须以斜杠/开头
			建议使用 name属性,不要使用id,因为早期版本 id 不支持特殊字符 如 /斜杠
	  -->
	<bean name="/hello" class="cn.zj.springmvc.HelloController"/>

3.7. 配置spring mvc核心(前端)控制器,并且初始化spring容器。 web.xml配置.

<!-- 配置前端控制器 :所有的请求都会经过此控制器,让后通过此控制器分发到各个控制器(总控)
		总控其实就是Servlet,SpringMVC底层就是使用Servlet编写的
	 -->
	<servlet>
		<servlet-name>springMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 读取SpringMVC的配置文件 -->
		<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>springMVC</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

3.8. 启动项目

2060288c9441c4f28d1ebfe8c6922687.png

3.9. 访问项目

e2eeceb838316e59f3d17b14c226b8b6.png

4. SpringMVC的全注解开发

4.1. Spring中IOC 注解

b316296775c55a2fb33ed33616f69377.png

4.2. SpringMVC使用注解步骤

4.2.1. Spring mvc 采用注解方式(需要导入aop的包)

3919c20470416e4b0f4fa1ee0ed58c80.png

4.2.2. 通过注解方式注册控制器,配置需要扫描的根目录

<context:component-scan base-package="cn.zj.springmvc"/>

4.2.3. 支持所有mvc注解支持。支持json

<mvc:annotation-driven/>

4.2.4. 在核心类上添加@Controller 注解

4.2.5. 在方法上添加@RequestMapping("/hello")注解

4.3. 案例代码

@Controller
public class AnnotationController  {
	//@RequestMapping(value= {"/method1","/method2"})
	@RequestMapping("method1")
	public ModelAndView mehtod1() {
		ModelAndView mv = new ModelAndView();
		mv.addObject("username", "乔峰");
		mv.setViewName("/WEB-INF/anno/index.jsp");
		return mv;
	}
}

5. SpringMVC执行流程和原理

SpringMVC流程:
01、用户发送出请求到前端控制器DispatcherServlet。
02、DispatcherServlet收到请求调用HandlerMapping(处理器映射器)。
03、HandlerMapping找到具体的处理器(可查找xml配置或注解配置),生成处理器对象及处理器拦截器(如果有),再一起返回给DispatcherServlet。
04、DispatcherServlet调用HandlerAdapter(处理器适配器)。
05、HandlerAdapter经过适配调用具体的处理器(Handler/Controller)。
06、Controller执行完成返回ModelAndView对象。
07、Hand
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值