springmvc注解

手写Spring和SpringMVC注解之实现

送分小仙女□ 提交于 2020-01-28 22:29:42
最近假期在家闲来无事,天天吃了喝,喝了睡,突然想起年前手写了个spring和springmvc。为了能够更容易让读者看懂,写了很多的注释,废话不多说,直接上代码。 git地址 https://github.com/985391294/tqz 1.创建一个maven项目,然后在pom文件里面添加servlet的jar包以及jetty服务器,如果对tomcat熟悉,也可以使用tomcat启动。 < ! -- servlet的依赖 -- > < dependencies > < ! -- https : / / mvnrepository . com / artifact / javax . servlet / javax . servlet - api -- > < dependency > < groupId > javax . servlet < / groupId > < artifactId > javax . servlet - api < / artifactId > < version > 4.0 .1 < / version > < scope > provided < / scope > < / dependency > < ! -- mysql驱动 -- > < dependency > < groupId > mysql < / groupId > <

springMVC两种方式实现多文件上传及效率比较

折月煮酒 提交于 2020-01-28 08:51:38
springMVC实现 多文件上传的方式有两种,一种是我们经常使用的以字节流的方式进行文件上传,另外一种是使用springMVC包装好的解析器进行上传。这两种方式对于实 现多文件上传效率上却有着很大的差距,下面我们通过实例来看一下这两种方式的实现方式,同时比较一下在效率上到底存在着多大的差距。 1.下载相关jar包。 需要引入的jar出了springMVC的jar包外,还需要引入 com.springsource.org.apache.commons.fileupload-1.2.0.jar和 com.springsource.org.apache.commons.io-1.4.0.jar。所有的jar包可以通过“ 点击这里 ”进行下载。 2.配置springAnnotation-servlet.xml文件(文件名称可以自定义,只要和web.xml中引入的名称一样即可): [html] view plain copy <? xml version= "1.0" encoding= "UTF-8" ?> <!-- Bean头部 --> < beans xmlns= "http://www.springframework.org/schema/beans" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:p=

SpringMVC的用法笔记

自古美人都是妖i 提交于 2020-01-28 03:52:20
1. springmvc都做了什么 1.Controller为中心完成对系统流程的控制管理 2.从请求中搜集数据 3.对传入的参数进行验证 4.将结果返回给视图 5.针对不同的视图提供不同的解决方案 6.针对jsp视图技术提供标签库 7.拦截器 8.上传文件 2. spring -mvc的结构 DispatcherServlet:中央控制器,把请求给转发到具体的控制类。 Controller:具体处理请求的控制器(配置文件方式需要配置,注解方式不用配置) handlerMapping:映射处理器,负责映射中央处理器转发给controller时的映射策略。 ModelAndView:服务层返回的数据和视图层的封装类(无论是配置文件还是注解都不需要配置)。 ViewResolver & View:视图解析器,解析具体的视 Interceptors :拦截器,负责拦截我们定义的请求然后做处理工作(无论是配置文件方式还是注解都需要先创建再配置)。 3.mvc模式图 4. mvc流程 5. SpringMVC相关配置 在web.xml中配置中央控制器: < ! -- 中央控制器 -- > < servlet > < servlet - name > springmvc < / servlet - name > < servlet - class > org . springframework

SpringMVC框架之创建第一个项目(IDEA)

别说谁变了你拦得住时间么 提交于 2020-01-27 22:10:49
Spring MVC框架 是 Spring 提供的一个强大而灵活的WEB框架(Struts2框架也是WEB框架)。借助于注解, Spring MVC 提供了 POJO (又称为 enitity 实体、 model 模型)的开发模式,使得 controller 控制器的开发和测试更加简单。这些 controller 控制器一般不直接处理请求,而是将其委托给 Spring 上下文中的其他 bean ,通过 Spring 的依赖注入功能,这些 bean 被注入到控制器中。 Spring MVC 主要由 DispatcherServlet 、处理器映射【找控制器】、适配器【调用控制器的方法】、控制器【业务】、视图解析器、视图组成。 下面将演示如何在项目中配置 SpringMVC 框架,但是由于 SpringMVC 一般不单独使用,如上介绍, SpringMVC 需要配合 Spring 框架,因此你首先需要掌握一定的 Spring 框架的使用。 1、创建一个普通的Java Web项目 2、导入Spring、SpringMVC框架依赖 ①、在 web/WEB-INF 目录下创建lib文件夹 ②、复制Spring、SpringMVC的依赖到项目lib文件夹 Spring框架支持包下载地址: https://repo.spring.io/release/org/springframework

SpringMVC 应用配置

偶尔善良 提交于 2020-01-27 20:16:14
1、增加Spring的支持   新建web项目,添加如下jar包:   commons-logging-1.2.jar  spring-aop-4.2.5.RELEASE.jar  spring-aspects-4.2.5.RELEASE.jar  spring-beans-4.2.5.RELEASE.jar   spring-context-4.2.5.RELEASE.jar  spring-context-support-4.2.5.RELEASE.jar  spring-core-4.2.5.RELEASE.jar  spring-expression-4.2.5.RELEASE.jar   spring-instrument-4.2.5.RELEASE.jar  spring-instrument-tomcat-4.2.5.RELEASE.jar  spring-jdbc-4.2.5.RELEASE.jar  spring-jms-4.2.5.RELEASE.jar   spring-messaging-4.2.5.RELEASE.jar  spring-orm-4.2.5.RELEASE.jar  spring-oxm-4.2.5.RELEASE.jar  spring-test-4.2.5.RELEASE.jar   spring-tx-4.2.5.RELEASE

springmvc(三) 参数绑定、

假如想象 提交于 2020-01-27 00:48:21
      前面两章就介绍了什么是springmvc,springmvc的框架原理,并且会简单的使用springmvc以及ssm的整合,从这一章节来看,就开始讲解springmvc的各种功能实现,慢慢消化                           --WZY 一、参数绑定        1.1、什么是参数绑定?         客户在浏览器端会提交一些参数到服务器端,比如用户的登录等,就会传username 和 password过来,springmvc则通过参数绑定组件将请求参数的内容进行数据转换,然后将转换后的值覆给controller方法的形参,这就是参数绑定的过程,其实, springmvc就是使用controller方法形参来接收请求的参数        1.2、springmvc默认支持的参数类型         可以在Controller方法的形参中直接使用以下类型            HttpServletRequest、HttpServletResponse、HttpSession: 这三个很熟悉,不做解释           Model/ModelMap: 将model数据填充到request域,比如之前的ModelAndView对象添加list,其实就是将list添加到request作用域,只是ModelAndView对象不仅能够添加model数据

Spring MVC介绍

笑着哭i 提交于 2020-01-26 23:39:46
Spring MVC 1 什么是springMVC springMVC基于java实现的MVC的设计模式,通过把model,view,controller分离,将web层进行解耦,将复杂的逻辑清晰化,简化代码开发,方便开发人员之间的配合. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rjgXi86v-1573720869970)(image/springmvc流程.jpg)] 用户向服务器发开请求,请求被SpringMVC 前端控制器 DispatcherServlet 捕获; DispatcherServlet收到请求调用HandlerMapping处理器映射器()。 DispatcherServlet 对请求 URL 进行解析,得到请求资源标识符(URI)。然后根据该 URI,调用 HandlerMapping 获得该 Handler 配置的所有相关的对象(包括 Handler 对象以及 Handler 对象对应 的拦截 器),最后以 HandlerExecutionChain 对象的形式返回; DispatcherServlet 根据获得的 Handler,选择一个合弁的 HandlerAdapter;(附注:如果成功获得 HandlerAdapter 后,此时将开始执行拦截器的 preHandler(true或者false) 方法) 提取

SpringMVC

不羁的心 提交于 2020-01-26 22:45:51
1.1 三层结构介绍 我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器;另一种是 B/S 架构,也就是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S 架构的开发。那么在 B/S 架构中,系统标准的三层架构包括:表现层、业务层、持久层。三层架构在我们的实际开发中使用的非常多,所以我们课程中的案例也都是基于三层架构设计的。 三层架构中,每一层各司其职,接下来我们就说说每层都负责哪些方面: 表现层: 也就是我们常说的web 层。它负责接收客户端请求,向客户端响应结果,通常客户端使用http 协议请求web 层,web 需要接收 http 请求,完成 http 响应。 表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示。 表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端。 表现层的设计一般都使用 MVC 模型。(MVC 是表现层的设计模型,和其他层没有关系) 业务层: 也就是我们常说的 service 层。它负责业务逻辑处理,和我们开发项目的需求息息相关。web 层依赖业务层,但是业务层不依赖 web 层。 业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务一致性。(也就是我们说的, 事务应该放到业务层来控制) 持久层: 也就是我们是常说的 dao 层。负责数据持久化

springmvc常用注解和spring事务的四大特性、事务的传播特性

て烟熏妆下的殇ゞ 提交于 2020-01-26 01:59:30
springmvc常用注解和spring事务的四大特性、事务的传播特性 #1.springmvc常用注解 @Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。 @Scope注解 作用域 @Lazy(true) 表示延迟初始化 @Service用于标注业务层组件、 @Controller用于标注控制层组件(如struts中的action) @Repository用于标注数据访问组件,即DAO组件。 @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。 @Scope用于指定scope作用域的(用在类上) ---------------jsr250---- @PostConstruct用于指定初始化方法(用在方法上) @PreDestory用于指定销毁方法(用在方法上) @Resource 默认按名称装配,当找不到与名称匹配的bean才会按类型装配。 @DependsOn:定义Bean初始化及销毁时的顺序 @Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常 @Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下: @Autowired

Java框架之SpringMVC 05-拦截器-异常映射-Spring工作流程

眉间皱痕 提交于 2020-01-25 15:55:24
SpringMVC 米妮小说网 www.amini.net 拦截器   Spring MVC也可以使用拦截器对请求进行拦截处理,可以自定义拦截器来实现特定的功能,自定义的拦截器可以 实现 HandlerInterceptor接口 中的 三 个方法 , 也可以 继承HandlerInterceptorAdapter 适配器类按照需要那个方法,就实现哪个方法 过滤器与拦截器区别   过滤器:过滤器在Servlet之前操作   拦截器:拦截器在Servlet之后,请求处理器(Controller)之前操作。 拦截器三个方法   ① preHandle ():这个方法在(Controller) 处理器处理请求之前被调用 ,在该方法中对用户请求 request 进行处理。如果该拦截器对请求进行拦截处理后还要调用其他的拦截器,或者是业务处理器去进行处理,则返回 true ;如果不需要再调用其他的组件去处理请求,则返回false。(如果返回false则后续操作都不再执行,类似于过滤器的 doFilter 所以正常情况下不要返回 false)   ② postHandle ():这个方法在(Controller) 处理器处理完请求后,但是 DispatcherServlet 向客户端返回响应前 (在视图渲染之前)被调用 ,在该方法中对用户请求request进行处理。   ③