05 2014 档案
摘要:wsimport命令介绍 在JDK的bin文件夹中,有一个wsimport.exe,这个工具依据wsdl文件生成相应的类文件,然后用这些类文件,就可以像调用本地的类一样调用WebService提供的方。该工具可以用于非Java的服务器,如:用C#编写的WebService,通过wsimport则生...
阅读全文
摘要:控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找。依赖注入应用比较广泛,我们这里...
阅读全文
摘要:一、预先需要掌握的知识(java虚拟机) 1)java虚拟机的方法区: java虚拟机有一个运行时数据区,这个数据区又被分为方法区,堆区和栈区,我们这里需要了解的主要是方法区。方法区的主要作用是存储被装载的类 的类型信息,当java虚拟机装载某个类型的时候,需要类装载器定位相应的class文...
阅读全文
摘要:1 再探ActionContext 我们知道,ActionContext是Action执行时的上下文,里面存放着Action在执行时需要用到的对象,也称之为广义值栈。Struts2在每次执行Action之前都会创建新的ActionContext,在同一个线程里ActionContext里面的属...
阅读全文
摘要:1OGNL概述 OGNL是对象图导航语言Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的属性,调用对象的方法,遍历整个对象的结构图,实现字段类型...
阅读全文
摘要:在值栈(前篇)我们学习了值栈的基本知识,接下来,来看看在程序中具体如何使用值栈。 1ActionContext的基本使用 1.1如何获取? 要获取ActionContext有两个基本的方法,如果在不能获取到ActionInvocation的地方,可以直接使用ActionContext一个静...
阅读全文
摘要:1值栈是什么? 简单的说:值栈是对应每一个请求对象的轻量级的内存数据中心。 Struts2中一个很激动人心的特性就是引入了值栈,在这里统一管理着数据,供Action、Result、Interceptor等Struts2的其他部分使用,这样一来,数据被集中管理起来而不会凌乱,大大方便了程序编写...
阅读全文
摘要:在实际开发中,一个常见的功能要求是:有很多操作都需要登录后才能操作,如果操作的时候还没有登录,那么通常情况下会要求跳转回到登录页面。 1)如何实现这样的功能呢? 在具体实现之前,先来考虑几个问题: (1)这个功能应该在哪里实现? 要实现登录检查的功能,很明显是在Action运行之前,就要...
阅读全文
摘要:Struts2自带的logger拦截器只是打印出了Action所对应的URL以及执行的方法名称,这对实际开发来说是肯定不够的。实际开发中为了调试方便,要记录的信息比较多,通常需要把这次请求相关的几乎所有信息都打印出来,比如:要访问哪个Action类要访问这个Action类的哪个方法打印出这次请求...
阅读全文
摘要:1)什么是自定义的拦截器 所谓自定义的拦截器,就是由我们自己定义并实现的拦截器,而不是由Struts2定义好的拦截器。虽然Struts2的预定义拦截器已经满足了大多数情况的需要。但在有些时候,我们可能会根据项目的实际需要而自定义一些拦截器,来实现一些特别的功能。 2)开发自定义拦截器 其实...
阅读全文
摘要:1)预定义拦截器 Struts2有默认的拦截器配置,也就是说,虽然我们没有主动去配置任何关于拦截器的东西,但是Struts2会使用默认引用的拦截器。由于Struts2的默认拦截器声明和引用都在这个Struts-default.xml里面,因此我们需要到这个文件的struts-default包里...
阅读全文
摘要:1)拦截器是什么? 拦截器(Interceptor)是Struts2最强大的特性之一,它是一种可以让你在Action执行之前和Result执行之后进行一些功能处理的机制。来回顾一下官方给出的Struts2系统架构图中关于拦截器的部分,如下图所示: 这个图清晰的描述出了拦截器的运行地位,就是用...
阅读全文
摘要:在Action中execute方法声明为:public String execute() throws Exception,这样,Action可以抛出任何Exception。 1)自己实现异常处理 我们还以helloWorldAction为例,在Action的execute方法中这样写:pu...
阅读全文
摘要:1)基本使用 名称为“chain”的ResultType,在struts-default.xml里的配置如下: chain是一种特殊的视图结果,用来将Action执行完之后链接到另一个Action中继续执行,新的Action使用上一个Action的上下文(ActionContext),数据也...
阅读全文
摘要:1)基本使用 名称为“redirect”的ResultType,在struts-default.xml里的配置如下: 通过配置可以看出,它对应的实现类是ServletRedirectResult。 这种Result同常也使用JSP作为视图技术。它包装的是javax.servlet.http...
阅读全文
摘要:1)基本使用 名称为“dispatcher”的ResultType,在struts-default.xml里的配置如下: 通过配置可以看出,它对应的实现类是ServletDispatcherResult。 如果采用JSP作为视图的实现技术,那么这个ResultType是最常用的。在这个Re...
阅读全文
摘要:简单的说,Result是Action执行完后返回的一个字符串,它指示了Action执行完成后,下一个页面在哪里。Result仅仅是个字符串,仅仅是用来指示下一个页面的,那么如何才能够到达下一个页面呢?下一个页面如何能正确地展示结果呢?这就该引出一个新概念——ResultType,所谓Result...
阅读全文
摘要:Struts2的Action的生命周期是:Struts2为每个请求都重新初始化一个Action的实例。可以稍微改造一下代码来验证一下。给HelloWorldAction加上一个public无参的构造方法,在里面输出一句话。大家都知道,一个Java类如果没有写构造方法,那么会有一个默认的publi...
阅读全文
摘要:在以前的学习中,元素的配置,都是用明确的配置,其name、class等属性都是一个明确的值。其实Struts2还支持class属性和method属性使用来自name属性的通配符。 1)接下来看看使用通配符的示例,如果我们使用以下配置: /s2impl/welcome.jsp 在...
阅读全文
摘要:元素可以把逻辑上相关的一组Action、Result、Intercepter等元素封装起来,形成一个独立的模块,package可以继承其他的package,也可以作为父包被其他的package继承,比如“”中,helloworld这个包就继承了struts-default这个包。 元素有如下属...
阅读全文
摘要:在Struts2中,Action可以不实现任何特殊的接口或者继承特殊的类,仅仅是一个POJO(Plain Old Java Object,简单的Java对象)就可以;也可以实现Xwork2中的Action接口;但是由于Xwork的Action接口非常简单,为程序员提供的帮助有限,因此,在实际开发...
阅读全文
摘要:1)前提条件 在讲解流程之前,假设我们已经建立了的一个名为strutsDeepen的web工程,该工程仅仅实现了简单的用户登陆与欢迎界面。具体的实现为:在web.xml中配置了Struts2的过滤器写了一个Action类,名称为loginAction在struts.xml中配置了这个Actio...
阅读全文
摘要:Struts2的官方文档里附带了Struts2的架构图,下面这张图上展示了Struts2的内部模块,以及它们的运行流程。 这张图上分了好多块,彼此之间相互联系,先浏览一下各块的名字,再留心一下运行图最下面的图例,分为四种颜色。橙色是Servlet Filters,过滤器链,所有的请求都要经过F...
阅读全文
摘要:1)FilterDispatcher Struts2的前端控制器,也是Struts2的MVC中的控制器部分。在实际开发中,只需要在web.xml中配置一次即可,如下所示: Struts2 org.apache.struts2.dispatcher.FilterD...
阅读全文
摘要:使用execAndWait拦截器可以在等待较长时间的后台处理中增加等待页面。实现如下图所示的效果: 1)struts.xml主要部分 1000 50 /wait.jsp /rs.jsp ...
阅读全文
摘要:标签一般和超链接一起使用,用于带多个参数。 " >测试连接 生成一个url地址,可以通过url标签制定的子元素向URL地址发送请求参数 指定请求地址 指定参数 例子: ...
阅读全文
摘要:语法:CHARINDEX (expressionToFind ,expressionToSearch [ ,start_location ] ) 参数: 1)expressionToFind 包含要查找的序列的字符表达式。expressionToFind最多包含 8000 个字符。 2)...
阅读全文
摘要:我们偶尔可能会看到上面这样的js注释代码,可是原因是什么呢? 答案: 原因是那些不支持 JavaScript 的浏览器会把脚本作为页面的内容来显示。为了防止这种情况发生,我们可以使用这样的 HTML 注释标签。注释行末尾的两个正斜杠是 JavaScript 的注释符号,它会阻止 Java...
阅读全文
摘要:Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的。 1)执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。 $(document...
阅读全文
摘要:1)/dev/null 垃圾桶黑洞装置与特殊写法 想象一下,如果我知道错误信息会发生,所以要将错误信息忽略掉而不显示或储存呢? 这个时候黑洞装置 /dev/null 就很重要了!这个 /dev/null 可以吃掉任何导向这个装置的信息喔!将上述的范例修订一下:范例四:承范例三,将错误的数据丢弃...
阅读全文
摘要:数据流重导向 (redirect) 由字面上的意思来看,好像就是将『数据给他传导到其他地方去』的样子? 没错~数据流重导向就是将某个命令运行后应该要出现在屏幕上的数据, 给他传输到其他的地方,例如文件或者是装置 (例如打印机之类的)!这玩意儿在 Linux 的文本模式底下可重要的! 尤其是如果我...
阅读全文
摘要:使用jquery的ajax出现error:readyState=4,status=500,ajax代码如下:$.ajax({ url : "../toBeFinMisManage/showToBeFinMisNum.action?&_dc=" ...
阅读全文
摘要:管线命令在 bash 的连续处理程序中是相当重要的!另外,在 log file 的分析当中也是相当重要的一环, 所以请特别留意!另外,在管线命令当中,常常会使用到前一个命令的 stdout 作为这次的 stdin , 某些命令需要用到文件名 (例如 tar) 来进行处理时,该 stdin 与 s...
阅读全文
摘要:xargs 是在做什么的呢?就以字面上的意义来看,x 是加减乘除的乘号,args 则是 arguments (参数) 的意思,所以说,这个玩意儿就是在产生某个命令的参数的意思!xargs 可以读入 stdin 的数据,并且以空格符或断行字符作为分辨,将 stdin 的数据分隔成为 argumen...
阅读全文
摘要:如果你有文件太大,导致一些携带式装置无法复制的问题,嘿嘿!找 split 就对了! 他可以帮你将一个大文件,依据文件大小或行数来分割,就可以将大文件分割成为小文件了! 快速又有效啊!真心不错~[root@www ~]# split [-bl] file PREFIX选项与参数:-b :后面可接...
阅读全文
摘要:这命令就是在将 [tab] 按键转成空格键:[root@www ~]# expand [-t] file选项与参数:-t :后面可以接数字。一般来说,一个 tab 按键可以用 8 个空格键取代。 我们也可以自行定义一个 [tab] 按键代表多少个字符呢!范例一:将 /etc/man....
阅读全文
摘要:这个 paste 就要比 join 简单多了!相对于 join 必须要比对两个文件的数据相关性, paste 就直接『将两行贴在一起,且中间以 [tab] 键隔开』而已!简单的使用方法:[root@www ~]# paste [-d] file1 file2选项与参数:-d :后面可以接分隔字...
阅读全文
摘要:join 看字面上的意义 (加入/参加) 就可以知道,他是在处理两个文件之间的数据,而且,主要是在处理『两个文件当中,有"相同数据"的那一行,才将他加在一起』的意思。我们利用底下的简单例子来说明:[root@www ~]# join [-ti12] file1 file2选项与参数:-t :j...
阅读全文
摘要:[root@www ~]# col [-xb]选项与参数:-x :将 tab 键转换成对等的空格键-b :过滤掉所有的控制字符,包括RLF(Reverse Line Feed)和HRF(Halt RLF)范例一:利用 cat -A 显示出所有特殊按键,最后以 col 将 [tab] 转成空白[r...
阅读全文
摘要:tr (traslate的缩写)可以用来删除一段信息当中的文字,或者是进行文字信息的替换![root@www ~]# tr [-ds] SET1 ...选项与参数:-d :删除信息当中的 SET1 这个字符串;-s :取代掉重复的字符!范例一:将 last 输出的信息中,所有的小写变成大写字...
阅读全文
摘要:想个简单的东西,我们知道 > 会将数据流整个传送给文件或装置,因此我们除非去读取该文件或装置, 否则就无法继续利用这个数据流。万一我想要将这个数据流的处理过程中将某段信息存下来,应该怎么做? 利用 tee 就可以~我们可以这样简单的看一下: tee 会同时将数据流分送到文件与屏幕 (scree...
阅读全文
摘要:如果我想要知道 /etc/man.config 这个文件里面有多少字?多少行?多少字符的话, 可以怎么做呢?其实可以利用 wc 这个命令来达成喔!他可以帮我们计算输出的信息的整体数据![root@www ~]# wc [-lwm]选项与参数:-l :仅列出行;-w :仅列出多少字(英文单字)...
阅读全文
摘要:很多时候,我们都会去计算一次数据里头的相同型态的数据总数,举例来说, 使用 last 可以查得这个月份有登陆主机者的身份。那么我可以针对每个使用者查出他们的总登陆次数吗? 此时就得要排序与计算之类的命令来辅助了!我们已经介绍过了排序命令sort,如果我排序完成了,想要将重复的数据仅列出一个显示,...
阅读全文
摘要:很多时候,我们都会去计算一次数据里头的相同型态的数据总数,举例来说, 使用 last 可以查得这个月份有登陆主机者的身份。那么我可以针对每个使用者查出他们的总登陆次数吗? 此时就得要排序与计算之类的命令来辅助了!底下我们介绍几个好用的排序与统计命令,首先是排序命令sort。[root@www ~...
阅读全文
摘要:什么是撷取命令啊?说穿了,就是将一段数据经过分析后,取出我们所想要的。或者是经由分析关键词,取得我们所想要的那一行! 不过,要注意的是,一般来说,撷取信息通常是针对『一行一行』来分析的, 并不是整篇信息分析的~底下我们介绍两个很常用的信息撷取命令之一grep命令: 刚刚的 cut 命令是将一行...
阅读全文
摘要:什么是撷取命令啊?说穿了,就是将一段数据经过分析后,取出我们所想要的。或者是经由分析关键词,取得我们所想要的那一行! 不过,要注意的是,一般来说,撷取信息通常是针对『一行一行』来分析的,并不是整篇信息分析的~底下我们介绍两个很常用的信息撷取命令之一cut命令: cut 不就是『切』吗?没错啦!...
阅读全文
摘要:方法名称:hover(over, out) 概述:当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。 参数: 1)overFunction 鼠标移到元素上要触发的函数 2)outFunction 鼠标移出元...
阅读全文