自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 ValueStack接口和ActionContext接口&&CompoundRoot

1.OGNL上下文:(contextMap)就是一个Map2.OGNL上下文中的数据:(contextMap)利用OGNL获取其中数据的方式:根中的数据: :username是一个OGNL表达式。搜索根中所有对象的username属性,找到为止。其他contextMap中的数据: : 要使用#开头的字符明确:contextMap是何时产生的? 用户发出一次动作请求时,Struts2框架每次

2017-02-22 03:23:49 699

原创 Struts2文件的上传和下载

1.单文件上传:拦截器fileUpload完成的提供表单,表单的enctype必须是multipart/form-data<s:form enctype="multipart/form-data"> <s:textfield name="name" label="姓名"></s:textfield> <s:file name="photot" label="靓照"><s:file>

2017-02-22 02:22:47 199

原创 Struts2的拦截器

拦截器是Struts2中非常核心的功能,有很多常用的拦截器如:staticParam、params、servletConfig、modelDriven、conversionError、validation 等struts-default.xml文档中有一个package叫做struts-default,其中定义了很多的拦截器,我们使用的默认是defaultStack中定义的那些。明确:过滤器和拦截器

2017-02-22 01:54:08 202

原创 Struts2用户输入的校验

1. 认知校验工作量比较大 客户端校验:js 服务器端校验:代码 实际开发:客户端+服务器端校验2.Struts2中的校验前提:动作类继承ActionSupport 转换失败:都会转向一个name=input的逻辑视图2.1 编程式校验:代码中编写校验代码缺点:硬编码是最大的缺点 优点:对于验证可以做到更加精细化2.1.1 针对动作类中的所有动作方法进行校验:覆盖validate方法即可,

2017-02-19 13:29:20 314

原创 Struts2的参数封装

1. 静态注入静态参数注入是由一个叫做staticParams的拦截器完成的。public class Demo1Action extends ActionSupport{ private String name = "窦虎"; public String getName(){ return name; } public void setName(Str

2017-02-18 21:13:07 254

原创 Struts2的<result>结果

1.结果视图:局部和全局逻辑视图1.1 局部逻辑视图:只服务于当前的动作1.2 全局逻辑视图:服务于所有的动作//全局逻辑视图:所有动作没有name = success 的局部视图,到全局视图找更好的利用package的继承性组织全局视图:2.自定义结果类型:CAPTCHA图像2.1所有的结果类型都是直接或间接的实现了Result接口

2017-02-18 20:14:36 288

原创 Struts的动作类

1、动作类的编写方式一:动作类就是一个POJO(Plain Old Java Object) 特点:不继承任何的类或接口,不依赖其他的东西。public class HelloAction{ //动作方法: //特点:public,返回String;没有参数 public String execute(){ System.out.println("动作方法e

2017-02-15 13:54:04 172

原创 Struts.xml配置文件详解

1、package 元素:1.1 作用:方便分模块化开发1.2 属性:name:必须有。唯一。标识一个包, 好有一定的含义。extends:继承。一般要求必须继承struts-default的包。不继承该包,将无法使用struts2提供的一些核心功能。struts-default包在struts-default.xml中有配置,加载自己的struts.xml文件之前,框架就已经加载了struts-d

2017-02-15 12:33:48 6961

原创 第一个Struts2案例

1、index.jsp<body> <a href = "${pageContext.request.contextPath }/user/hello.action"> 访问第一个Struts2案例 </a></body>2、Struts.xml<struts> <package name="user" namespace="/user" extends="

2017-02-15 11:46:58 194

原创 Struts2开发环境搭建

1、下载开发包地址:http://struts.apache.org/ 下载完Struts2包解压之后: 2、拷贝Struts2运行的必要jar包小技巧: 拷贝Struts2发行包\apps\struts2-blank\WEB-INF\lib 文件夹中所有的jar包 struts2-core.jar : Struts2框架的核心类库 xwork-core.jar : Comma

2017-02-15 10:34:42 178

原创 Struts2入门

一、Struts2在开发中所处的位置MVC: M:模型。封装数据 V: 视图。展现结果。 C: 控制器。接收用户的请求,根据不同的请求执行不同的代码,转向不同的页面。二、Servlet VS FilterServlet可以作为控制器,Filter也可以作为控制器,而且功能比Servlet强大,强大在Filter能根据条件决定是否放行。 三、Stru

2017-02-15 10:18:05 211

原创 Lucene全文检索技术

一、什么是全文检索1.1 常见的数据类型结构化数据:类型固定并且是有限长度。例如数据库中的数据。 非结构化数据:类型不固定,格式不固定,长度不固定。例如磁盘上的文档,word、excel、pdf。1.2 结构化数据的查询可以使用标准的sql语句查询。查询简单。1.3 非结构化数据的查询实现方法: 1. 使用windows检索 2. 目测 3. 顺序扫描文件内容。(适用少量文档) 4. 大量

2017-02-11 10:40:10 350

原创 装饰者模式与代理模式

1. 装饰者模式1.1 小明今年四年级,他的期末考试成绩单出来了(语文 62 数学 65 体育 98 自然 63),需要老爸给他签字,于是他去找老爸了:public abstract class SchoolReport { public abstract void report(); public abstract void sign(String name);}pub

2017-01-13 15:29:01 260

原创 策略模式和命令模式的PK

策略模式它的意图是封装算法,它认为算法是一个整体,是相互独立的,并且是可以相互替换的,让算法的行为独立于客户。命令模式它的意图是解耦,它让执行命令者和发布命令者分离。实现一个压缩和解压缩的功能,这个功能有两种算法:一种是gzip,一种是zip。1. 策略模式的实现:代码:interface IReceiver{ public void zipExecute(); public voi

2017-01-12 15:58:10 518

原创 Linux环境下Redis的部署安装

1. 上传redis的安装包利用WinSCP可视化工具,将Windows环境下的redis.2.8.19.tar.gz安装包上传到虚拟机的Linux中。 2. 查看上传的文件3. 解压到当前目录tar -zxvf redis-2.8.19.tar.gz 解压到当前目录 4. 进入解压目录编译make,将.c编译成可执行.o文件5. 安装到指定目录[root@www redis-2.8.1

2017-01-11 17:32:18 2016 1

原创 设计模式之命令模式

1. 命令模式的引入1.1 有三个组分别为需求组、美工组、代码组,客户对开发的产品有些地方需要修改,修改对应的功能就要找到对应的组别。如下UML:具体代码实现:abstract class Group{ //甲乙双方式分开办公,所以甲方需要通过find方法来找到对应的组 public abstract void find(); //增加一个功能 public abstra

2017-01-11 16:23:40 179

原创 设计模式之策略模式

策略模式策略模式就是,有一组算法,将每个算法都封装起来,并且使它们之间可以互换。其实就是利用了面向对象的多态和继承。栗子: 话说刘备去东吴娶亲,诸葛亮给了赵云一组妙计(一共有三个),赵云应该关注的是问锦囊拿妙计就行了。妙计对应IStreategy,一个实现类对应一个策略锦囊对应Context ,用来存放妙计赵云关注的是context ,可以通过Context来自由切换妙计 看代码实现:I

2017-01-11 12:58:50 266

原创 类、抽象类、接口之间的关系

类是为了把对象转换成计算机和人都懂的一个表述,封装对象的属性和行为,面向对象就只要一个特征就行了,那就是封装。即,只要有封装这个特性,面向对象就成立。继承是为了减少代码而存在的,封装和继承之间有一个互斥的关系,那就是继承是打破封装的。抽象类就是为面向对象的特性中的继承而生的,它是一种特殊的类。抽象类也是为了描述对象的。接口和抽象类之间的关系:接口是为抽象行为而生的,是一种特殊的抽象类。接口

2017-01-10 14:07:17 527

原创 设计模式之模板方法模式

小思绪:设计模式讲究的就是一个平衡,应用架构讲究的也是平衡。有如下两个类//BMWCarpublic class BMWCar { public void start(){ System.out.println("宝马车启动!"); } public void stop(){ System.out.println("宝马车停止"); }

2017-01-10 13:25:57 179

原创 设计模式之单例模式

1.单例模式   即保证整个系统只有一个实例对象  1.1使用场景可有:     1.数据缓存对象     2.工具方法  1.2实现方式:    通过对构造函数私有化类实现对象单例2.单例的代码实现2.1实现方式一(懒汉式)Singletonpublic class Singleton { private static Singleton

2017-01-09 18:32:48 211

原创 Oracle的数据限定与排序

一、简单查询语句执行顺序<1>from , <2>where , <3>group by , <4>having , <5>order by , <6>selectwhere 限定from后面的表或试图,限定的选项只能是表的列或列单行函数或列表达式,where后不可以直接使用分组函数SQL> select empno,job from emp where sal>2000;SQL> sele

2016-12-27 08:38:39 500

原创 Oracle的分组函数

1.最重要的五个分组函数sum()avg()count()max()min()数值类型可以使用所有分组函数SQL> select sum(sal) sum,avg(sal) avg,max(sal) max,min(sal) min,count(*) count from emp; SUM AVG MAX MIN COUN

2016-12-26 08:16:19 917

原创 Oracle之Where子句中常用的运算符

1.运算符及优先级:算数运算符: *,/ , + 、-逻辑运算符: not,and,or比较运算符 单行比较运算: =,>,>=,<,<=,<>多行比较运算: >any,>all,SQL> select ename,job,sal,comm from emp where job = 'SALESMAN' or job = 'PRESIDENT' and sal > 1500;ENAM

2016-12-25 22:10:59 6907

原创 OCP认证之Oracle的数据类型

1.四种基本的常用数据类型字符型数值型日期型大对象型1.1字符型char 固定长度,最长2000个 varchar2 可变长字符,最长4000个,最小值是1 nchar/nvarchar2 nchar/nvarchar2类型的列使用国家字符集 raw/long raw 固定/可变长度的二进制数据长度,最大2G,可存

2016-12-25 12:21:07 658

原创 Oracle的SQL语言基础(二)

SQL的基本函数1.日期函数因为日期在Oracle中是以数字形式存储的,所以可以对它进行加减运算,计算是以天为单位。可以表示日期范围:(公元前)4712至(公元)9999时间格式1. SQL>select to_date('2016-12-21 00:00:00','YYYY-MM-DD HH24:MI:SS') from dual;TO_DATE('2016------

2016-12-21 16:26:40 352

原创 OCP认证之Oracle的SQL语言基础(一)

一、Oracle命令类别数据操纵语言(DML):select;insert;delete;update;merge数据定义语言(DDL):create;alter;drop;truncate事物控制语言(TCL):commit;rollback;savepoint;数据控制语言(DCL):grant;revoke二、SQL的基本函数2.1 单行函数与多行函数的区别:单行函数指一行数据输入

2016-12-21 08:44:08 326

空空如也

空空如也

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

TA关注的人

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