SSM框架
文章平均质量分 71
Java硬件工程师
中国科学技术大学毕业,原支付宝Java开发工程师,立志做一名资深全栈工程师
展开
-
SpringMVC拦截器
1 拦截器之介绍和搭配环境Spring MVC 的处理器拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。 用户可以自己定义一些拦截器来实现特定的功能。谈到拦截器,还要向大家提一个词——拦截器链(Interceptor Chain)。拦截器链就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。说到这里,可能大家脑海中有了一个疑问,这不是我们之前学的过滤器吗?是的它和过滤器是有几分相似,但是也有区别,原创 2020-08-15 10:57:00 · 1741 阅读 · 0 评论 -
SpringMVC异常处理
1 SpringMVC异常处理分析和搭建环境在编写程序的时候,通常会出现异常,我们通常希望我们能够让我们的页面跳转到一个比较友好的页面。从客户端浏览器发送请求,请求会先到达前端控制器,前端控制器会调用我们的处理器controller,controller调用我们的业务层service,最后service调用持久层完成数据库的操作。当我们出现了异常,异常默认都是向上抛出来的,即向相反的方向抛出异常,比如service调用dao,dao出了问题,它会把异常抛给service,service会把异常抛出给原创 2020-08-15 10:46:39 · 1651 阅读 · 0 评论 -
SpringMVC实现文件上传
1.文件上传之上传原理分析和搭建环境springmvc文件上传也会用到Javaweb实现文件上传的组件。1.1文件上传的必要条件A .form 表单的 enctype 取值必须是:multipart/form-data(默认值是:application/x-www-form-urlencoded)enctype:是表单请求正文的类型(默认表单提交数据的格式是键值对的方式,比如username=hehe&password=123。但我们把取值改成multipart,会把我们分成几个部分)原创 2020-08-15 10:26:53 · 1892 阅读 · 0 评论 -
SpringMVC的响应JSON数据和过滤静态资源
1.过滤静态资源现在可能有这样的场景,页面发送一个ajax请求,明显是一个异步请求,后台需要把一些对象,转换成json的字符串,然后给你响应回去。然后我们就需要用responseBody这个注解就可以完成这个事我们需要搭建一个异步环境。然后去引入一个jQuery.min.js的文件然后我们就要在页面上引入这个js文件,然后就可以引用jQuery提供的函数或者方法。<head> <title>Title</title> <script src原创 2020-08-15 10:06:41 · 1731 阅读 · 0 评论 -
SpringMVC的响应数据和结果视图
响应数据之返回值是String类型方法执行完,需要跳转到指定的页面,最终给用户一个响应。springmvc提供了很多种响应的方式。controller 方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。jsp<a href="user/testString">testString</a>controller@Controller@RequestMapping("/user")public class UserController { @Re原创 2020-08-15 10:00:08 · 1830 阅读 · 0 评论 -
SpringMVC框架----SessionAttribute注解
作用:用于多次执行控制器方法间的参数共享。属性: value:用于指定存入的属性名称 type:用于指定存入的数据类型如果是把一个数据存到session这个域对象中,session域称为会话域。它可以经过多次请求,存数据,请数据,session都可以用。需求:在request域对象中存入一个值,存入之后,跳转到success成功页面,在成功页面中,把request值取出来要存入request域,我们想获得原生的servletAPI,可以在方法上直接加一个public String testS原创 2020-08-14 11:55:19 · 2148 阅读 · 0 评论 -
SpringMVC框架----ModelAttribute注解
作用:该注解是 SpringMVC4.3 版本以后新加入的。它可以用于修饰方法和参数。出现在方法上,表示当前方法会在控制器的方法执行之前,先执行。它可以修饰没有返回值的方法,也可以修饰有具体返回值的方法。出现在参数上,获取指定的数据给参数赋值。属性: value:用于获取数据的 key。key 可以是 POJO 的属性名称,也可以是 map 结构的 key。应用场景: 当表单提交数据不是完整的实体类数据时,保证没有提交数据的字段使用数据库对象原来的数据。(比如user类中有三个属性,而我们表原创 2020-08-14 10:49:11 · 1736 阅读 · 0 评论 -
SpringMVC框架----RequestParam注解和RequestBody注解
1.RequestParam注解作用:把请求中指定名称的参数给控制器中的形参赋值。如果表单提交一个属性username,后台想接收到这个数据,必须在方法中加一个参数叫username,如果名字写的不一样,封装不上。如图,这是一样的index.jsp<!--常用注解--><a href="anno/testRequestParam?username=haha">RequestParam</a>controller类/*常用注解的控制器*/@Control原创 2020-08-14 10:42:39 · 1811 阅读 · 0 评论 -
SpringMVC框架----SpringMVC的自定义类型转换器
上一段我们介绍了请求参数的绑定SpringMVC请求参数的绑定在请求参数绑定的时候,有时候会遇到一些问题,如自定义类型转换器异常1.自定义类型转换器演示异常现在有一个页面,想给服务器提交数据,现有uname,age,其中age是100.但是往后台提交的东西,100也是作为字符串来出现的,或者只要是页面,提交的任何数据,全部都是字符串类型的。在后台我们可以把数据全部都拿到。如果你提交的是一个字符串的话,后台类型是Integer,程序也没有报错,springmvc内部中自动的进行了数据类型转换。St原创 2020-08-14 10:34:07 · 1899 阅读 · 0 评论 -
SpringMVC框架----请求参数的绑定
1.请求参数绑定入门作为web层框架,客户端发请求过来,一定会携带请求参数,把数据传给我,拿到数据的过程称之为参数的绑定。表单提交数据,都是一组键值对,比如username=hehe&password=123.这是一组键值对。传过来MVC框架,username=hehe&password=123sayHello(String username,String password)如果参数名都是一样的,MVC框架就自动的把传的值赋值到这个方法的参数上。底层通过反射的方式,拿到这个方法的原创 2020-08-14 10:16:05 · 1776 阅读 · 0 评论 -
SpringMVC框架----RequestMapping注解
作用:用于建立请求 URL 和处理请求方法之间的对应关系客户端会发一个请求过来,后台会有一个方法去执行它,现在我们需要把请求地址路径和我们的方法建立一个映射关联,发了请求,我们的方法就执行。RequestMapping用来建立他们之间的对应关系。源码表名requestMapping既可以作用在方法上,也可以作用在类或者接口上。如果路径是/user/hello表名它有两级目录,如果把注解放在类上,可以声明一级目录,把注解放在方法上,指的就是二级目录好处:可以分模块开发。比如我现在user下的原创 2020-08-14 09:57:21 · 2103 阅读 · 0 评论 -
SpringMVC框架----SpringMVC入门程序中的组件介绍
springmvc框架:底层基于组件方式执行流程。前端控制器和处理器映射器都称为组件客户端先发送request请求,请求先到前端控制器,前端控制器是一个指挥中心。它找到了处理器映射器。(之前案例中有requestMapping,请求映射)。处理器映射器能知道发送过来的请求,最终可以让我controller中的哪个方法去帮你执行(如何知道,在发送请求的时候,有一个请求路径,/hello,在写注解的时候,我们也是/hello,我们就可以匹配上)。接下来就返回helloController中的sayhell.原创 2020-08-14 09:51:06 · 1728 阅读 · 0 评论 -
SpringMVC框架----SpringMVC的入门程序
1.入门程序的需求在这里插入图片描述编写一个页面,叫index.jsp。页面上写一个超链接的标签,点击超链接,会发出一个请求,如果把请求发出去的话。后台编写类,接收请求,编写方法。发送请求,方法就会执行,我们希望方法执行之后,会转发到成功JSP页面。用户就可以看到成功的jsp页面我们分两步完成。1.需要搭建开发的环境。导入jar包,创建配置文件,还有jsp2.编写入门的程序。2.搭建环境选择maven工程,勾选create from archetype。选择maven-archetype-原创 2020-08-14 09:44:39 · 2034 阅读 · 0 评论 -
SpringMVC框架----SpringMVC 概述
1.SpringMVC 是什么SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 Spring FrameWork 的后续产品,已经融合在 Spring Web Flow 里面。MVC 设计模型能用来接收请求,把传的请求参数拿到,然后对参数进行封装。转发到jsp然后显示相应的数据。SpringMVC与spring框架的整合非常容易。Spring 框架提供了构建 Web 应用程序的全功 能 MVC 模块。使用 Spring 可插入的 MVC原创 2020-08-14 09:07:15 · 1791 阅读 · 0 评论 -
SpringMVC框架----MVC 模型
MVC 全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写, 是一种用于设计创建 Web 应用程序表现层的模式。MVC 中每个部分各司其职:Model(模型)通常指的就是我们的数据模型。作用一般情况下用于封装数据。JavaBean对象View(视图):通常指的就是我们的 jsp 或者 html。作用一般就是展示数据的。通常视图是依据模型数据创建的。 JSP或者HTMLController(控制器):是应用程序中处理用户交互原创 2020-08-14 09:02:46 · 1825 阅读 · 0 评论 -
SpringMVC框架----三层架构
我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S架构的开发。那么在 B/S架构中,系统标准的三层架构 包括:表现层、业务层、持久层。三层架构在我们的实际开发中使用的非常多, 三层架构中,每一层各司其职,接下来我们就说说每层都负责哪些方面:服务器端通常分为三层架构表现层:也就是我们常说的web层。它负责接收客户端请求,向客户端响应结果,通常客户端使用http协议请求 web 层,w原创 2020-08-13 16:29:47 · 6680 阅读 · 0 评论 -
Spring框架----Spring的环绕通知
问题:当我们配置了环绕通知之后,切入点方法没有执行,而通知方法执行了/*环绕通知* 问题:当我们配置了环绕通知之后,切入点方法没有执行,而通知方法执行了* */public void aroundPrintLog(){ System.out.println("(环绕通知)Logger类中的aroundPrintLog方法开始记录日志了");}<!--配置环绕通知 详细的注释请看logger类中--><aop:around method="aroundPrintLog原创 2020-08-13 12:45:12 · 2417 阅读 · 0 评论 -
Spring框架----通用切入点表达式
配置切面配置切入点表达式,id用于指定表达式的唯一标识,expression用于指定表达式内容此标签写在aop-aspect标签内部,只能当前切面使用,如果有新的切面,只能重新配置它还可以写在aop:aspect外面,此时可供所有切面使用如果是放在外面,就一定要放在aspect标签的前面当改了位置,发现异常的时候,就看约束里是否有顺序上的要求aop:config <!--配置切面--> <!--配置切入点表达式,id用于指定表达式的唯一标识,expression原创 2020-08-13 12:42:37 · 1673 阅读 · 0 评论 -
Spring框架----四种常用通知类型
用于记录日志的工具类,它里面提供了公共的代码/*用于记录日志的工具类,它里面提供了公共的代码*/public class Logger { /*前置通知*/ public void beforePrintLog(){ System.out.println("(前置通知)Logger类中的beforePrintLog方法开始记录日志了"); } /*后置通知*/ public void afterReturningPrintLog(){原创 2020-08-13 12:38:17 · 2049 阅读 · 0 评论 -
Spring框架----切入点表达式的写法
上一节我们实现了Spring的基于XML的AOP。Spring的基于 XML的AOP的实现我们将测试一下上一节的代码执行结果/*测试aop的配置*/public class AOPTest { public static void main(String[] args) { //1.获取容器 ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml"); //2.获取对原创 2020-08-13 12:24:42 · 1700 阅读 · 0 评论 -
Spring框架----Spring的基于XML的AOP的实现
导入依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.2.RELEASE</version> </dependency> <dependency> &原创 2020-08-13 10:50:54 · 1715 阅读 · 0 评论 -
Spring框架----AOP的概念及术语
1.什么是AOPAOP:全称是 Aspect Oriented Programming 即:面向切面编程简单的说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。2.AOP 的作用及优势作用: 在程序运行期间,不修改源码对已有方法进行增强。优势: 减少重复代码,提高开发效率,维护方便3.AOP 的实现方式使用动态代理技术4.AOP 的术语及实现细节1.Joinpoint(连接点):所谓连接点是指那些被拦截到的点。原创 2020-08-13 09:37:05 · 2261 阅读 · 1 评论 -
Spring框架----基于子类的动态代理
上节,我们提到了基于接口的动态代理。https://blog.csdn.net/qq_39736597/article/details/107971572来完成通过中间代理商,消费者从生产商那里购买产品的功能。这种动态代理要求第三方jar包的支持。cglib依赖,版本是2.1_3基于子类的动态代理涉及的类:Enhancer提供者:第三方cglib库如何创建代理对象使用Enhancer类中的create方法创建代理对象的要求被代理类不能是最终类(最终类无法创建子类)create方法的参原创 2020-08-13 09:24:13 · 1652 阅读 · 0 评论 -
Spring框架----基于接口的动态代理
由我们前面对代理的分析https://blog.csdn.net/qq_39736597/article/details/107971509有生产商,销售人员和消费者这3个角色,销售人员是中间代理商。代理销售和售后的工作。而在刚开始的时候,我们并没有销售人员。根据这样的思路,我们写出以下代码接口IProducer//对生产厂家要求的接口。public interface IProducer { //销售 public void saleProduct(float money);原创 2020-08-13 09:13:56 · 1989 阅读 · 1 评论 -
Spring框架----代理的分析
请看下图代理:在十八年前左右,买电脑的时候,那个时候买电脑是生产厂家在一些商场租一块地然后销售电脑。我作为消费者就直接找到厂家来购买电脑, 厂家也会对我买到的电脑进行售后。那个年代电脑生产和销售售后都是由生产厂家来做的。但是随着时间的推移,这两件事生产厂家照顾不过来,于是公司的运营成本就分成了两块,一块是生产,一块是销售售后。后来,很多人看到了销售和售后的商机,现在,负责销售和售后的就叫做经销商,也叫代理商。而我们买电脑的过程中,之前的那条路就走不通了,我们只能找到经销商来购买电脑,同时,经销商会把原创 2020-08-13 08:50:50 · 1668 阅读 · 0 评论 -
Spring框架----Spring的bean注解
这里能看出什么?红线两行表明了它可以通过调用构造函数来进行实例化,因为这都是newInstance,上面可以加参数,下面这个没有任何参数。对比图一上面一行,他们的作用是不是是一样的,上面图的有一个全限定类名,它可以反射创建该对象,并且调用一个单参构造,把dataSource参数传进去,而下面的也是调用构造函数,有一个参数传进去。但是他两的效果不一样,xml方式除了会创建对象,还会扔到springIOC容器中,key-value对,而new方式只是一个方法,不会有人把它给你存入spring容器。如果我.原创 2020-08-12 09:27:52 · 1817 阅读 · 0 评论 -
Spring框架----Confinguration和Component-Scan注解
如何不用xml配置文件这里面有两块内容,第一块是component-scan.第二块是对象的创建,我们之前的注解都是解决了我们自己写的类加一个注解。我们建了一个SpringConfiguration类,该类是一个配置类,它的作用和bean.xml是一样的我们将要使用到两个新的注解Configuration:它的作用是指定当前是一个配置类。ComponentScan:作用:用于通过注解指定spring在创建容器时要扫描的包/** 该类是一个配置类,它的作用和bean.xml是一样的。* sp原创 2020-08-12 09:23:20 · 1753 阅读 · 0 评论 -
Spring框架----自动按照类型注入的Autowired注解
当执行如下代码时(配置文件中未注入)private IAccountDao accountDao;public void saveAccount() { accountDao.saveAccount();}运行时显示空指针异常Autowired作用:自动按照类型注入,只要容器中有唯一的一个bean对象类型和要注入的变量类型匹配,就可以注入成功。出现位置:可以是成员变量上,也可以是方法上@Autowiredprivate IAccountDao accountDao;publi原创 2020-08-12 09:11:55 · 3714 阅读 · 1 评论 -
Spring框架----用于创建对象的Component注解
当我们在AccountServiceImpl上面写一个@component注解的时候,他就会把这个类反射创建一个对象,并且存入spring容器中。spring容器时一个map容器,是由key-value组成的,存这个对象,是value。注解相对xml更为简单一些,因为这里面直接写上一个标签,后来写上一个注解,之后再也不用在bean.xml中配置了,想创建对象就加注解。当我们解析配置文件时,就会创建容器,从而创建对象,而此时配置是空的,没有定义。如果我们随便用,也没有代码的问题,没有一个限制。原创 2020-08-12 09:03:10 · 3825 阅读 · 0 评论 -
Spring框架----Spring常用IOC注解的分类
学习基于注解的IOC配置,我们应该知道,注解配置和xml配置要实现的功能都是一样的,都是要降低程序的耦合,只是配置的形式不一样,关于实际的开发中到底是使用xml还是注解,每家公司有着不同的使用习惯,所以这两种配置方式我们都需要掌握曾经xml的配置:<property name=" " value=" “/ref=” ">按照xml方式的功能将其分为四类。1.用于创建对象的注解他们的作用就和在xml配置文件中编写一个标签实现的功能是一样的2.用于注入数据的注解他们的作用就和在x原创 2020-08-12 08:54:07 · 1697 阅读 · 0 评论 -
Spring框架----Spring的依赖注入
1.spring的依赖注入的概念依赖注入:dependency InjectionIOC的作用:降低程序之间的依赖关系,但不是消除。依赖关系的管理:以后都交给了spring来维护在当前类中需要用到其他类的对象,由spring为我们提供,我们只需要在配置文件中说明依赖关系的维护:称之为依赖注入依赖注入:能注入的数据有三类基本类型和String其他的bean类型(在配置文件中配置过的bean)复杂类型/集合类型注入的方式有三种第一种:使用构造函数提供第二种:使用set方法提供第三种:使原创 2020-08-11 15:34:33 · 1994 阅读 · 0 评论 -
Spring框架----Spring的bean的生命周期
bean对象的生命周期单例对象出生:当容器创建时,对象出生活着:只要容器存在,对象一直活着死亡:只要容器销毁,对象消亡总结:单例对象的生命周期和容器相同<bean id="accountService" class="com.yujie.service.Impl.AccountServiceImpl" scope="singleton"init-method="init" destroy-method="destory"></bean>public void ini原创 2020-08-11 15:29:56 · 1691 阅读 · 0 评论 -
Spring框架----Spring的bean的作用范围
bean在通常情况下都是一个单例的beanbean的作用范围调整bean标签的scope属性,作用:用于指定bean的作用范围取值:singleton:单例,也是默认值,常用prototype:多例,常用request:作用于web应用的请求范围session:作用于web应用的会话范围global-session:作用于集群环境的会话范围,或者叫全局会话范围,当不是集群环境时,它就是session<bean id="accountService" class="com.yujie.原创 2020-08-11 15:27:20 · 1997 阅读 · 0 评论 -
Spring框架----Spring的bean之三种创建bean对象的方式
第一种方式:使用默认构造函数创建在spring中的配置文件中,使用bean标签,配以id和class属性之后,且没有其他标签时,采用的就是默认构造函数创建bean对象,此时类中没有默认构造函数,则对象无法创建。<bean id="accountService" class="com.yujie.service.Impl.AccountServiceImpl"></bean>而在AccountServiceImpl对应创建方法一,加了一个参数,没有重写默认构造函数,此时代表原创 2020-08-11 15:24:56 · 2170 阅读 · 0 评论 -
Spring框架----Spring的IOC
1.SpringIOC概念和前期准备图中两个代码代表了两种不同的创建对象的方式第一种创建对象的方式,我们采用的是new的方式,在采用new的方式创建对象的时候我们在找对象的时候,是主动的在找,应用app是直接的跟资源联系,他们之间是有必然的联系,是消除不掉的,资源独立就变得很难采用第二种方式创建对象的时候,就是如下图app断开了和资源的联系,找工厂要一个资源,由工厂负责给我们的资源取得联系,把想要的资源返回给我们的应用中,从而实现应用和资源之间的依赖关系。这是IOC。为什么叫控制反转。把原创 2020-08-11 15:19:31 · 1736 阅读 · 0 评论 -
Spring框架----IOC的概念和作用之工厂模式
创建bean对象的工厂bean在计算机英语中,有可重用组件的含义可重用:可反复使用。组件:组成部分,比如service可以被servlet反复使用,dao被service使用。service可以看成是可重用的组成部分。javabean>=实体类,用Java语言编写的可重用组件bean对象的工厂它就是创建service和dao对象的如何创建:第一个需要一个配置文件来配置我们的service和dao配置的内容:全限定类名,唯一标识(key-value)(用于取到这个类)第二个通过读取配置文原创 2020-08-11 15:09:45 · 1839 阅读 · 0 评论 -
Spring框架----IOC的概念和作用之程序的耦合和解耦
1.编译期的依赖请看如下程序(程序运行在idea中,导入过mysql驱动)//1.注册驱动DriverManager.registerDriver(new com.mysql.jdbc.Driver());//程序运行没有上面的jar是不行的//2.获取连接Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/springdb","root","root");//3.获取操作数据库的预处理对象Pre原创 2020-08-11 15:02:58 · 1763 阅读 · 1 评论 -
Spring框架----Spring框架的基本概念
1.spring 是什么Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IOC(Inverse Of Control: 控制反转)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多 著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架。mybatis是持久层框架,spr原创 2020-08-11 14:50:22 · 2101 阅读 · 0 评论