自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wangxin1248的博客

just do it!

  • 博客(69)
  • 资源 (1)
  • 收藏
  • 关注

原创 Struts2学习(九)类型转换器

Struts2学习(九)类型转换器类型转换器的背景和意义类型转换是日常web开发中不可避免的一部分 因为从表单提交到后台的数据都是以String为数据默认类型,而我们后台封装成对象时则可能有多种类型形式。 按照以往方式来进行数据类型的转换是通过java的类型转换来实现的,具体的步骤为: Int age = Integer.valueOf(request.getParam...

2018-05-05 20:52:38 582 1

原创 ACM题目:连阴雨

ACM题目:连阴雨要求时限:1000ms 内存限制:10000K 总时限:3000ms描述因为连续的降雨,我们学校操场上出现了许多水坑,现在需要统计一共有多少个水坑。 题目输入为一个N譓 (1 <= N <= 100; 1 <= M <= 100)的图,(‘W’) 代表积水,(‘.’)代表干燥。 一处积水我们认为和它周围的八个方向相邻,相邻的积水构...

2018-03-18 17:14:12 741

原创 使用java设计实现顺序栈的基本结构

使用java设计实现顺序栈的基本结构,输入一个字符串来判断()以及[]是否匹配基本栈结构介绍顺序栈是一种FILO的结构,根据顺序栈的特性可以通过数组来实现顺序栈的相关操作。 使用一个头指针来作为数组存储元素的标识,当存入元素时头指针++既实现压栈操作。 当取出一个元素时,直接返回当前头指针所对应的元素,并将头指针指为空,指针–既实现出栈操作。 获取栈顶元素时直接返回当前指针所指向...

2018-03-14 23:06:56 2479 2

原创 常用正则表达式列举

验证数字:^[0-9]*$验证n位的数字:^\d{n}$验证至少n位数字:^\d{n,}$验证m-n位的数字:^\d{m,n}$验证零和非零开头的数字:^(0|[1-9][0-9]*)$验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$验证非零的正整数:^\+?[1-9][0-9]*$

2017-01-03 21:29:28 1020

原创 Struts2学习(八)数据校验实现

我们的网站是要与用户进行交互的,其中最重要的交互方式便是数据的输入输出。但对于用户来说,并不是会按照我们所期望的形式来进行输入,这是就需要对用户输入的数据的格式进行校验,也就是所谓的数据校验。其实数据校验意义就是保证进入后台的数据都是安全的!在大多数情况下我们使用的是JavaScript来进行输入数据的校验,但是这种方式具有局限性如图所示:我们可以通过使用url拼接的方式直接将数据传到

2017-01-03 21:19:32 1012

原创 Struts2学习(七)令牌机制介绍

令牌(Token)则可以防止我们的一个表单被重复提交当用户在提交表单的过程中如果遇到网络拥塞便会回退或者重复点击提交按钮,假如我们不对其做任何处理的话那么运行在服务器上的程序便会崩溃。所以Struts2为我们提供了一套解决表单重复提交的方法-----令牌机制该方法的基本原理是:       服务器端在处理到达的request之前,会将request中的Token值与保存在当

2016-08-01 22:23:14 2665

原创 Struts2学习(六)国际化配置

国际化可以使我们的网站切换为中英或其他的各国语言Struts2中的国际化就是i18n ——Internationalization(其实就是字母i和n之间有18个字母)国际化的加入使得软件具备切换界面语言的功能同时也极大地简化国际化功能的实现。 国际化的实现 只需要通过一个简单的配置文件和一个Struts2的标签以及一个默认的i18n拦截器就可以实现了。实现步骤

2016-08-01 22:06:30 782

原创 Struts2学习(五)拦截器介绍

什么是拦截器 拦截器(Interceptor)是Struts 2的一个强有力的工具,有许多功能都是构建于它之上,如国际化、转换器,校验等。拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式。说到拦截器有一个东西不能

2016-07-30 21:33:40 1235 1

原创 Struts2学习(四)OGNL标签介绍

OGNL是Object-Graph Navigation Language的缩写,全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的属性或者调用对象的方法,能够遍历整个对象的结构图,实现对象属性类型的转换等功能。从语言角度来说:它是一个功能强大的表达式语言,用来获取和设置java 对象的属性 , 它旨在提供一个更高抽象度语法来对 java 对象图进行导航

2016-07-27 17:51:09 1477

原创 Struts2学习(三)Web资源获取

主要介绍获取Web资源的四种方式一、使用Struts2Aware拦截器使用Struts2 Aware拦截器来获取web资源,首先必须是在Action中进行,然后还得实现ServletRequestAware,ServletResponseAware,ServletContextAware接口来获取对应的ServletRequest、ServletResponse、ServletCont

2016-07-26 21:03:15 488

原创 Struts2学习(二)数据封装机制

课程概要:        讲解Struts2中数据封装的三种方式以及具体实现原理 一、Struts2数据封装机制之属性驱动 我们先来看一下传统的servlet是如何处理从页面传递过来的数据的。首先我们在表单发送了对应的数据到servlet中去 action="/loginservlet"method="post">

2016-07-24 19:51:29 4430 3

原创 Struts 2学习(一)Struts 2环境搭建及示例程序编写

在学习Struts2之前先来了解一下什么是Struts2:Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的S

2016-07-03 15:38:21 4029

原创 Spring学习(二十五)Spring AOP之增强介绍

课程概要:Spring AOP的基本概念Spring AOP的增强类型Spring AOP的前置增强Spring AOP的后置增强Spring AOP的环绕增强Spring AOP的异常抛出增强Spring AOP的引介增强一.Spring AOP增强的基本概念Spring当中的专业术语-advice,翻译成中文就是增强的意思。所谓增强,其实就是向各个程序内部注入一些逻辑代

2016-06-22 23:16:25 10370

原创 Spring学习(二十四)Spring实现AOP

Spring实现AOP主要有两种方式:1.基于AspectJ注解2.基于XML配置接下来我们分别介绍如何使用这两种方式来实现AOP一.使用注解方式实现AOP功能利用Spring注解方式可以实现前置通知,后置通知,例外通知以及环绕通知等。实现AOP功能步骤如下:引入Jar文件配置AOP命名空间创建目标对象类创建切面在配置文件中配置切面创建入口类进行测试接下

2016-06-19 22:44:15 1182

原创 使用Java实现AOP

使用Java来实现AOP的功能,主要介绍两种实现方法Proxy代理方法CGLib方法1.Proxy代理采用Proxy类方法,其基本流程为:主函数-->代理-->目标对象对于Proxy类有一个使用前提:目标对象必须要实现接口利用Proxy实现AOP的主要步骤如下:创建接口创建接口实现类创建代理工厂类接下来我们使用示例来演示需求:学生类具有姓名属性,

2016-06-15 18:56:03 6290 1

原创 AOP-面向切面的编程

课程概要:AOP的简介AOP的示例AOP的术语AOP的实现者一.AOP的简介1.AOP的基本概念AOP即Aspect-Oriented programming的缩写,中文意思是面向切面(或方面)编程。他是一种思想,可在不改变程序源码的情况下为程序添加额外的功能。2.AOP的发展阶段静态AOP:Aspect形式,通过特定的编译器,将实现后的Aspect编译并织入到系统

2016-06-15 18:33:58 1592

原创 Java8新特性学习(一)Lambda表达式介绍

Lambda 表达式是在Java 8中引入的,并且成为了Java 8最大的特点。它使得功能性编程变得非常便利,极大地简化了开发工作。接下来将通过实例演示的方式来介绍下Lambda表达式,本文内容引用自Lambda表达式的含义及使用一.语法一个Lambda表达式具有下面这样的语法特征。它由三个部分组成:第一部分为一个括号内用逗号分隔的形参,参数即函数式接口里面方法的参数;第二部分为一个箭

2016-06-14 20:23:55 812

原创 Spring学习(二十三)Spring表达式语言介绍

Spring表达式语言(Spring Expression Language)简称:SpEL课程概要:Spring表达式语言的入门介绍Spring表达式语言的操作范围Spring表达式语言的运算符Spring表达式语言的集合操作一.Spring表达式语言入门级介绍1.基本概述       Spring表达式语言全称为“Spring Expression La

2016-06-13 19:55:43 5938 1

原创 Spring学习(二十二) Bean配置的三种方式(XML、注解、Java类)介绍与对比

本文将详细介绍Spring Bean配置的三种不同方式的特点与使用条件。主要包括:基于XML的配置方式基于注解的配置方式基于Java类的配置方式一.基于XML的配置请看Spring学习(十二)Spring 的配置文件概述二.基于注解的配置Spring2.0开始引入基于注解的配置方式,即Bean的定义信息可以通过在Bean的实现类上标注注解实现。具体关

2016-06-12 23:24:27 36237 8

原创 Java注解(Annotation)介绍

注解(Annotation)是Java5开始引入的新特性。他提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。       注解将信息存储于Annotation的name=value这样的结构对中。注解并不会影响程序代码的执行,注解的添加与删除不会影响到程序的正常执行。另外,虽然一些注解通过java的反射、api在方法运行时

2016-06-11 22:41:41 1957

原创 Spring学习(二十一)Spring自动装配Bean的属性

首先我们来看一下以前我们是如何手动装配一个bean的:先看一段java程序:public class Customer{ private Person person; public void setPerson(Person person) { this.person = person; }}public class Person {……}

2016-06-11 22:33:48 1058

原创 Spring学习(二十)Bean 的依赖关系介绍

在Spring容器中,两个Bean之间 除了注入关系外,还存在继承、依赖、引用 三种关系:继承关系:在Spring容器当中允许使用abstract标签来定义一个父bean,parent标签来定义一个子bean。子bean将自动继承父bean的配置信息。依赖关系:Spring允许用户通过depends-on标签来设定bean的前置依赖bean,前置依赖的bean会在本bean实例化之前就

2016-06-05 10:44:43 5983

原创 Spring学习(十八)Bean 的三种依赖注入方式介绍

依赖注入:让调用类对某一接口实现类的依赖关系由第三方注入,以移除调用类对某一接口实现类的依赖。接下来将详细的向大家介绍Spring容器支持的三种依赖注入的方式以及具体配置方法:•    属性注入方法•    构造函数注入方法•    工厂方法注入方法一.属性注入属性注入即通过setXXX()方法注入Bean的属性值或者依赖对象,由于属性注入方式具有可选择性和灵活高的

2016-06-05 10:40:16 20417 3

原创 Spring学习(十九)Bean 的方法注入和方法替换介绍

lookup方法注入:指容器能够重写容器中bean的抽象或者具体方法,从而返回查找容器中其他bean的结果。Spring IoC容器拥有复写bean方法的能力,这项功能主要归功与cglib这个类包,cglib类包可以在运行时动态的操作class字节码,他能够为Bean动态的创建子类或者实现类。所以使用lookup方法注入的时候必须在项目中加入cglib类包。那么现在我们定义

2016-06-05 10:39:43 3500

原创 Spring中的循环依赖问题介绍及解决方法

Spring容器能顺利的实例化以构造函数注入方式配置的bean有一个前提:即bean构造函数入参引用的对象必须已经准备就绪。那么如果两个bean都采用构造函数注入,并且都通过构造函数入参引用了对方。就会发生类似与线程死锁的循环依赖问题。那么接下来我们看一个发生循环依赖问题的例子:public class Car{ private String brand; privat

2016-06-05 10:32:14 5601 3

原创 Spring学习(十七)Spring 参数注入方式介绍

在Spring 的配置文件中,用户可以通过Bean的property元素进行参数注入。使用property,不但可以将String、int等字面值注入到Bean中,还可以将集合、Map等类型的注入到Bean中,此外还可以注入配置文件中其他定义的Bean。在这里,注入参数的类型主要包含以下几种:1.字面值一般是指可用字符串表示的值,这些值可以通过元素标签进行注入。在默认情况下,基本数

2016-06-05 10:19:58 9381

原创 Spring学习(十六)Spring Bean内容模型介绍

本次主要介绍Spring Bean的内容模型,通过对内容模型的了解使开发者能够对Spring Bean有一个全局的认识。关于Spring Bean的详细信息可以参考spring-beans.xsd这个文件。在这里,我们只介绍一些常用的元素。beans是spring-beans.xsd的根节点,下图给出了beans的内容模型:先介绍下beans节点中的属性1.defa

2016-06-05 10:03:05 1246

原创 Spring学习(十五)Spring Bean 的5种作用域介绍

Spring Bean 中所说的作用域,在配置文件中即是“scope”在面向对象程序设计中作用域一般指对象或变量之间的可见范围。而在Spring容器中是指其创建的Bean对象相对于其他Bean对象的请求可见范围。在Spring 容器当中,一共提供了5种作用域类型,在配置文件中,通过属性scope来设置bean的作用域范围。1.    singleton:当Bean的

2016-06-04 23:32:25 18219 2

原创 Spring学习(十四)Spring Bean 的3种实例化方法介绍

Spring IoC容器如何实例化Bean呢?传统应用程序可以通过new和反射方式进行实例化Bean。而Spring IoC 容器则需要根据Bean定义里的配置元数据使用反射机制来创建Bean。在Spring IoC 容器中主要有以下几种创建Bean实例的方式:一.构造器实例化构造器实例化 Bean 是最简单的方式,Spring IoC容器既能使用默认空构造器也能使用有

2016-06-04 23:20:20 4161 1

原创 Spring学习(十三)Spring Bean 的命名方式介绍

一般情况下,在配置一个Bean时需要为其指定一个id属性作为bean的名称。id在IoC容器中必须是唯一的,此外id的命名需要满足xml对id的命名规范。       在实际情况中,id命名约束并不会给我们带来影响。但是如果用户确实希望用到一些特殊字符来对bean进行命名,那么可以使用bean的name属性来进行命名,name属性没有字符上的限制,几乎可以使用任何字符。       每个B

2016-06-04 23:11:41 4361

原创 Spring学习(十二)Spring 的配置文件概述

我们应该怎么理解和认识Spring的配置文件呢?        其实,Spring的配置文件是Spring容器对Bean进行生产以及关系注入的图纸,他是Spring的基础。如果我们没有配置文件的话,则Spring的容器将无从谈起。        Spring 的配置文件是用于指导 Spring 工厂进行 Bean 的生产、依赖关系注入及 Bean 实例分发的“图纸”, J2EE 程序员必须

2016-06-01 22:59:57 7796 1

原创 Spring学习(十一)Bean生命周期介绍

Spring容器中的Bean拥有明确的生命周期,由多个特定的生命阶段组成,每个生命阶段都允许外界对Bean施加控制。在Spring中,我们从Bean的作用范围和实例化Bean时所经历的一系列阶段来描述Bean的生命周期:接下来,我们从BeanFactory和ApplicationContext两个方面来分析Bean的生命周期:一.如下通过一个图形化的方式进行描述BeanFactory中的B

2016-05-29 12:58:24 939

原创 Spring学习(十)BeanFactory VS ApplicationContext

BeanFactory是Spring框架最核心的接口,它提供了高级IoC的配置机制。ApplicationContext建立在BeanFactory基础之上,提供了更多面向应用的功能,它提供了国际化支持和框架事件体系,更易于创建实际应用一般成BeanFactory为IoC容器,而称ApplicationContext为应用上下文。但有时为了方便,我们也将其成为Spring容器。Sp

2016-05-29 12:58:02 1305

原创 Spring学习(九)资源访问接口Resource

JDK所提供的访问资源的类并不能很好的满足各种底层资源的访问需求,比如缺少从类路径或者从web容器的上下文中获取资源的操作类。因此,Spring设计了一个Resource接口,它为应用提供了更强大的访问底层资源的能力。该接口拥有对应不同资源类型的实现类。那么先来了解一下resource资源中的主要方法:1.    boolean exists():判断资源是否存在2.    b

2016-05-29 12:57:22 1362

原创 Spring学习(八)Spring IoC容器原理分析

在Spring中,通过IOC可以将实现类、参数信息等配置在其对应的配置文件中,那么当需要更改实现类或参数信息时,只需要修改配置文件即可,我们还可以对某对象所需要的其它对象进行注入,这种注入都是在配置文件中做的。Spring的IOC的实现原理利用的就是Java的反射机制,Spring还充当了工厂的角色,我们不需要自己建立工厂类,Spring的工厂类会帮我们完成配置文件的读取、利用反射机制注入对象

2016-05-29 12:56:37 1215 1

原创 JAVA反射机制深入学习(三)ClassLoader类装载器介绍

接下来介绍下JAVA中非常重要的一个类ClassLoader(类装载器)类装载器就是寻找类的字节码文件并构造出类在JVM内部表示的对象组件。主要工作由ClassLoader及其子类负责,ClassLoader是一个重要的Java运行时系统组件,它负责在运行时查找和装入Class字节码文件。在JAVA中java虚拟机把一个类装入到java虚拟机当中需要经过以下的步骤:1.装载:查

2016-05-29 12:55:49 1753

原创 JAVA反射机制深入学习(二)实例演示JAVA反射机制的应用

编写一个简单示例开始探访Java反射机制的征程,通过比较传统方法以及反射机制创建类实例的不同,来介绍Java反射机制的原理首先创建一个Bean :Car类,拥有两个构造函数,一个方法以及三个属性public class Car { private String brand; private String color; private int maxSpeed; //1.默认构

2016-05-27 23:54:10 827

原创 JAVA反射机制深入学习(一)Java反射概念解析

首先先来看一下JAVA反射的概念:JAVA反射(Reflection):在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java的反射机制是java被称为动态语言的一个关键性质。那么反射机制所能实现的功能有:1.    只要给定类的全名,即可

2016-05-27 23:25:38 1831

原创 Spring学习(七)深入理解Spring IoC容器

IoC:他是Spring容器的内核,AOP、声明式事务等功能都依赖于此功能,它涉及代码解耦,设计模式、代码优化等问题的考量。

2016-05-26 23:35:20 2875 4

原创 Spring学习(六)实例演示Spring的使用

本次我们要编写一个输出问候信息的小例子:当一个人在中国的时候,使用中国话向大家问好。当他去国外旅游时就需要用英语向大家问好。首先我们得了解创建一个基于Spring IOC的小程序的具体步骤如下:1)    建立Spring工程2)    编写Java文件3)    编写配置文件4)    运行示例工程新建一个Spring工程可以参考我之前的 Spring

2016-05-25 23:07:59 1850 3

利用Java反射实现万能DAO

利用Java的反射机制实现的万能DAO工具类,包含对应的测试代码。具体功能包括:单表查询,多表查询,模糊查询,添加,修改,删除等。利用万能DAO可以对数据库中任意表进行操作,只需一个DAO类即可完成。阅读本代码需要掌握Java反射机制以及数据库DAO类基础。

2016-06-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除