Spring MVC编程框架
Controller回传ModleAndView,DispatcherServlet会交给 ViewResolver解析。如:回传一个字符串“index”,解析后 找到/WEB-INF/index.jsp
Controller
@Controller//将类声明为Spring容器里的Bean,Spring调用时实例化 @RequestMapping("index.htm")//声明这个Controller处理的请求是什么 public class IndexController { @RequestMapping(method = RequestMethod.GET) public String doGet() { return "index"; 请求的方法 } 默认为get }
从URL接收请 求及数据 前端控制器 DispatcherServlet ① 根据请求调用 具体Controller Controller
Spring MVC
② 调用 Service方 法处理数据 Service DAO ③ 通过DAO访 问数据库
⑦ 返回处理结果 ⑧ 返回 具体页 面及数 据
⑥ 返回结果 ⑤返 回操 作结 果 ④ 增删 改查 DataBase
Spring 常用注解
• @AutoWired根据类型自动装配,可放在属性上,set方法上,构造方 法上。与@AutoWierd配套使用的是@Qualifier。按名字自动装配。 • 例:@AutoWired 可能有多个UserDAO类型 @Qualifier ("userDAO") UserDAO userDAO;的bean,AutoWired按类型 • @Resource与@AutoWired类似 无法识别具体的bean, 抛出异常 默认按名字匹配。有两个属性name,type; 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean 进行装配,找不到则抛出异常 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配, 找不到则抛出异常 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找 不到或者找到多个,都会抛出异常 如果既没有指定name,又没有指定type,则自动按照byName方式进行; 如果没有匹配,则回退为一个原始类型(UserDao)进行匹配,如果 匹配则自动装配;
DispatcherServlet
Spring MVC中前端控制器是 org.springframework.web.servlet.DispatcherServlet 负责将请求分配给控制对象,所以使用 Spring MVC的第一步是在web.xml中定 义DispatcherServlet
可以加上contextConfigLocation 的初始参数,用来设置Bean定义 文件的位置和名称,默认使用 “Servlet名-servlet.xml"如本例的 "spring-servlet.xml"
两个bean文件来源 可以加上多个bean文件的来源 如果一个都没加则找默认的 hello-servlet.xml
spring-servlet.xml
注入bean时要 spring要查找 的包
<context:component-scan base-package=".xupt.demo" /> <bean class="org.springframework.web.servlet.view.InternalResourceView -Resolver" p:prefix="" p:suffix=".jsp" />
JSP页面
Spring MVC注解
@Controller,@Service,@Repository 把类声明为Spring容器的bean文件,可以在其他地方调用。 @Controllers声明控制层。@Service声明服务层。@Repository声明 持久层(数据传输层DAO)。 @RequestMapping把一个POJO声明为Spring里的Controller.如果不声 明要写Controller类就要从Spring的Controller类继承,并重写 handleRequest方法。 @RequestMapping(value="*.htm",method=RequestMethod.GET) 属性value声明Controller处理的请求,method声明处理请求的类型。 可声明在类头上,也可声明在方法头上。 @RequestParam绑定参数与请求参数 例:public String Controller(@RequestParam("id") int topicId,User user) 把参数 topicld与请求的参数“id”绑定,id的值传入topicld。
把username以名值对的 形式放入ModelMap,在 index.jsp中用request对象 接收
ModleMap,Spring提供的 集合可以传递数据 到返回的jsp页面
Service
public interface UserService { boolean login(String user,String password) throws Exception; } @Service("userService") public UserServiceImpl implements UserService { //实现接口方法 boolean login(String user,String password) throws Exception { return true; } }
DispatcherServlet
例:.... <servlet> <servlet-name>hello</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/mvc-config.xml, /WEB-INF/spring-config.xml<param-value> <init-param> </servlet> .....
面向接口编程,降低各层之间的 耦合度。哪一层出错只需要修改 出错的的地方。其它层不用修改
DAO层
和Service层一样,先写一个接口 public interface UserDAO { public User selectbyname(String user) throws Exception; } @Repository("userDAO") public UserDAOImpl implements UserDAO { //实现接口方法 public User selectbyname(String user) { return null; } }
返回“index”,交由ViewResolver解析,返回 调用“/WEB-INF/index.jsp”
Controller
//处理post请求的Controller @Controller @RequestMapping(value="index.htm", method = RequestMethod.POST) public String doPost(String username, String password, ModelMap modelMap) throws Exception { modelMap.addAttribute("name",username); return "index"; }
SpringMVC+Spring+Hibernate框架整合原理,作用及使用方法
SpringMVC+Spring+Hibernate框架整合原理,作⽤及使⽤⽅法SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层使⽤spring MVC负责请求的转发和视图管理spring实现业务对象管理,mybatis作为数据对象的持久化引擎原理:SpringMVC:1.客户端发送请求到DispacherServlet(分发器)2.由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller3.Controller调⽤业务逻辑处理后,返回ModelAndView4.DispacherSerclet查询视图解析器,找到ModelAndView指定的视图5.视图负责将结果显⽰到客户端Spring:我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们中的类,当然也包括service dao⾥⾯的),有了这个机制,我们就不⽤在每次使⽤这个类的时候为它初始化,很少看到关键字new。
另外spring的aop,事务管理等等都是我们经常⽤到的。
Mybatis:mybatis是对jdbc的封装,它让数据库底层操作变的透明。
mybatis的操作都是围绕⼀个sqlSessionFactory实例展开的。
mybatis通过配置⽂件关联到各实体类的Mapper⽂件,Mapper⽂件中配置了每个类对数据库所需进⾏的sql语句映射。
在每次与数据库交互时,通过sqlSessionFactory拿到⼀个sqlSession,再执⾏sql命令。
使⽤⽅法:要完成⼀个功能:1. 先写实体类entity,定义对象的属性,(可以参照数据库中表的字段来设置,数据库的设计应该在所有编码开始之前)。
2. 写Mapper.xml(Mybatis),其中定义你的功能,对应要对数据库进⾏的那些操作,⽐如 insert、selectAll、selectByKey、delete、update等。
spring MVC原理及配置
spring MVC原理及配置springmvc原理及配置springmvc原理及配置1.springmvc详述:springmvc就是spring提供更多的一个强悍而有效率的web框架。
借助注释,springmvc提供更多了几乎就是pojo的研发模式,使控制器的研发和测试更加直观。
这些控制器通常不轻易处置命令,而是将其委托给spring上下文中的其他bean,通过spring的倚赖转化成功能,这些bean被转化成至控制器中。
springmvc主要由dispatcherservlet、处理器映射、处理器(控制器)、视图解析器、视图组成。
他的两个核心是两个核心:处理器映射:选择使用哪个控制器来处理请求视图解析器:选择结果应该如何渲染通过以上两点,springmvc确保了如何挑选掌控处置命令和如何挑选视图展现出输入之间的松耦合。
2.springmvc运行原理这里写图片描述(2)找寻处理器:由dispatcherservlet控制器查阅一个或多个handlermapping,找出处置命令的controller。
(3)调用处理器:dispatcherservlet将请求提交到controller。
(4)(5)调用业务处置和回到结果:controller调用业务逻辑处置后,回到modelandview。
3.springmvc接口解释(1)dispatcherservlet接口:spring提供的前端控制器,所有的请求都有经过它来统一分发。
在dispatcherservlet将请求分发给springcontroller 之前,需要借助于spring提供的handlermapping定位到具体的controller。
(2)handlermappingUSB:能够完成客户请求到controller映射。
(3)controller接口:须要为mammalian用户处置上述命令,因此同时实现controllerUSB时,必须确保线程安全并且可以器重。
最全最经典spring_mvc教程
spring mvc学习教程(一)-入门实例引言1.MVC:Model-View-Control框架性质的C层要完成的主要工作:封装web请求为一个数据对象、调用业务逻辑层来处理数据对象、返回处理数据结果及相应的视图给用户。
2.简要概述springmvcSpring C 层框架的核心是DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即使用了一种被称为Front Controller 的模式(后面对此模式有简要说明)。
Spring 的C 层框架使用了后端控制器来、映射处理器和视图解析器来共同完成C 层框架的主要工作。
并且spring 的C 层框架还真正地把业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView 对象。
一、入门实例1. 搭建环境在spring的官方API文档中,给出所有包的作用概述,现列举常用的包及相关作用:org.springframework.aop-3.0.5.RELEASE.jar:与Aop编程相关的包org.springframework.beans-3.0.5.RELEASE.jar:提供了简捷操作bean的接口org.springframework.context-3.0.5.RELEASE.jar:构建在beans包基础上,用来处理资源文件及国际化。
org.springframework.core-3.0.5.RELEASE.jar:spring核心包org.springframework.web-3.0.5.RELEASE.jar:web核心包,提供了web层接口org.springframework.web.servlet-3.0.5.RELEASE.jar:web 层的一个具体实包,DispatcherServlet也位于此包中。
后文全部在spring3.0 版本中进行,为了方便,建议在搭建环境中导入spring3.0 的所有jar 包(所有jar 包位于dist 目录下)。
spring、springmvc、springboot的区别是什么?
spring、springmvc、springboot的区别是什么?spring和springMvc:1. spring是⼀个⼀站式的轻量级的java开发框架,核⼼是控制反转(IOC)和⾯向切⾯(AOP),针对于开发的WEB层(springMvc)、业务层(Ioc)、持久层(jdbcTemplate)等都提供了多种配置解决⽅案;2. springMvc是spring基础之上的⼀个MVC框架,主要处理web开发的路径映射和视图渲染,属于spring框架中WEB层开发的⼀部分;springMvc和springBoot:1、springMvc属于⼀个企业WEB开发的MVC框架,涵盖⾯包括前端视图开发、⽂件配置、后台接⼝逻辑开发等,XML、config等配置相对⽐较繁琐复杂;2、springBoot框架相对于springMvc框架来说,更专注于开发微服务后台接⼝,不开发前端视图,同时遵循默认优于配置,简化了插件配置流程,不需要配置xml,相对springmvc,⼤⼤简化了配置流程;总结:1、Spring 框架就像⼀个家族,有众多衍⽣产品例如 boot、security、jpa等等。
但他们的基础都是Spring的ioc、aop等. ioc 提供了依赖注⼊的容器, aop解决了⾯向横切⾯编程,然后在此两者的基础上实现了其他延伸产品的⾼级功能;2、springMvc主要解决WEB开发的问题,是基于Servlet 的⼀个MVC框架,通过XML配置,统⼀开发前端视图和后端逻辑;3、由于Spring的配置⾮常复杂,各种XML、JavaConfig、servlet处理起来⽐较繁琐,为了简化开发者的使⽤,从⽽创造性地推出了springBoot框架,默认优于配置,简化了springMvc的配置流程;但区别于springMvc的是,springBoot专注于单体微服务接⼝开发,和前端解耦,虽然springBoot也可以做成springMvc前后台⼀起开发,但是这就有点不符合springBoot框架的初衷了;。
Java中的Web开发框架有哪些
Java中的Web开发框架有哪些在Java中,有多种用于Web开发的框架。
这些框架提供了一套工具和结构,帮助开发人员快速构建可靠、高效的Web应用程序。
本文将介绍几种常用的Java Web开发框架。
一、Spring MVCSpring MVC是一个基于Java的轻量级Web框架,它是Spring框架的一部分。
Spring MVC通过使用模型-视图-控制器(MVC)的设计模式,将应用程序的不同组件分离开来。
它提供了灵活的配置选项和强大的功能,包括请求映射、表单处理、数据验证和视图解析等。
Spring MVC也支持RESTful风格的Web服务开发。
二、StrutsStruts是另一个受欢迎的Java Web框架,它遵循MVC设计模式。
Struts框架提供了一种结构化的方法来构建Web应用程序。
它使用Struts配置文件来管理请求和处理逻辑,同时提供了多种标签库和表单验证机制。
Struts还支持国际化和本地化,使得开发多语言应用程序更加简便。
三、JSFJavaServer Faces(JSF)是Java EE的一部分,它是一种用于构建用户界面的Web框架。
相比于其他框架,JSF更加面向组件。
它提供了一系列可重用的UI组件,开发人员可以通过简单地组合这些组件来构建复杂的用户界面。
JSF还具有良好的可扩展性和集成性,可以轻松地与其他Java技术和框架进行集成。
四、Play框架Play框架是一个用于构建Web应用程序的响应式全栈框架。
它采用了基于Actor模型的异步编程模型,这使得Play应用程序能够处理高并发和高吞吐量的请求。
Play框架还提供了内置的开发工具和自动重新加载功能,使得开发变得更加高效。
此外,Play还支持多种数据库和模板引擎,开发人员可以根据自己的需求进行选择。
五、Spring BootSpring Boot是一个用于简化Spring应用程序开发的框架。
它提供了一种约定优于配置的方式,通过自动配置和快速启动器,可以快速构建独立运行的、生产级别的Spring应用程序。
SpringMVC框架搭建流程(完整详细版)
SpringMVC框架搭建流程(完整详细版)SpringMVC框架搭建流程开发过程1)配置DispatcherServlet前端控制器2)开发处理具体业务逻辑的Handler(@Controller、 @RequestMapping)3) xml配置⽂件配置controller扫描,配置springmvc三⼤件4)将xml⽂件路径告诉springmvc(DispatcherServlet)详细流程:创建⽬录新建maven项⽬,注意选择webapp⾻架。
创建成功之后会发现没有src等⽬录,这些需要我们⼿动创建:在src下⾯新建main,main下⾯新建java⽬录,选择java⽬录,右键,在main下⾯继续新建resource⽬录,选择resource⽬录,右键,pom.xmlpom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion><groupId></groupId><artifactId>springmvc-demo</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><piler.source>11</piler.source><piler.target>11</piler.target></properties><dependencies><!--引⼊spring webmvc的依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.12.RELEASE</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8080</port><path>/</path></configuration></plugin></plugins></build></project>注意Tomcat7插件是⽤来运⾏项⽬的,右侧运⾏:springmvc相关配置main⽂件夹下⾯新建webapp⽂件夹,webapp下⾯新建WEB-INF,下⾯新建web.xml<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><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></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><!--⽅式⼀:带后缀,⽐如*.action *.do *.aaa该种⽅式⽐较精确、⽅便,在以前和现在企业中都有很⼤的使⽤⽐例⽅式⼆:/ 不会拦截 .jsp,但是会拦截.html等静态资源(静态资源:除了servlet和jsp之外的js、css、png等)为什么配置为/ 会拦截静态资源因为tomcat容器中有⼀个web.xml(⽗),你的项⽬中也有⼀个web.xml(⼦),是⼀个继承关系⽗web.xml中有⼀个DefaultServlet, url-pattern 是⼀个 /此时我们⾃⼰的web.xml中也配置了⼀个 / ,覆写了⽗web.xml的配置为什么不拦截.jsp呢?因为⽗web.xml中有⼀个JspServlet,这个servlet拦截.jsp⽂件,⽽我们并没有覆写这个配置,所以springmvc此时不拦截jsp,jsp的处理交给了tomcat如何解决/拦截静态资源这件事?⽅式三:/* 拦截所有,包括.jsp--><!--拦截匹配规则的url请求,进⼊springmvc框架处理--><url-pattern>/</url-pattern></servlet-mapping></web-app>⾥⾯配置了springmvc相关的配置,引⼊了springmvc.xml:在resource⽬录下新建springmvc.xml:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beanshttps:///schema/beans/spring-beans.xsd/schema/contexthttps:///schema/context/spring-context.xsd/schema/mvchttps:///schema/mvc/spring-mvc.xsd"><!--开启controller扫描--><context:component-scan base-package=".controller"/><!--配置springmvc的视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean><!--⾃动注册最合适的处理器映射器,处理器适配器(调⽤handler⽅法)--><mvc:annotation-driven/></beans>在java⽬录下新建包.controller,下⾯新建DemoController:package .controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import java.util.Date;/*** @author lyj* @Title: DemoController* @ProjectName springmvc-demo* @Description: TODO* @date 2020/6/9 21:21*/@Controller@RequestMapping("/demo")public class DemoController {/*** http://localhost:8080/demo/handle01*/@RequestMapping("/handle01")public ModelAndView handle01(){Date date=new Date();ModelAndView modelAndView=new ModelAndView();modelAndView.addObject("date",date);modelAndView.setViewName("success");return modelAndView;}}在WEB-INF下⾯新建jsp⽂件夹,下⾯新建success.jsp:<%@ page language="java" isELIgnored="false" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body>当前时间 ${date}</body></html>完毕后整个项⽬结构如下:测试:浏览器访问:。
什么是SpringMVC?
什么是SpringMVC?⼀、什么是SpringMVC?1.SpringMVC 是⼀种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow 中。
2.SpringMVC = Spring +MVCspring mvc类似于struts的⼀个MVC开框架,其实都是属于spring,spring mvc需要有spring的架包作为⽀撑才能跑起来.spring是⼀个⼀站式的框架,提供了表现层(springmvc)到业务层(spring)再到数据层(springdata)的全套解决⽅案;spring的两⼤核⼼IOC(控制反转)和AOP(⾯向切⾯编程)更是给我们的程序解耦和代码的简介提供了⽀持。
Spring框架图:从Spring的结构图可以看出,springMVC位于spring web端的⼀个框架,是⼀种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使⽤了MVC架构模式的思想,将web层进⾏职责解耦。
附:基于请求驱动指的就是使⽤请求-响应模型。
从名字上就可以窥探出,Spring>SpringMVC,那么事实上,spring和SpringMVC是⼀种⽗⼦关系。
SpringMVC是spring扩展出的⼀个应⽤于web端的框架。
在这⾥需要注意的⼀点,就是到底什么是⽗⼦容器关系:spring主要的作⽤是黏合其他模块组件,进⾏统⼀管理,springmvc则主要是负责web端。
那么,我们都知道,我们在应⽤spring的时候,可以使⽤注⼊。
这个时候,如果我们的web端是⽤的SpringMVC,这个时候,controller理论上是通过SpringMVC去注⼊,但是,使⽤spring注⼊,同样是可⾏的。
同理,service等层,使⽤SpringMVC配置的统⼀扫描装配也是可以的。
SpringMVC体系结构和处理请求控制器
SpringMVC体系结构和处理请求控制器MVC设计模式 通常的Web项⽬,架构模式基本分层 数据库访问接⼝:DAO层 处理业务逻辑:Service层 数据实体:POJO 负责前端请求的接受处理:Servlet 负责前端页⾯展⽰:JSP MVC设计模式:它是软件⼯程中的⼀种软件架构模式。
它强制性地使软件系统的输⼊、处理和输出分开。
把软件系统分为三个基本部分:模型(Model)、视图(View)、控制器(Controller) 视图(View):负责格式化数据并把他们呈现给⽤户,包括数据展⽰、⽤户交互、数据验证、界⾯设计等功能。
对应组件:JSP或者HTML⽂件 控制器(Controller):负责接收并转发请求,对进⾏处理后指派视图并将响应结果发送给客户端。
对应组件Servlet 模型(Model):模型对象拥有最多的处理任务,是应⽤程序的主体部分,负责数据逻辑(业务规则)的处理和实现数据操作。
对应组件:JavaBean(处理业务逻辑Service层,数据库操作相关的DAO层,贯穿各层之间的数据模型,数据实体POJO) MVC的两种模式 (1)JSP Model1 业务流程较为简单时,可以把控制器的功能交给视图实现。
故Model1模式只有视图和模型,没有控制器(JSP+JavaBean) 浏览器 - 请求 - JSP - JavaBean - 数据库 - JavaBean - JSP -响应 - 浏览器 (2) JSP Model2 相⽐JSPModel1,业务流程复杂时,就需要把业务流程控制交给控制器来实现。
即(JSP+Servlet+JavaBean) 浏览器 - 请求 - Servlet - JavaBean- JSP - 数据库 - JavaBean - JSP -Servlet -响应 - 浏览器 MVC处理过程 MVC的整体结构,对于MVC三个部分(模型、视图、控制器)功能职责分别进⾏了相应的阐述 (1)⾸先视图提供系统与⽤户交互的界⾯,并发送⽤户输⼊给控制器 (2)控制器接收⽤户的请求,并决定应该调⽤哪个模型来进⾏处理 (3)模型根据⽤户请求进⾏相应的业务逻辑处理,并返回处理结果(数据) (4)控制器根据返回的处理结果,调⽤相应的视图格式化模型返回的数据,并通过视图呈现给⽤户结果 MVC优缺点1. 优点1. 多视图共享⼀个模型,⼤⼤提⾼代码的可重⽤性2. MVC三个模块相互独⽴,松耦合架构3. 控制器提⾼了应⽤程序的灵活性和可配置性4. 有利于软件⼯程化管理 通过MVC的设计模式最终可以打造出⼀个松耦合+⾼重⽤性+⾼可适⽤性的架构 2.缺点1. 原理复杂2. 增加了系统结构和实现的复杂性3. 视图对模型数据的低效率访问 MVC来说:并不适合⼩型甚⾄中型规模的项⽬,花费⼤量时间将MVC应⽤到规模并不是很⼤的应⽤程序通常得不偿失Spring MVC介绍及其环境搭建 Spring MVC框架介绍 Spring MVC是Spring框架中⽤于Web应⽤开发的⼀个模块,是Spring提供的⼀个基于MVC设计式的优秀Web开发框架,本质上相当于Servlet。
SpringMVC目录结构配置
SpringMVC目录结构配置SpringMVC是一种常见的Java Web框架,它遵循MVC(Model-View-Controller)设计模式,用于构建灵活可扩展的Web应用程序。
SpringMVC的目录结构对于项目的开发和维护非常重要,下面会详细介绍SpringMVC的标准目录结构以及配置方式。
1.标准目录结构1.1 src/main/java:主要用于存放Java源代码。
1.2 src/main/resources:主要用于存放配置文件和资源文件。
1.3 src/main/webapp:主要用于存放Web应用的静态资源。
1.4 src/test/java:主要用于存放测试用例的Java源代码。
1.5 src/test/resources:主要用于存放测试用例的配置文件和资源文件。
2.详细解析2.1 src/main/java目录src/main/java目录是存放Java源代码的默认目录,它包括以下几个子目录:- config:用于存放Spring配置类,如配置数据库连接、配置事务管理等。
- interceptor:用于存放SpringMVC的拦截器。
- model:用于存放数据模型相关的实体类。
- util:用于存放工具类。
- web:用于存放SpringMVC的控制器。
2.2 src/main/resources目录src/main/resources目录是存放配置文件和资源文件的默认目录,它包括以下几个子目录:- static:用于存放静态资源文件,如CSS、JavaScript、图片等。
- templates:用于存放模板文件,如HTML、Thymeleaf模板等。
- application.properties:存放项目的配置信息,如数据库配置、端口配置等。
- logback.xml:存放日志配置,如日志级别、输出路径等。
- mapper:存放MyBatis的Mapper.xml文件。
简述springmvc工作原理
简述springmvc工作原理Spring MVC 是一个基于 Java 的轻量级的 web 框架,用来开发灵活、可扩展的 web 应用程序。
Spring MVC 的工作原理如下:1. 客户发出 HTTP 请求到前端控制器 DispatcherServlet。
2. DispatcherServlet 是应用的前端控制器,根据请求 URL 找到对应的处理器 Handler。
3. HandlerMapping 根据请求 URL 找到对应的处理器适配器HandlerAdapter,HandlerAdapter 是一个策略接口,负责执行具体的 Handler 。
4. HandlerAdapter 将处理器 Handler 封装成一个适配器,使其具备执行 Handler 的能力。
5. Handler 调用业务逻辑进行处理,并返回一个ModelAndView 对象。
6. ModelAndView 是 Spring MVC 的模型和视图对象,它包含处理结果数据和视图名称。
7. Handler 将处理结果数据存入 ModelAndView 中,并将视图名称返回给 HandlerAdapter。
8. HandlerAdapter 将 ModelAndView 传递给前端控制器DispatcherServlet。
9. DispatcherServlet 调用视图解析器 ViewResolver 解析视图名称,得到具体的视图对象 View。
10. View 是一个接口,负责渲染 ModelAndView 对象,将处理结果生成 HTML 返回给客户端。
11. 客户端浏览器接收到 HTML 文档,并将其呈现给用户。
以上是 Spring MVC 的工作流程,它的核心原理是通过前端控制器 DispatcherServlet 来实现请求的分发和处理,以及视图的解析和渲染。
通过 HandlerMapping、HandlerAdapter、视图解析器 ViewResolver 的配合,可以实现灵活的请求处理和视图展示,同时也能够很好地与 Spring 的依赖注入和面向切面编程等特性进行整合。
