![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
javaEE
文章平均质量分 85
java知识点强化
Carl·杰尼龟
一定要坚持,因为下次努力不知道要等到什么时候
展开
-
SpringMVC
MVC是一种软件架构的设计规范,将软件按照、、来划分M:Model,模型层,指工程中的JavaBean[1],作用是处理数据V:View,视图层,指工程中的Html或Jsp等页面,作用是与用户进行交互,展示数据C:Controller,控制层,指工程中的Servlet,作用是接收请求和响应浏览器MVC的工作流程:用户通过View层发送请求到服务器,在服务器中请求被Controller层接收,Controller层调用响应的Model层处理,处理完毕后将结果返回到Controller层,Controller层原创 2024-06-18 15:37:37 · 1132 阅读 · 0 评论 -
SpringMVC的DispatcherServlet处理请求的过程
我们以上个demo中这个GET请求为例,请求URL是http://localhost:8080/011_spring_framework_demo_springmvc_war_exploded/user。然后执行invokeHandlerMethod这个方法,用来对RequestMapping(usercontroller中的list方法)进行处理。我们知道servlet处理get请求是doGet方法,所以我们去找DispatcherServlet类结构中的doGet方法。执行后获得视图和Model。原创 2024-06-18 15:37:11 · 358 阅读 · 0 评论 -
SpringMVC的DispatcherServlet初始化过程
DispatcherServlet作为一个Servlet,需要根据Servlet规范使用Java配置或web.xml声明和映射。DispatcherServlet会根据Spring的配置来发现请求映射、视图解析、异常处理等所需的委托组件。原创 2024-06-18 15:33:25 · 1442 阅读 · 0 评论 -
SpringMVC的一个DEMO
主要引入Spring-webmvc包(spring-webmvc包中已经包含了Spring Core Container相关的包),以及Servlet和jstl(JSP中使用的jstl)的包。springmvc.xml创建后,在web.xml中配置初始化参数。在resouce目录下创建springmvc.xml。添加Tomcat Server-Local。配置Configurations。然后就可以运行并访问Web页面了。点击编辑,编辑war包信息。xml配置文件的编写。原创 2024-06-18 14:01:45 · 580 阅读 · 0 评论 -
Spring5新功能
Spring WebFlux是用于对标SpringMVC的,用于Web开发的响应式编程框架新的Spring-webflux模块,一个基于(反应流)的,完全的异步非阻塞,目的是在使用enent-loop(事件循环机制)执行模型和传统的线程池模型,支持在NettyUndertow和Servlet3.1以上容器等服务器上运行同步和异步:异步和同步针对调用者同步:调用者发送请求,如果等着对方回应,才去做其他事情就是同步异步:调用者发送请求,在等待对方回应的同时在做其他的事情就是异步。原创 2024-06-18 13:50:08 · 710 阅读 · 0 评论 -
Spring的使用场景
如果使用Spring,需要获得一个包含你所需要的Spring模块的jar库的副本。可以是直接的(例如,我的应用程序在运行时依赖于Spring)或间接的(例如我的应用程序依赖于commons-dbcp ,而commons-dbcp 又依赖于commons-pool)。Spring Framework还为Enterprise JavaBeans提供了一个访问和抽象层,使您能够重用现有的POJO,并将其包装在无状态会话bean中,以便在可能需要声明式安全性的, 可扩展的,故障安全的Web应用程序中使用。原创 2024-06-18 13:41:59 · 782 阅读 · 0 评论 -
Spring的事务操作
事务是数据库操作的最基础单元,参考典型场景:转账业务A→B转账100,A-100&&B+100,两者同时满足则完成转账操作,两者相互依赖,如果只有一个满足/不满足则是bug,因此这种业务必须以事务来控制。原创 2024-06-17 17:40:10 · 799 阅读 · 1 评论 -
Spring-AOP概述
在Spring中可以使用Schema和@AspectJ方式进行组织实现。原创 2024-06-17 17:26:42 · 661 阅读 · 0 评论 -
JDK代理实现AOP
第一步:(把冰箱门打开)准备工作,将所有方法包装成ProxyMethod对象,包括Object类中hashCode、equals、toString方法,以及被代理的接口中的方法。代理的创建比较简单,调用getProxy方法,然后直接调用JDK中Proxy.newProxyInstance()方法将classloader和被代理的接口方法传入即可。执行的时候,通过ProxyGenerator创建的Proxy,调用InvocationHandler的invoke方法,执行我们自定义的invoke方法。原创 2024-06-17 17:24:55 · 389 阅读 · 0 评论 -
Cglib代理实现
CgLib是一个强大的、高性能的代码生成包,被许多AOP框架所使用,为他们提供方法的拦截最底层的是字节码ASM是操作字节码的工具CgLib基于ASM字节码工具操作字节码(即动态生成代理,对方法进行增强)SpringAOP基于CgLib进行封装,实现CgLib方式的动态代理。原创 2024-06-17 17:23:12 · 549 阅读 · 0 评论 -
AOP切面的实现原理【底层源码】
AOP是基于IOC的Bean加载来实现的,将切面类的所有切面方法根据使用的注解,并将Advice连同切入点匹配器和切面类等信息一并封装到Advisor,为后续交给代理增强实现做准备。原创 2024-06-17 17:09:25 · 1072 阅读 · 0 评论 -
Spring IOC详解
什么是Bean。原创 2024-06-14 10:03:19 · 583 阅读 · 0 评论 -
Spring针对Bean管理中属性注入提供注解
Autowired:根据属性类型进行自动装配(getType)@Qualifier:根据属性名称进行注入@Resource:可以根据类型(getType)自动装配,也可以根据名称(getName)自动装配@Value:普通类型属性的注入常见的结构方式如下如何进行属性注入:在Controller类上添加bean实例注解@Controller在service类上添加bean实例注解@Service就必须实现接口,否则会报错注意:不要将注解添加在接口上。原创 2024-06-14 10:02:19 · 246 阅读 · 0 评论 -
Spring针对Bean管理中创建对象提供注解
如果value属性不写,value值默认为当前类的类名首字母小写,例如:UserService=>userService。上述四个注解功能一致,底层都是@Component,都是用于创建bean的实例,只是习惯上用于区分不同层次架构。@Controller:用于创建Controller层bean实例。在创建对象的注解中的value属性对应bean标签中的id属性。@Service:用于创建Service层bean实例。@Repository:用于创建Dao层bean实例。创建类,在类上添加创建对象的注解。原创 2024-06-14 09:58:34 · 112 阅读 · 0 评论 -
引入外部属性文件
在jdbc.properties文件中,不能使用userName/username这种属性,会自动获取当前电脑用户名,导致mysql连接不上。添加外部配置文件jdbc.properties。将外部属性文件中的属性赋值给bean实例对象。在spring的xml配置文件中增加。以引入外部数据库配置文件为例。如果是自定义的,可以自定义类。原创 2024-06-14 09:32:39 · 260 阅读 · 0 评论 -
Spring配置文件中的常用标签
即可在bean标签中去掉property标签,直接使用如下方式(对比set注入中的userDao的注入)原创 2024-06-14 09:30:38 · 404 阅读 · 0 评论 -
IOC操作Bean管理
DI:依赖注入,使用依赖注入用于管理Bean之间的依赖关系,不仅可以注入基本数据类型的属性,还可以注入引用数据类型的属性。注意:这也是为什么使用注解的方式必须所有需要注入的类都必须实现get/set方法的原因。在Spring配置文件中,使用bean标签,标签里添加对应的属性,就可以实现对象创建。创建对象时,默认是执行无参构造方法完成对象创建,如果当前对象没有无参构造会报错。依赖注入的两种方式(官网),实际上有三种。name:可以加特殊符号的对象唯一标识。基于xml方式注入属性。id:对象的唯一标识。原创 2024-06-14 09:28:55 · 801 阅读 · 0 评论 -
什么是Bean
Bean是在Spring中对于对象的描述,原因是每一个实例对象都可以通过xml配置文件中的bean标签来创建,由beans标签来管理所有的bean对象,因此也说Spring是管理bean的容器。通过学习IOC初始化流程,我们知道Spring通过资源配置文件,BeanDefinition并注册到IOC容器中。原创 2024-06-14 09:21:07 · 607 阅读 · 0 评论 -
IOC的依赖注入原理
Autowired注解是Spring自带的,@Resource是JSR250规范实现的,是JDK8的原生注解(在JDK11中已经移除了),@Inject是JSR330规范实现的@Autowired和@Inject注解用法是一样的,不同的是@Inject没有required属性@Autowired和@Inject注解是默认按照类型匹配的,@Resource是按照名称匹配的。原创 2024-06-14 09:14:46 · 619 阅读 · 0 评论 -
IOC的初始化流程
基本的策略是把工厂放到已知的地方,最好是放在对预期使用的上下文有意义的地方,以及代码将实际需要访问工厂的地方。Spring IOC容器对Bean定义资源的载入是从refresh()方法开始的,refresh()是一个模版方法,refresh()方法的作用是:在创建IOC容器前,如果已经有容器存在,则需要把已有的容器销毁和关闭,以保证在refresh之后使用的是新创建的IOC容器,refresh的作用类似于对IOC容器的重启,在新建号的容器中对容器进行初始化,对Bean定义资源进行载入。原创 2024-06-14 09:03:48 · 639 阅读 · 0 评论 -
Spring5的基本使用
Spring5.x支持JetBrains Kotlin语言,而且新增了对函数式Bean定义的支持,包括函数式的Bean检索样式。Spring5.x引入了@Nullable和@NotNull注解来修饰可空的参数及返回值,避免运行时的空指针异常。Spring5.x已经自带了通用的日志封装,不需要再额外使用commons-loging.jar包。由于Java8的反射增强,因此Spring5.x可以对方法的参数进行更高效的访问。Spring5.x核心接口已经加入了Java8接口支持的默认方法。原创 2024-06-13 17:57:08 · 606 阅读 · 0 评论 -
Spring的基本概念
Spring框架是一个开源轻量级的J2EE框架轻量级:引入的jar包非常少开源:免费的源代码框架:用于解决企业应用开发的复杂性Spring的特性非侵入式:使用Spring Framework开发应用程序时,Spring对应用程序本身的结构影响非常小,对领域模型可以做到零污染;对功能性组件也只需要使用几个简单的注解进行标记,完全不会破坏原有结构,反而能将组件结构进一步简化,使得开发应用程序时结构清晰、简洁优雅DI:依赖注入,指依赖的对象不再需要手动调用setXX方法来设置,而是用过配置赋值。原创 2024-06-13 17:52:28 · 931 阅读 · 0 评论 -
JavaEE的三层架构MVC
持久层:用于与数据库这种可以将数据持久保存的程序做交互,完成数据的CRUD,将持久层与数据库交互后的结果反馈给服务层,服务层处理完相应的业务后,反馈给控制层,控制层就会根据实际需求将获取到的结果回传给客户端或浏览器。业务层:用于处理业务,通过控制层获取请求参数后传递给业务层,业务层执行完对应的业务后传递数据给控制层,再由控制层反馈给客户端。控制层:也称作Web层或视图层,用于获取浏览器请求,并反馈响应信息的一层。为lib目录创建依赖,成为jar依赖目录。web目录下创建lib目录。方法一:Maven配置。原创 2024-06-13 17:49:03 · 1014 阅读 · 0 评论 -
文件上传下载
我们可以根据用户上传的图片,下载到服务器本地,再通过请求重定向的方式,进行下载–请求重定向就必须将被重定向的Servlet设置为Get请求。将输入流的文件信息copy给输出流:将ServletContext对象中的输入流获取的文件信息,复制到输出流中,通过输出流反馈给浏览器。很明显:当我们使用Servlet获取name=upload的内容时,获取的只是文件名,通过浏览器我们不难发现,上传的只是一个文件名。获取输出流:获取Response对象的输出流–因为需要Response将文件通过流的方式输出给浏览器。原创 2024-06-13 17:42:56 · 1103 阅读 · 0 评论 -
URL和URI
URL是Internet上描述信息资源的字符串,主要用于各种www客户程序和服务器程序上,用统一的格式描述各种信息资源(如:文件、服务器地址、目录等)事实上上面的举例也是URL,URL和URI的区分实际上是确定该资源有无访问机制,如果有,则是URL,无则URI。URI通常由三个部分组成:资源的命名机制、存放资源的主机名、资源自身的名称(这三个条件是充分不必要条件)web上每一种可用资源(如:HTML文档、图像、视频片段、程序等)都是由一个URI进行标识的。资源(指定了一个确定的资源)原创 2024-06-13 17:35:25 · 351 阅读 · 0 评论 -
会话跟踪技术
会话:用户打开浏览器,访问Web服务器的资源,会话建立,直到有一方断开连接,会话结束,在一次会话中可以包含多个请求和响应。会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间共享数据HTTP协议是无状态的,每次浏览器向服务器发起请求时,服务器都会将该请求视为新的请求,因此需要会话跟踪技术来实现会话共享cookie的信息是以键值对的方式进行保存的客户端有了cookie后,每次请求都会发给服务器每个cookie的大小不能超过4KB。原创 2024-06-13 17:34:08 · 368 阅读 · 0 评论 -
HTTP协议
服务器和客户端相互通信所遵守的规则遵守HTTP协议发送的数据称作报文客户端给服务器发送数据—请求(GET请求和POST请求)服务器给客户端发送数据—响应HTTP协议是无状态的,会将每次浏览器的请求,视为一次新的请求。这样设计的原因是由于,如果每次请求都将记录上一次请求的信息,则多次请求后,会携带大量的数据,导致浏览器访问很慢。原创 2024-06-12 09:24:37 · 802 阅读 · 0 评论 -
JavaWeb-Filter过滤器
创建一个类,继承javax.servlet.Filter接口重写init、destory、doFilter方法@Override@Override@OverridedoFilter方法是用于拦截请求的核心方法在doFilter方法中处理拦截逻辑@Override//没有登录,则跳转到login.jsp}else{//这段代码表示让程序继续向下访问用户的目标资源在web.xml文件中配置filter映射。原创 2024-06-12 09:17:27 · 862 阅读 · 0 评论 -
JavaWeb--Listener监听器
Listener监听器是JavaWeb三大组件之一,JavaWeb的三大组件为:Servlet、Filter、ListenerLIstener监听器是JavaEE的一个接口–规范监听器的作用是为了监听某种事务的变化、然后通过回调函数反馈给客户做一些相应的处理。原创 2024-06-12 09:11:51 · 765 阅读 · 0 评论 -
Servlet详解
是javaEE的规范之一,规范接口Servlet是JavaWeb三大组件之一Servlet是运行在Web服务器中的Java小程序,可以接收客户端发送过来的请求,并响应数据给客户端。原创 2024-06-12 09:09:38 · 946 阅读 · 0 评论 -
JavaEE的分层模型
Servlet在2.5版本及之前都是采用的xml配置的方式,在3.0之后就是注解的方式实现了 Servlet在4.x中提供了异步请求、注解、增强的Servlet API、非阻塞IO。html\htm网页,通过直接获取的方式,进行页面展示,所有的用户看到的都是同一个页面 css、js、txt mp4 jpg等都算是静态web资源。WebLogic:是Oracle公司的产品,目前应用最广泛的Web服务器,支持JavaEE规范,适合大型项目(收费,大公司用得比较多)原创 2024-06-12 08:50:40 · 730 阅读 · 0 评论 -
请求响应的封装成对象
请求重定向无法访问WEB-INF目录下的资源(原因:两次请求都是由客户端获取链接后发送的请求,浏览器请求无法访问WEB-INF目录下的资源,而请求转发是服务器获取WEB-INF目录下的资源后回传给客户端的)请求重定向:是指客户端给服务器发送请求,服务器回传数据给客户端时,修改浏览器访问地址,重新定向到另一个资源点。在开发中使用绝对路径,避免使用相对路径,避免因项目迁移导致的路径错误,如果要使用相对路径,要使用。请求转发:由客户端发起请求给服务器,服务器从一个资源跳转到另一个资源的操作叫做请求转发。原创 2024-06-12 08:55:27 · 997 阅读 · 0 评论 -
JDBC的使用步骤
下载Jar包JDBC的使用必须提供第三方的jar包,且Mysql和mysql-connection版本要对应可参考该文档:https://blog.csdn.net/hchhan/article/details/81106992建议是找到mysql对应版本的mysql-connection提供两个下载jar包的地址:清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/Connector-J/maven库:https:原创 2021-09-11 11:33:39 · 80 阅读 · 0 评论 -
支付宝集成--基本操作2
2.集成操作新建一个导入三个包–在之前下载的那个demo中有然后创建一个HTML自己做页面,找到这个之前进过的页面初始化需要修改参数或者直接复制粘贴下一行,不过都要进行些许修改进行验签操作代码修改如下package com.chx;import java.io.IOException;import java.util.Date;import javax.s...原创 2019-11-21 15:20:51 · 206 阅读 · 0 评论 -
支付宝集成--基本操作1
1.百度搜索支付宝sdk然后下载demo点击开放平台进入该界面,未注册即注册开放平台用户点击进入开放平台,点击开发者中心,进入研发服务谷歌可能会出现重定向次数过多的问题–这个问题是服务器问题–因为这个是测试操作,阿里给的服务器不是很好,有点不稳定,问题不大,多试几次就好了火狐可能也会出现访问问题,也是一样,多试几次就好了下载一个RSA签名验签工具windows_V1.4,...原创 2019-11-21 12:30:52 · 141 阅读 · 1 评论 -
JDBC出现问题
1.Property ‘dataSource’ is required该问题出现的状况是配置文件没有访问到,或路径问题,或配置文件根本没导入,检查配置文件位置2.内存泄漏,自动注销问题该问题一般出现于数据库和Java之间的编码格式不一致或,修改编码格式一致即可解决–web编码和数据库编码不匹配也有可能出现这个情况,建议将java-web-Mysql编码修改一致...原创 2019-11-20 21:38:27 · 137 阅读 · 0 评论 -
Eclipse使用tomcat入门操作
1.eclipse创建一个Dynamic Web Project项目2.配置TomcatWindow->preferences->Server->Runtime Enviroments->Add->Apache->Apache Tomcat->next->配置名称路径->finishwindow->show view-&...原创 2019-11-12 16:55:01 · 367 阅读 · 0 评论 -
单例模式
1.单例模式单例模式属于创建型模式,是创建对象的最佳方式这种模式涉及到的一个单一的类,该类创建自己的对象,同时确保只有单个对象这个类仅仅提供唯一对象访问方式,可以直接访问,不需要实例化对象注意: 1.单例类只能有一个实例 2.单例类必须自己给自己创建自己的唯一实例 3.单例类必须给所有其他对象提供这一实例1.单例模式主要思想:保证类中仅有一个实例,并且提供一个访问它的全局...原创 2019-09-19 17:30:02 · 90 阅读 · 0 评论 -
德州扑克比牌、认牌功能实现作业
/*牌面数字使用:2 3 4 5 6 7 8 9 T J Q K A花色:黑桃:B, 红桃:R, 棉花:M, 方块:F一手牌就是:B2M2R3RJRK(一张黑桃2,一张棉花2,一张红桃3,一张红桃J,一张红桃K)比较规则:首先约定,这些牌面首先使用这些数字符号表示// 单张 一对 两对 三张 顺子 同花 满堂红四张同花顺// 0 1 2 3 4 5 6 ...原创 2019-09-16 13:37:28 · 470 阅读 · 0 评论 -
自然排序与定制排序
1.自然排序在Java中提供了一个Comparable接口,在接口中实现了一个public int compareTo(T o);方法该方法返回一个整数值,通过obj1.compareTo(obj2),对两个对象进行比较,如果返回值是0则表明两数相等,如果返回正整数则表明obj1大于obj2,否则如果返回负整数则表明obj1小于obj2TreeSet会自动调用compareTo(Obj...原创 2019-09-14 14:42:17 · 1796 阅读 · 0 评论