SpringMVC应用01

1.SpringMVC基础

1.1简介:
Spring MVC有些地方也叫作Spring Web MVC,看名字就能知道这是一个表现层框架。在没有学习Spring MVC或者struts之类的框架的时候,一般会使用JavaEE中的servlet来接收和处理前台发送的请求,这种方式使用起来有一些不方便的地方,比如做一个增删改查,我们需要在servlet中编写判断逻辑来处理相应的增删改查的请求,这样代码显得冗余,而且不同的开发者可能会有不同的写法,在实际开发中当一个项目大到一定程度之后,需要将一些重复冗余的代码抽象出来,此时你就会发现,这些代码其实就是java常用的那些框架的原型。这些框架抽象了一些冗余代码,还提供了一些好用的类和方法,因此在实际开发中,通常会使用框架
1.2MVC模式简介:
MVC全程是Model View Controller 是模型-试图-控制器的缩写是经典软件设计的模型,
Model模型主要负责业务逻辑,业务数据(bean,dao,daoimpl)和业务逻辑处理(service)
View视图层 主要负责页面的显示和用户交互,一般是jsp
Controller控制层 是模型层和视图层的桥梁,控制器接受用户的输入并调用模型和试图去完成用户的需求,控制器本身不输出任何东西和做任何处理。
1.3 Spring Web MVC工作流程图
在这里插入图片描述
解析:
1.由浏览器发送请求localhost:8080/,该请求到达web服务器(tomcat)后,会在web.xml文件中查找与之匹配的servlet,我们在web.xml文件中会匹配到Spring MVC的核心控制器DispatcherServlet上。

2.DispatcherServlet会去我们开发者编写的springmvc.xml配置文件中查找与请求匹配的Controller。

3.DispatcherServlet会将请求转到Controller类上,并调用该类中的handleRequest方法来处理这个请求。
4.在handleRequest方法中执行完成后会将ModelAndView对象返回给DispatcherServlet,然后DispatcherServlet将jsp响应给浏览器,流程结束。

上面的流程只是表面的一个执行流程,实际在Spring MVC内容还有更复杂的流程,这部分流程我们在后面再详细介绍,通过这个简单的执行流程,我们可以看到大体上Spring MVC的工作方式,它的底层实际上就是一个servlet,主要依赖于其核心的中央控制器DispatcherServlet,请求和响应等一系列的工作都是由这个servlet来完成的,基于这样的原因,我们才会称DispatcherServlet为Spring MVC的中央控制器了。

1.4搭建Spring Web MVC工作环境
第一步:创建一个项目,为了方便后续的操作,这里我们来创建一个继承聚合关系的maven的项目,通过maven来帮我们管理相关的jar文件,当然你也可以创建一个web项目,不过这样的话,就需要你手动的去下载Spring MVC相关的jar包了。
第二部:导入相应的jar包
在这里插入图片描述
第三步:在web.xml重配置前端控制器
在这里插入图片描述
第四步:

maven项目中有个src/main/resources目录,在该目录下创建Spring MVC配置文件springmvc.xml,该xml配置文件可以任意命名,需要跟第三步中的init-param中的param-value保持一致即可。

配置试图解析器
在这里插入图片描述
配置控制器在这里插入图片描述
第五步:
创建一个类去实现org.springframework.web.servlet.mvc.Controller接口,通常我们称这样的类为Controller,它的作用有些类似之前学习的servlet,或者可以认为在Spring MVC里面,就是使用了Controller来代替了servlet,它提供了比servlet更加丰富的功能。
在这里插入图片描述
1.5 为什么设置url-pattern为/
如果将url-pattern设置为/* 之后,只要是在web.xml文件中找不到匹配的URL,它们的访问请求都将交给DispatcherServlet处理,静态资源:css文件,js文件,图片等请求也一并交给DispatcherServlet处理。
该配置方式不会匹配.jsp文件和.jspx文件,因为这个在tomcat中的conf目录里面的web.xml文件中已经添加的相应的处理方式了,他会交给org.apache.jasper.servlet.JspServlet来处理。即我们可以正常访问系统中的jsp文件
1.6解决静态资源不能访问的问题,解决方式有三种:
使用defaultServlet
打开你的tomcat中conf/web.xml,在这个文件中有一个叫做DefaultServlet的配置,当系统找不到处理某次url请求该交由谁处理的时候,就会交给这个servlet处理。
在这里插入图片描述
使用mvc:resources
在spring mvc中提供了mvc:resources标签用来解决静态资源无法访问的问题,只需要在springmvc.xml的配置文件中添加下面内容即可,这样会交给spring mvc的ResourceHttpRequestHandler类来处理:
在这里插入图片描述

2.使用注解编写Spring MVC程序

2.1在springmvc.xml文件中配置扫描控制器和驱动
在这里插入图片描述
2.ModelAndView和String
在这里插入图片描述
3.接受页面的传值
1.使用HttpServletRequest来获取参数值实例
spring自动参数注入到HttpServletRequest中,优点是比较直接,缺点是我们要自己处理数据类型
2.使用RequestParam注解接收参数 优点是会自动转换类型,缺点是会出现类型转换异常
3.使用自动机制封装成Bean属性实例来接收参数在这里插入图片描述
4.向页面传值
1.直接使用HttpRequestServlet和session
2.使用map,model,modelmap,modelAndView实现
3.使用@ModelAttribute和@SessionAttributes注解
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/AD20171/article/details/106745787