<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wangxin1248的博客]]></title><description><![CDATA[just do it!]]></description><link>https://blog.youkuaiyun.com/icarus_wang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; icarus_wang]]></copyright><item><title><![CDATA[Struts2学习（九）类型转换器]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/80209161</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/80209161</guid><author>icarus_wang</author><pubDate>Sat, 05 May 2018 20:52:38 +0800</pubDate><description><![CDATA[Struts2学习（九）类型转换器



类型转换器的背景和意义

类型转换是日常web开发中不可避免的一部分  
因为从表单提交到后台的数据都是以String为数据默认类型，而我们后台封装成对象时则可能有多种类型形式。 

按照以往方式来进行数据类型的转换是通过java的类型转换来实现的，具体的步骤为： 



Int age = Integer.valueOf(request.getParam...]]></description><category></category></item><item><title><![CDATA[ACM题目：连阴雨]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/79602291</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/79602291</guid><author>icarus_wang</author><pubDate>Sun, 18 Mar 2018 17:14:12 +0800</pubDate><description><![CDATA[ACM题目：连阴雨

要求

时限：1000ms 内存限制：10000K  总时限：3000ms



描述

因为连续的降雨，我们学校操场上出现了许多水坑，现在需要统计一共有多少个水坑。 
题目输入为一个N譓 (1 &amp;lt;= N &amp;lt;= 100; 1 &amp;lt;= M &amp;lt;= 100)的图，(‘W’) 代表积水，(‘.’)代表干燥。 
一处积水我们认为和它周围的八个方向相邻，相邻的积水构...]]></description><category></category></item><item><title><![CDATA[使用java设计实现顺序栈的基本结构]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/79561863</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/79561863</guid><author>icarus_wang</author><pubDate>Wed, 14 Mar 2018 23:06:56 +0800</pubDate><description><![CDATA[使用java设计实现顺序栈的基本结构，输入一个字符串来判断()以及[]是否匹配



基本栈结构介绍

顺序栈是一种FILO的结构，根据顺序栈的特性可以通过数组来实现顺序栈的相关操作。 
使用一个头指针来作为数组存储元素的标识，当存入元素时头指针++既实现压栈操作。 
当取出一个元素时，直接返回当前头指针所对应的元素，并将头指针指为空，指针–既实现出栈操作。 
获取栈顶元素时直接返回当前指针所指向...]]></description><category></category></item><item><title><![CDATA[常用正则表达式列举]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/53998103</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/53998103</guid><author>icarus_wang</author><pubDate>Tue, 03 Jan 2017 21:29:28 +0800</pubDate><description><![CDATA[验证数字：^[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]*$]]></description><category></category></item><item><title><![CDATA[Struts2学习（八）数据校验实现]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/53997632</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/53997632</guid><author>icarus_wang</author><pubDate>Tue, 03 Jan 2017 21:19:32 +0800</pubDate><description><![CDATA[我们的网站是要与用户进行交互的，其中最重要的交互方式便是数据的输入输出。但对于用户来说，并不是会按照我们所期望的形式来进行输入，这是就需要对用户输入的数据的格式进行校验，也就是所谓的数据校验。
其实数据校验意义就是保证进入后台的数据都是安全的！
在大多数情况下我们使用的是JavaScript来进行输入数据的校验，但是这种方式具有局限性
如图所示：我们可以通过使用url拼接的方式直接将数据传到]]></description><category></category></item><item><title><![CDATA[Struts2学习（七）令牌机制介绍]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/52089629</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/52089629</guid><author>icarus_wang</author><pubDate>Mon, 01 Aug 2016 22:23:14 +0800</pubDate><description><![CDATA[令牌（Token）则可以防止我们的一个表单被重复提交



当用户在提交表单的过程中如果遇到网络拥塞便会回退或者重复点击提交按钮，假如我们不对其做任何处理的话那么运行在服务器上的程序便会崩溃。所以Struts2为我们提供了一套解决表单重复提交的方法-----令牌机制
该方法的基本原理是：
       服务器端在处理到达的request之前，会将request中的Token值与保存在当]]></description><category></category></item><item><title><![CDATA[Struts2学习（六）国际化配置]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/52089515</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/52089515</guid><author>icarus_wang</author><pubDate>Mon, 01 Aug 2016 22:06:30 +0800</pubDate><description><![CDATA[国际化可以使我们的网站切换为中英或其他的各国语言
Struts2中的国际化就是
i18n ——
Internationalization（其实就是字母i和n之间有18个字母）
国际化的加入使得软件具备切换界面语言的功能同时也极大地简化国际化功能的实现。
 
国际化的实现
 
只需要通过一个简单的配置文件和一个Struts2的标签以及一个默认的i18n拦截器就可以实现了。
实现步骤]]></description><category></category></item><item><title><![CDATA[Struts2学习（五）拦截器介绍]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/52074759</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/52074759</guid><author>icarus_wang</author><pubDate>Sat, 30 Jul 2016 21:33:40 +0800</pubDate><description><![CDATA[什么是拦截器
 
拦截器（Interceptor）是Struts
 2的一个强有力的工具，有许多功能都是构建于它之上，如国际化、转换器，校验等。
拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码，也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式。
说到拦截器有一个东西不能]]></description><category></category></item><item><title><![CDATA[Struts2学习（四）OGNL标签介绍]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/52047751</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/52047751</guid><author>icarus_wang</author><pubDate>Wed, 27 Jul 2016 17:51:09 +0800</pubDate><description><![CDATA[OGNL是Object-Graph Navigation Language的缩写，全称为对象图导航语言，是一种功能强大的表达式语言，它通过简单一致的语法，可以任意存取对象的属性或者调用对象的方法，能够遍历整个对象的结构图，实现对象属性类型的转换等功能。从语言角度来说：它是一个功能强大的表达式语言，用来获取和设置java
 对象的属性 , 它旨在提供一个更高抽象度语法来对 java 对象图进行导航]]></description><category></category></item><item><title><![CDATA[Struts2学习（三）Web资源获取]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/52036718</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/52036718</guid><author>icarus_wang</author><pubDate>Tue, 26 Jul 2016 21:03:15 +0800</pubDate><description><![CDATA[主要介绍获取Web资源的四种方式

一、使用Struts2Aware拦截器
使用Struts2 Aware拦截器来获取web资源，首先必须是在Action中进行，然后还得实现ServletRequestAware,ServletResponseAware,ServletContextAware接口来获取对应的ServletRequest、ServletResponse、ServletCont]]></description><category></category></item><item><title><![CDATA[Struts2学习（二）数据封装机制]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/52015756</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/52015756</guid><author>icarus_wang</author><pubDate>Sun, 24 Jul 2016 19:51:29 +0800</pubDate><description><![CDATA[课程概要：
        
讲解Struts2中数据封装的三种方式以及具体实现原理
 
一、Struts2数据封装机制之属性驱动
 
我们先来看一下传统的servlet是如何处理从页面传递过来的数据的。
首先我们在表单发送了对应的数据到servlet中去





 


action="/loginservlet"
method="post">]]></description><category></category></item><item><title><![CDATA[Struts 2学习（一）Struts 2环境搭建及示例程序编写]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/51815273</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/51815273</guid><author>icarus_wang</author><pubDate>Sun, 03 Jul 2016 15:38:21 +0800</pubDate><description><![CDATA[在学习Struts2之前先来了解一下什么是Struts2：


Struts2是一个基于MVC设计模式的Web应用框架，它本质上相当于一个servlet，在MVC设计模式中，Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品，是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的S]]></description><category></category></item><item><title><![CDATA[Spring学习（二十五）Spring AOP之增强介绍]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/51737474</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/51737474</guid><author>icarus_wang</author><pubDate>Wed, 22 Jun 2016 23:16:25 +0800</pubDate><description><![CDATA[课程概要：

Spring AOP的基本概念Spring AOP的增强类型Spring AOP的前置增强Spring AOP的后置增强Spring AOP的环绕增强Spring AOP的异常抛出增强Spring AOP的引介增强

一.Spring AOP增强的基本概念
Spring当中的专业术语-advice，翻译成中文就是增强的意思。
所谓增强，其实就是向各个程序内部注入一些逻辑代]]></description><category></category></item><item><title><![CDATA[Spring学习（二十四）Spring实现AOP]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/51714547</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/51714547</guid><author>icarus_wang</author><pubDate>Sun, 19 Jun 2016 22:44:15 +0800</pubDate><description><![CDATA[Spring实现AOP主要有两种方式：
1.基于AspectJ注解
2.基于XML配置
接下来我们分别介绍如何使用这两种方式来实现AOP


一.使用注解方式实现AOP功能
利用Spring注解方式可以实现前置通知，后置通知，例外通知以及环绕通知等。
实现AOP功能步骤如下：

引入Jar文件配置AOP命名空间创建目标对象类创建切面在配置文件中配置切面创建入口类进行测试
接下]]></description><category></category></item><item><title><![CDATA[使用Java实现AOP]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/51684526</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/51684526</guid><author>icarus_wang</author><pubDate>Wed, 15 Jun 2016 18:56:03 +0800</pubDate><description><![CDATA[使用Java来实现AOP的功能，主要介绍两种实现方法


Proxy代理方法CGLib方法

1.Proxy代理

采用Proxy类方法，其基本流程为：主函数-->代理-->目标对象
对于Proxy类有一个使用前提：目标对象必须要实现接口
利用Proxy实现AOP的主要步骤如下：

创建接口创建接口实现类创建代理工厂类
接下来我们使用示例来演示
需求：学生类具有姓名属性，]]></description><category></category></item><item><title><![CDATA[AOP-面向切面的编程]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/51684401</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/51684401</guid><author>icarus_wang</author><pubDate>Wed, 15 Jun 2016 18:33:58 +0800</pubDate><description><![CDATA[课程概要：

AOP的简介AOP的示例AOP的术语AOP的实现者
一.AOP的简介
1.AOP的基本概念
AOP即Aspect-Oriented programming的缩写，中文意思是面向切面（或方面）编程。他是一种思想，可在不改变程序源码的情况下为程序添加额外的功能。
2.AOP的发展阶段

静态AOP：Aspect形式，通过特定的编译器，将实现后的Aspect编译并织入到系统]]></description><category></category></item><item><title><![CDATA[Java8新特性学习（一）Lambda表达式介绍]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/51674317</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/51674317</guid><author>icarus_wang</author><pubDate>Tue, 14 Jun 2016 20:23:55 +0800</pubDate><description><![CDATA[Lambda 表达式是在Java 8中引入的，并且成为了Java 8最大的特点。它使得功能性编程变得非常便利，极大地简化了开发工作。
接下来将通过实例演示的方式来介绍下Lambda表达式，本文内容引用自Lambda表达式的含义及使用
一.语法
一个Lambda表达式具有下面这样的语法特征。它由三个部分组成：第一部分为一个括号内用逗号分隔的形参，参数即函数式接口里面方法的参数；第二部分为一个箭]]></description><category></category></item><item><title><![CDATA[Spring学习（二十三）Spring表达式语言介绍]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/51660089</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/51660089</guid><author>icarus_wang</author><pubDate>Mon, 13 Jun 2016 19:55:43 +0800</pubDate><description><![CDATA[Spring表达式语言（Spring Expression Language）简称：SpEL
课程概要：

Spring表达式语言的入门介绍Spring表达式语言的操作范围Spring表达式语言的运算符Spring表达式语言的集合操作


一.Spring表达式语言入门级介绍


1.基本概述
       Spring表达式语言全称为“Spring Expression La]]></description><category></category></item><item><title><![CDATA[Spring学习（二十二） Bean配置的三种方式（XML、注解、Java类）介绍与对比]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/51649635</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/51649635</guid><author>icarus_wang</author><pubDate>Sun, 12 Jun 2016 23:24:27 +0800</pubDate><description><![CDATA[本文将详细介绍Spring Bean配置的三种不同方式的特点与使用条件。

主要包括：


基于XML的配置方式基于注解的配置方式基于Java类的配置方式

一.基于XML的配置
请看Spring学习（十二）Spring 的配置文件概述

二.基于注解的配置
Spring2.0开始引入基于注解的配置方式,即Bean的定义信息可以通过在Bean的实现类上标注注解实现。
具体关]]></description><category></category></item><item><title><![CDATA[Java注解（Annotation）介绍]]></title><link>https://blog.youkuaiyun.com/icarus_wang/article/details/51638504</link><guid>https://blog.youkuaiyun.com/icarus_wang/article/details/51638504</guid><author>icarus_wang</author><pubDate>Sat, 11 Jun 2016 22:41:41 +0800</pubDate><description><![CDATA[注解（Annotation）是Java5开始引入的新特性。他提供了一种安全的类似注释的机制，用来将任何的信息或元数据（metadata）与程序元素（类、方法、成员变量等）进行关联。
       注解将信息存储于Annotation的name=value这样的结构对中。注解并不会影响程序代码的执行，注解的添加与删除不会影响到程序的正常执行。另外，虽然一些注解通过java的反射、api在方法运行时]]></description><category></category></item></channel></rss>