
Java
Annn_kk
我是一条咸鱼...
展开
-
SpringMVC 和 Struts2 的区别
一、拦截机制的不同Struts2Struts2是类级别的拦截,每次请求就会创建一个Action,然后通过setter,getter把request数据注入到属性。Struts2中,一个Action对应一个request,response上下文,在接收参数时,可以通过属性接收,这说明属性参数是让多个方法共享的。Struts2中Action的一个方法可以对应一个url,而其类属...原创 2019-03-29 00:37:45 · 386 阅读 · 0 评论 -
Spring配置DBCP和C3P0连接池对象和JDBC 模板的增删改查(十一)
配置DBCP连接池对象在Spring中配置DBCP连接池对象,其实跟以前的使用方法差不多,只不过跟以前不用的是,将创建DataSource对象的工作交个Spring来处理。其实也就是将DBCP创建连接池的类交给Spring的Bean标签管理,由Spring来帮我们创建DataSource对象,同时在配置文件中注入相应属性。需要引入三个jar包:commons-dbcp2-2.5.0,com...原创 2019-03-21 02:20:17 · 343 阅读 · 0 评论 -
Spirng中web.xml配置中 "context-param"标签 的配置作用(五)
context-param的作用1.启动web项目的时候,容器(如:Tomcat)回去读取它的配置文件,web.xml,并且读取两个节点:< listener>< /listener>< context-param>< /context-param>2.接着,容器创建一个ServletContext对象(上下文对象),这个web项目所有模...原创 2019-03-16 15:52:22 · 2908 阅读 · 0 评论 -
Spring初始化时创建容器和applicationContext.xml 配置文件的存放位置(四)
在web项目中,每次请求都会创建一个Spring的工厂(容器),这样浪费服务器资源,所以一个项目只应该有一个工厂(容器)。解决方法是:在服务器启动的时候,创建一个工厂创建完工厂,把这个工厂类保存到ServletContext中每次使用的时候,就从ServletContext中获取。使用Spring的核心监听器ContextLodaerListener需要引入spring...原创 2019-03-16 15:27:17 · 1662 阅读 · 0 评论 -
Spring的AOP注解方式(十)
AOP注解方式使用Spring的AOP注解开发,所需要引入的JAR跟xml方式是一样的,4个基础jar包,2个日志jar包,4个aop jar包,和1个整合junit的jar包 如下:引入jar包:还需要引入配置文件,并且配置文件中需要添加AOP的约束,下面是完整的约束,其中有AOP,注解组件扫描,事务,bean等约束applicationContext.xml:<beans x...原创 2019-03-20 16:26:59 · 398 阅读 · 0 评论 -
Filter 过滤器
过滤器,其实就是对客户端发出来的请求进行过滤。浏览器发出,然后服务器派Servlet处理。在中间就可以过滤,其实过滤器起到的是拦截的作用,也就是拦截器。作用1.对一些敏感词汇进行过滤2.统一设置编码3.自动登录如何使用Filter1.定义一个类,实现Filter接口public class FilterDemo implements Filter { public...原创 2019-03-12 01:32:42 · 165 阅读 · 0 评论 -
Listener 监听器
Listener能做什么监听器,监听某一个事件的发生,状态的改变监听器的内部机制(原理)其实就是接口回调接口回调条件:A 在执行循环,当循环到5的时候,通知 B。事先先把一个对象传递给 A ,当 A 执行到5的时候,通过这个对象,来调用 B中的方法,但是注意的是,不是直接传递的实例,而是传递一个接口的实例。类似于接口的多态实现,在 A方法的参数中使用一个接口...原创 2019-03-11 16:27:14 · 198 阅读 · 0 评论 -
Spring AOP 的切入点表达式写法(九)
切入点表达式基本语法这是用于配置AOP的切入点的路径的表达式,类似于<aop:pointcut id="pointcut4" expression="execution(* SpringAopdemo.ProductDaoImpl.find(..))"/>是基于execution 函数完成的表达式。语法[访问修饰符] 方法返回值 包名.类名.方法名(参数)publi...原创 2019-03-20 00:37:30 · 659 阅读 · 0 评论 -
Spring的AOP的通知类型(九)
Spring中的通知类型通知类型,是按照在目标方法的前后顺序来决定的,比如在目标方法前或者后面执行,同时还需要在配置文件XML中进行各项通知的配置,通过aop:config 标签实现。先在配置文件中配置好相应的切入点(pointcut),也就是配置目标方法: <!--配置代理,通过AOP的配置完成对目标类产生代理--> <aop:config> ...原创 2019-03-19 23:34:16 · 597 阅读 · 0 评论 -
Spring分模块配置(三)
当Spring 的Application.xml配置文件过于臃肿的时候,可以将里面的配置分开存放,也就是分模块配置。两种方法:在类加载配置文件的时候,加载多个,传入多个xml配置文件ApplicationContext applicationContext = new ClassPathXmlApplicationContext(“ApplicationContext.xml”,“Ap...原创 2019-03-15 14:25:30 · 242 阅读 · 0 评论 -
Spring的IOC注解开发(六)
引入Spring的配置文件要使用IOC注解开发,除了需要引入基本的4个Spring jar包,2个日志jar包,在4.X以上的Spring版本,还需要引入 AOP jar包,因为有一部分的IOC方法被转移到AOP jar中,。如:spring-aop-5.1.5.RELEASE.jar同时,创建一个applicationContext.xml配置文件后,还需要引入Context约束co...原创 2019-03-18 15:22:43 · 204 阅读 · 0 评论 -
Spring的事务管理(十二)
Spring的事务管理Spring给我们提供了两种编写事务方式,一种是编程式事务,另一只是声明式事务PlatformTransactionManager:平台事务管理器平台事务管理器:是一个接口,是Spring用于管理事务的真正对象,并且会根据用户使用的数据库框架不同而切换底层实现。DataSourceTransactionManager:底层使用 JDBC 管理事务Hibernate...原创 2019-03-21 21:54:54 · 213 阅读 · 0 评论 -
SpringMVC的参数绑定(十八)
SpringMVC的参数绑定在SpringMVC中,由于其本质是一个Servlet,是基于方法开发的,也就是一个url对应一个方法的方式。所以客户端的发起的每一个请求最终都会被映射到一个对应的处理方法进行处理。所以一个请求的请求参数,是由处理方法的形参来接收的,也就是请求参数会传递到对应的方法的形参中。这也是和Struts2不一样的地方,Struts2是以基于类开发的,所以是用类中的成员变量...原创 2019-03-29 00:16:23 · 373 阅读 · 0 评论 -
SpringMVC 跳转页面失败404
SpringMVC跳转页面失败关于SpringMVC跳转方式失败,使用ModelAndView 或者是 直接返回字符串 都无法跳转到指定页面,可能存在以下几种常见问题ModelAndView 引用的包不对有时候自动导入的时候会选错包类,会将正确的包导成import org.springframework.web.portlet.ModelAndView而其中的方法都是一样的,编译器...原创 2019-03-27 14:54:04 · 5355 阅读 · 1 评论 -
Hibernate的常用模板的使用
保存操作save(Object obj);修改操作update(Object obj);删除操作delete(Object obj);查询操作查询一个get(Class c,Serializable id);load(Class c,Serializable id);查询多个List find(String hql,Object… args);Lis...原创 2019-03-24 00:51:11 · 397 阅读 · 0 评论 -
SSH整合方式二:将hibernate配置交给Spring管理(十五)
SSH 整合方式二:不带hibernate配置文件与(十四)中的方式一相比,方式二就是将hibernate配置文件中的属性配置等等,转移到了spring的配置文件中而已,相当于是换了个地方设置这些属性。配置完成后,就可以将hibernate的配置文件删除。hibernate配置文件中有哪些内容数据库连接的配置Hibernate的相关的属性的配置方言显示SQL格式化SQL…C3...原创 2019-03-23 23:25:51 · 304 阅读 · 0 评论 -
struts2的通配符 * 无法使用,method无效,无法访问404
在struts2 2.3版本以后为了增加安全性,在action中添加了对方法访问的权限,如果要使用通配符 * 调用方法的话,需要添加额外的代码,不然将会报无法访问的错误有以下几种解决方法一.在action标签中添加< allowed-methods>标签< allowed-methods>save< /allowed-methods><...原创 2019-03-23 15:17:50 · 2051 阅读 · 0 评论 -
SpringMVC的架构(十七)
框架结构对于SpringMVC的架构来说,可以归纳为“一个中心,三个基本点”,也就是一个中央控制器(前端控制器:DispatcherServlet),和三大组件(处理器映射器:HandlerMapping,处理器适配器:HandlerAdapter,视图解析器:ViewResolver)主要框架结构如图:具体的架构流程1、 用户发送请求至前端控制器DispatcherServlet2、...原创 2019-03-26 00:12:40 · 271 阅读 · 0 评论 -
SpringMVC入门(十六)
SpringMVCSpringMVC是什么Spring web MVC 和 Struts2都属于表现层的框架,Spring MVC是 Spring框架的一部分,可以用来取代Struts2。与Struts不同点在于,Struts2是经过封装改造的拦截器,而SpringMVC没有经过封装,本质上是一个Servlet。SpringMVC的主要处理流程通过配置的中央前端控制器Servlet(Di...原创 2019-03-25 23:01:37 · 222 阅读 · 0 评论 -
Spring的AOP(七)
Spring的AOP的简介Spring基于AspectJ框架的AOP的开发AOP其实有一些类似一个对于方法或者类的拦截器,调用方法的时候,都需要经过这个拦截器,需不需要在执行这个方法之前或者之后做点什么的,完成了这些操作之后,再去执行相关的方法。AOP开发中的术语连接点(Joinpoint)可以被拦截到的点,比如一个Dao类中的增删改查方法都可以被拦截,这些方法就可以称之为连接点。...原创 2019-03-19 01:52:07 · 280 阅读 · 0 评论 -
Spring的编程式事务管理与声明式事务管理(十三)
搭建Spring事务管理的环境要进行编程式事务管理或者是声明式事务管理开发,都需要先将开发环境搭建完毕。构造环境所需要到Jar包,包括Spring环境的基本包和搭建事务所需要的Jar包:我们模拟的是银行转账的事务环境,也就是转入转出金钱,还需要搭建一个数据库环境。建立一个User表,内含id,name,money三个字段:CREATE TABLE `account` ( `id`...原创 2019-03-22 00:24:32 · 249 阅读 · 0 评论 -
Spring的AOP入门开发与spring整合Junit(八)
在applicationContext.xml配置文件中引入AOP约束后,想要进行Spring的AOP开发,还需要导入三个jar包,两个Spring的包和一个AspectJ的包。spring-aop-5.1.5.RELEASEspring-aspects-5.1.5.RELEASEcom.springsource.org.aspectj.weaver-1.6.8.RELEASE首先定...原创 2019-03-19 16:13:17 · 243 阅读 · 0 评论 -
Spring的Bean的配置(二)
Bean相关的配置&amp;amp;lt; bean &amp;amp;gt;标签的id和name的属性配置id:使用了约束的唯一约束,并且里面不能出现特殊字符(如 / )name:没有使用约束中的唯一约束(理论上是可以重复的,但实际上不允许),里面可以出现特殊字符。例如:Spring和Struts1框架整合的时候,Struts1 将action 托管给Spring框架,带入字符, &amp;amp;lt; bean name=”..原创 2019-03-15 02:12:48 · 275 阅读 · 0 评论 -
关于JAVA中别的包无法引用缺省包(default package)类与IDEA动态清除无用导入包的问题
今天在实验中发现,IDEA中在新建包中无法引用src包下的类,查了半天终于发现问题:也就是于SQLDaoImpl包下的类无法直接引用src包下的类,也无法导入,后来发现问题所在、原因是:Java中其他包中无法引用缺省包(default package)中的类,使用反射可以因为默认包的类没有包名,在被有包结构的类引用时,会被当成本包内的类。即编译器会在SQLDaoImpl下查...原创 2018-12-17 23:46:08 · 6065 阅读 · 2 评论 -
Java笔记二:数据库连接池
数据库连接池由于数据库的连接对象创建工作,比较消耗性能。所以一开始先在内存中开辟一块空间(集合),先往池子里面放置多个连接对象。后面需要连接数据库的时候,直接从池子中获取,不需要自行创建连接对象。使用完毕后,归还连接对象,确保连接对象能循环利用。所建的MyDateSource类要继承DataSource接口(Sun公司针对数据库连接的定义的一套规范),并实现其方法。目前只实现其中...原创 2018-12-27 01:21:09 · 328 阅读 · 0 评论 -
Java笔记一:Java中的事务
事务Transaction:指的是一组操作,里面包含许多个单一逻辑。只要有一个逻辑没有执行成功,那么都算失败。所有的数据都回归到最初的状态(回滚)(个人理解:相当于创建了数据库的副本,先通过逻辑对副本进行操作,如果所有逻辑成功,提交事务,将副本数据覆盖至原数据库中。如果失败,则将副本数据回滚至初始,并不对原数据库数据产生影响。)存在的意义?为了确保逻辑的成功。例:银行转账Jav...原创 2018-12-21 16:56:03 · 313 阅读 · 0 评论 -
Java集合体系总结
由于不同的数据结构(数据的组织,存储方式),所以Java为我们提供了不同的集合。集合体系形成的原因,是由于各类集合的功能都是类似的,不断的向上提取,抽取共性,形成集合体系。有这样一个特点,最顶层包括有所有集合的共性,而最底层有最具体的实现。而根据它们不同的特点,大致可以分为两类:有序(存储和读取的顺序是一致的),允许重复,有整数索引。如:Collection,List,ArrayL...原创 2018-11-26 23:19:14 · 278 阅读 · 0 评论 -
集合的体系结构(ArrayList,Collection)
Java中的集合,ArrayList,实际上是一个特殊的长度可变数组,只能用来存储对象。 而在Java中还存在着集合的体系结构,由于不同的数据结构(数据的组织,存储方式),所以Java提供了不同的集合,但是不同 的集合的功能却是相似的,将其共性抽取出来,这就是体系结构形成的原因。 面对新的体系结构: 怎么学习:从最顶层开始学习,从根开始,因为最顶层包括了所有的共性。...原创 2018-11-20 14:27:00 · 417 阅读 · 0 评论 -
常用的正则表达式字符
正则表达式,就是一套独立规则规范,可以来匹配字符串。 Java的String类中,有一个方法,boolean matches(String regax) : 判断当前字符串是否匹配指定的正则表达式,如果匹配则返回true,否则返回false。 常用字符(规则):字符 x 字符 x (即是,a就是a,b就是b,什么字符就是什么字符) \\ 反斜线字符(...原创 2018-11-19 21:30:37 · 376 阅读 · 0 评论 -
Java的自动装箱和拆箱
Java中的自动装箱与拆箱,其实描述的是,从基本数据类型转换为包装类和从包装类转换为基本数据类型的动作。 例如,自动装箱://自动装箱Integer i = new Integer(10);//正常创建Integer对象,并且初始化Integer i = 10;//自动将int类型转换为Integer对象。正常基本数据类型赋值给对象将会报错。 自动拆箱://自动拆箱...原创 2018-11-19 20:51:59 · 220 阅读 · 0 评论 -
Java中int的包装类Integer转换int类型和String类型
Java中的包装类就是封装了8种基本数据型的类,并且为我们使用基本类型提供了一些复杂的方法和变量。 八种基本数据类型和其对应的包装类分别是 byte(Byte),short(Short),char(Character),int(Integer),long(long),float(Float),double(Double),boolean(Boolean)。 以常用的Integer为...原创 2018-11-19 16:46:48 · 2373 阅读 · 0 评论 -
集合ArrayList中的比较函数contains和indexOf
遍历集合,寻找集合中符合要求的元素。集合类ArrayList中提供了官方的比较方法,boolean contains(Object o); 和 int indexOf(Object o); 其两种方法都来源于继承的超级接口 List,而 List 又继承自集合根类接口 Collection,在 ArrayList 类中具体实现。 两种方法实际作用一样,只是返回值不同。使用方法...原创 2018-11-21 16:21:07 · 1280 阅读 · 0 评论 -
关于JAVA中字节输入输出流(OutputStream,InputStream)和字符输入输出流(FileWriter,FileReader)的总结
关于Java中的字节输入输出流和字符输入输出流,大致的做个学习总结。对于任何文件来说本质上都是由字节组成的,所以在Java中来说。字节流可以复制读取任何形式的文件,比如图片,音频等,而字符流我们一般用来读取文本形式的文件。那基本的字节流有:InputStream,OutputStream:(抽象类,是所有字节输入输出流的超类)FileInputStream,FileOutput...原创 2018-12-18 00:54:59 · 1120 阅读 · 0 评论 -
Java学习笔记三:DButils的通用数据库方法解析
DButils的通用数据库方法有两种,一种是用于增删改的Update方法,一种是用于查询的Query方法。根据其通用性的思想,对update方法和query方法的底层实现进行解析。根据DButils的两个方法思考,思路是:1.传入带占位符(?)的数据库语句,如:insert into bank values(null,?,?)。2.传入通用型的参数,并且传入的参数个数可变。Up...原创 2018-12-29 01:06:04 · 456 阅读 · 0 评论 -
Spring的IOC入门(一)
Spring的概述什么是SpringSpring是一个分层的SE/EEfull-stack(一站式)轻量级的框架Spring:SE/EE 开发的一站式框架一站式框架:有 EE 开发的每一层的解决方案 WEB层: Spring MVC Service层: Spring 的 Bean 管理,Spring 声明式事务 DAO层: Spring 的jdbc 模板,Spr...原创 2019-03-14 15:39:42 · 265 阅读 · 0 评论 -
SpringBoot:单元测试,equalTo()报错,无法导入包
在spring boot 做单元测试的时候,发现下面的代码中content().string(equalTo(“Hello world”))equalTo()方法报错,并且IDEA没有自动提示导入包。而解决方法是,需要手动的导入一个静态包import static org.hamcrest.Matchers.equalTo;测试单元完整的代码如下:@RunWith(Spring...原创 2019-03-09 00:53:11 · 2037 阅读 · 0 评论 -
Java学习笔记六:Http协议与Servlet
Http协议什么是协议双方在交互、通讯的时候,遵守的一种规范、规则http协议针对网络上的呵护短与服务器端在执行http请求的时候,遵守的一种规范。其实就是规定了客户端在访问服务器端的时候,要带上哪些东西,或者是服务器端在返回数据的时候,也要带上什么东西。版本1.0 版本 请求数据,服务器返回后,将会断开连接,重新连接需要再次的请求。1.1 版本 请求数据,...原创 2019-02-26 15:44:52 · 268 阅读 · 0 评论 -
JAVA笔记:HttpServletRequest& HttpServletResponse
HttpServletRequest这个对象封装了客户端提交过来的一切数据1.可以获得客户端的请求头信息//获取客户端的请求头信息 //得到一个枚举集合 Enumeration&amp;lt;String&amp;gt; parameterNames = request.getParameterNames(); while (parameterNames.hasMoreElements()){...原创 2019-03-05 15:04:13 · 224 阅读 · 0 评论 -
Java笔记:ServletContext的用法
ServletContext1.servletContext接口是Servlet中最大的一个接口,呈现了web应用的Servlet视图。2.ServletContext实例是通过 getServletContext()方法获得的,3.由于HttpServlet继承Servlet的关系GenericServlet类和HttpServlet类同时具有该方法。ServletContext 何时创...原创 2019-02-28 23:25:32 · 442 阅读 · 0 评论 -
Java学习笔记七:Servlet的配置和ServletContext的使用
Serlvet配置方式也就是xml serlvet配置 中 url-pattern 路径标签的配置1.全路径匹配以 / 开始 , /a 、/aa 、/aa/bblocalhost:8080/项目名称/aa/bb2.路径匹配,前半段匹配,* 其实是一个通配符,匹配任意文字以 / 开始,但是以 * 结束 /a/* 、/*3.以扩展名匹配,也就是把通配符写在前面写法...原创 2019-02-28 23:07:03 · 614 阅读 · 0 评论