admin管理员组文章数量:1794759
SpringMVC——SpringMVC框架基本概述
目录
1.SpringMVC框架概述
1.1 SpringMVC框架的基本说明
1.2 SpringMVC 框架的优点
1.3 SpringMVC实现步骤
2.第一个注解的SpringMVC程序
2.1 IDEA中使用maven创建一个web项目
2.2 在pom.xml中加入相关依赖
2.3 在web.xml中声明DispatcherServlet对象
2.4 创建一个发起请求的jsp页面(index.jsp)
2.5 创建一个普通的类,作为控制器使用,代替之前的servlet
2.6 创建显示处理结果的jsp页面(webapp\\WEB-INF\\view\\show.jsp)
2.7 创建springmvc的配置文件
2.8 配置Tomcat并且启动测试
2.9 目录结构
3.使用SpringMVC框架处理web请求的顺序
1.SpringMVC框架概述 1.1 SpringMVC框架的基本说明
SpringMVC是基于Spring的,是Spring中的一个模块,专门用来做web开发使用的。
SpringMVC 也叫 Spring web mvc。是 Spring 框架的一部分,是在Spring3.0 后发布的。基于 MVC 架构,功能分工明确、解耦合。
SpringMVC也是一个容器,使用IoC核心技术,管理界面层中的控制器对象。SpringMVC的底层就是servlet,以servlet为核心,接收请求、处理请求,显示处理结果给用户。在此之前这个功能是由Servlet来实现的,现在使用SpringMVC来代替Servlet行驶控制器的角色和功能。
其核心Servlet是:DispatcherServlet
1.2 SpringMVC 框架的优点优点:
1. 基于 MVC 架构,功能分工明确。解耦合。
2.容易理解,上手快;使用简单。就可以开发一个注解的 SpringMVC 项目,SpringMVC 也是轻量级的,jar 很小。不依赖的特定的接口和类。
3.作为 Spring 框架一部分,能够使用 Spring 的 IoC 和 Aop。方便整合Strtus,MyBatis,Hiberate, JPA 等其他框架。
4.SpringMVC 强化注解的使用,在控制器,Service,Dao 都可以使用注解。方便灵活。使用@Controller 创建处理器对象,@Service 创建业务对象,@Autowired 或者@Resource 在控制器类中注入 Service, Service 类中注入Dao。
1.3 SpringMVC实现步骤 servlet 的实现方式: jsp发起-----servlet-----jsp显示结果 步骤:1)创建web应用 2)加入web依赖 Spring-webmvc(springmvc框架依赖) ,servlet依赖 3)声明springmvc核心对象DispatcherServlet 1.DispatcherServlet是一个servlet对象 2.DispatcherServlet叫做前端控制器(front controller) 3.DispatcherServlet作用:在servlet的init()方法中,创建springmvc中的容器对象 作为servlet,接收请求 4)创建一个jsp,发起请求 5)创建一个普通类,作为控制器使用(代替之前的servlet) 1.在注解上面加入@Controller注解 2.在类中定义方法,方法上面加入@RequestMapping注解方式处理请求,相当于servlet得doGet,doPost 6)创建作为结果得jsp页面 7)创建springmvc得配置文件(spring的配置文件一样) 1.声明组件扫描器,指定@Controller注解所在的包名 2.声明视图解析器对象 2.第一个注解的SpringMVC程序 2.1 IDEA中使用maven创建一个web项目2.2 在pom.xml中加入相关依赖 <!-- springmvc依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.5.RELEASE</version> </dependency> <!-- servlet依赖 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <!-- jsp依赖 --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.1</version> </dependency> 2.3 在web.xml中声明DispatcherServlet对象 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="xmlns.jcp/xml/ns/javaee" xmlns:xsi="www.w3/2001/XMLSchema-instance" xsi:schemaLocation="xmlns.jcp/xml/ns/javaee xmlns.jcp/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!--声明springmvc的核心对象 访问mymvc地址后,报错,文件没有找到。找到文件是/WEB-INF/springmvc-servlet.xml或者myweb-servlet.xml(这个) 错误原因:在Servlet的init()方法中,创建springmvc使用的容器对象WebApplicationContext WebApplicationContext ctx=new ClassPathXmlApplicationContext(配置文件) 配置文件的默认路径:/WEB-INF/<servlet-name>-servlet.xml DispatcherServlet作用: 1.在init()中创建springmvc的容器对象 WebApplicationContext,创建springmvc配置文件的所有Java对象。 java对象就是Controller对象 2.DispatcherServlet 是一个Servlet,能够接受请求。 --> <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.xml</param-value> </init-param> <!-- 在服务器启动时候创建对象,和容器的顺序 在启动时装载对象 随意给个值要求大于等于0 数值越小,创建的越早--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- url-pattern 作用:把一些请求交给servlet处理 就例如将/mymvc交给springmvc处理 使用中央调度器(DispatcherServlet) 1.使用扩展名方式,格式/*.xxx 例如:xxx.xml表示以xml结尾的都算 --> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app> 2.4 创建一个发起请求的jsp页面(index.jsp) <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>第一个springmvc</title> </head> <body> <a href="some.do">发起一个som.do的请求</a> </body> </html> 2.5 创建一个普通的类,作为控制器使用,代替之前的servlet package com.liuhaiyang.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; /** @Controller: 创建控制器(处理器)对象 * 控制器:叫做后端控制器(back controller),自定义的类处理请求的。 * 位置:在类的上面,表示创建此类的对象,对象放在springmvc的容器中 * */ @Controller public class MyController { /* Springmvc框架使用 ,使用控制器类中的方法,处理请求 方法的特点: 1.方法的形参,表示请求中的参数 2.方法的返回值,表示本次请求的处理请求 */ /** * @RequestMapping :请求映射 * 属性:value 请求中的uri地址,唯一值,以"/"开头 * 位置:1.在方法上面(必须) 2.在类定义的上面(可选) * 作用:指定的请求,交给指定的方法处理,等同于url-pattern(个人理解 相当于可以做doget相关的操作) * 返回值ModelAndView:表示本次请求的处理结果(数据和视图) model:表示数据 view:表示视图 */ //可以在一个类中定义多个方法使用多个@RequestMapping注解 @RequestMapping(value = {"/some.do","/first.do"}) //value是一个数组,可以有多个值,相当于将该方法起一个名字 public ModelAndView doSome(){ //doGet() //使用这个方法处理请求,能够处理请求的方法叫做控制器方法 //调用service对象,处理请求,返回数据 ModelAndView mv=new ModelAndView(); //添加数据 mv.addObject("msg","在ModelAddView中处理了some.do的请求"); mv.addObject("fun","执行了dosome的方法"); //指定视图,setviewName("视图路径") 相当于请求转发request.getRequestDis...("/show.jsp").forward(..) // mv.setViewName("/WEB-INF/view/show.jsp"); //当配置了视图解析器,使用文件名称作为视图名使用,叫做视图逻辑名称 //使用了逻辑名称,框架使用配置文件中视图解析器的前缀和后缀,拼接为完整地视图路径 ,例如/WEB-INF/view/ + show + .jsp mv.setViewName("show"); /* 当框架调用完dosome方法后,得到返回中modelandview 框架会在后续的处理逻辑值,处理mv对象里的数据和视图 对数据执行requert,setAttribute(“msg”,“处理了some.do请求”);把数据放到request作用域中 对视图进行转发操作 */ return mv; } } 2.6 创建显示处理结果的jsp页面(webapp\\WEB-INF\\view\\show.jsp) <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> /show.jsp,显示request作用域中的数据<br> <h2>msg数据:<%=request.getAttribute("msg")%></h2> <h2>fun数据:${fun}</h2> </body> </html> 2.7 创建springmvc的配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="www.springframework/schema/beans" xmlns:xsi="www.w3/2001/XMLSchema-instance" xmlns:context="www.springframework/schema/context" xsi:schemaLocation="www.springframework/schema/beans www.springframework/schema/beans/spring-beans.xsd www.springframework/schema/context www.springframework/schema/context/spring-context.xsd"> <!--spring的配置文件 声明组件扫描器--> <context:component-scan base-package="com.liuhaiyang.controller"/> <!-- 声明视图解析器;帮助处理视图 主要帮助我们处理重复的多余的冗余路径等--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 前缀:指定试图文件的路径--> <property name="prefix" value="/WEB-INF/view/"/> <!-- 后缀,试图文件的扩展名--> <property name="suffix" value=".jsp"/> <!--表示所有的jsp文件--> </bean> </beans> 2.8 配置Tomcat并且启动测试
2.9 目录结构 3.使用SpringMVC框架处理web请求的顺序
SpringMVC 执行流程
版权声明:本文标题:SpringMVC——SpringMVC框架基本概述 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1687052181a130553.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论