摘要: 通过对struts2的学习,对于interceptor中的excludeMethods与includeMethods的理解: 针对MethodFilterInterceptor: excludeMethods表示排除指定的方法,即不对标记为excludeMethods的方法进行拦截, include 阅读全文
posted @ 2013-04-10 13:47 jack_ou 阅读(7401) 评论(0) 推荐(0) 编辑
摘要: 1、此方法已过时,现在可替换的实现方法有 request.getSession().getServletContext().getRealPath("/") 在Servlet 里用this.getServletContext().getRealPath("/");获得绝对路径。 struts里用this.getServlet().getServletContext().getRealPath("/")获得绝对路径。相关介绍: 在目前最新的Java Servlet API 2.1版本中,不赞成使用request.getRealPath( 阅读全文
posted @ 2013-04-09 22:23 jack_ou 阅读(21814) 评论(0) 推荐(2) 编辑
摘要: 延长action中属性的生命周期,包括自定义属性,以便在jsp页面中进行访问,让actionContextcleanup过滤器来清除属性,不让action自己清除。为了使用WebWork,我们只需要在web.xml配置FilterDispatcher一个过滤器即可,阅读一下FilterDispatcher的JavaDoc和源码,我们可以看到它调用了:finally{ActionContextCleanUp.cleanUp(req);} 在ActionContextCleanUp中,有这样的代码:req.setAttribute(CLEANUP_PRESENT, Boolean.TRUE); 如 阅读全文
posted @ 2013-04-09 21:40 jack_ou 阅读(896) 评论(1) 推荐(0) 编辑
摘要: Struts2的工作原理 上图来源于Struts2官方站点,是Struts 2 的整体结构。 一个请求在Struts2框架中的处理大概分为以下几个步骤(可查看源码:https://github.com/apache/struts):1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 阅读全文
posted @ 2013-04-09 21:39 jack_ou 阅读(67547) 评论(1) 推荐(9) 编辑
摘要: FilterDispatcher是早期struts2的过滤器,后期的都用StrutsPrepareAndExecuteFilter了,如2.1.6、2.1.8。StrutsPrepareAndExecuteFilter名字已经很能说明问题了,prepare与execute,前者表示准备,可以说是指filter中的init方法,即配制的导入;后者表示进行过滤,指doFilter方法,即将request请求,转发给对应的action去处理。FilterDispatcher是struts2.0.x到2.1.2版本的核心过滤器.! StrutsPrepareAndExecuteFilter是自2.1. 阅读全文
posted @ 2013-04-09 21:28 jack_ou 阅读(595) 评论(0) 推荐(0) 编辑
摘要: serialVersionUID作用: 序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。有两种生成方式: 一个是默认的1L,比如:private static final long serialVersionUID = 1L; 一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如: private static final long serialVersionUID = xxxxL;当你一个类实现了Serializable接口,如果没有定义serialVersionUID,Eclipse会提供这个 提示功能告诉你去定义 。在Eclipse中点击类中. 阅读全文
posted @ 2013-04-09 17:50 jack_ou 阅读(1100) 评论(0) 推荐(1) 编辑
摘要: abstractclass和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstractclass和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstractclass和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解、对于设计意图的理解是否正确、合理。本文将对它们之间的区别进行一番剖析,试图给开发者提供一个在二者之间进行选择的依据。理解抽象类abstractcl 阅读全文
posted @ 2013-04-09 17:48 jack_ou 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 如果说是Table把我带入了网站设计的大学的话,那么DIV+CSS则把我带入了Web设计的殿堂。虽然现在的Web设计者都在推崇DIV+CSS的网站设计,但不落入盲目应用的队列,灵活运用Table的特色来做一些前台的功能效果的话,那可能会让你的工作进程大大的缩短,并减少很多不必要的冗余CSS代码。Table表格本身就是Html网站设计中最基本的组成部分,还记得刚开始在FrontPage里欣喜地用一个Table框画出的简单页面吗?那时的我们就已经在为Table的无所不能而折服了。而在现在的DIV+CSS页面设计中,很多人将Table的概念抛之脑后,统统使用DIV+CSS来实现所有页面排版,从而,在 阅读全文
posted @ 2013-04-09 16:42 jack_ou 阅读(1237) 评论(0) 推荐(0) 编辑
摘要: 单独使用<s:if>标签<s:if test="%{#variable=='String 1'}"> This is String 1</s:if>也可以和<s:elseif>标签一起使用:<s:if>+<s:elseif>标签<s:if test="%{#variable=='String 1'}"> This is String 1</s:if><s:elseif test="%{#variable== 阅读全文
posted @ 2013-04-09 15:51 jack_ou 阅读(5789) 评论(0) 推荐(0) 编辑
摘要: struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几个简单的demo:s:iterator 标签有3个属性: value:被迭代的集合 id :指定集合里面的元素的id status 迭代元素的索引1:jsp页面定义元素写法 数组或list<s:iterator value="{'1','2','3','4','5'}" id='number'> <s:property value='number'/>A 阅读全文
posted @ 2013-04-09 15:28 jack_ou 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 转载来源:http://apps.hi.baidu.com/share/detail/6092406json2.js的初步学习与了解1.)该js的下载地址是:http://www.json.org/json2.js2.)在页面中引用该脚本:<script type="text/javascript" src="js/json2.js"></script>3.)示例演示一://直接声明json数据结构 var myJSONObject = {"bindings": [ {"ircEvent": 阅读全文
posted @ 2013-04-09 00:55 jack_ou 阅读(208) 评论(0) 推荐(0) 编辑
摘要: js是一门很强大的语言,灵活,方便。 目前我接触到的语言当中,从语法角度上讲,只有 Ruby 比它更爽。不过我接触的动态语言只有: js ruby python flash的as 简单的几门, 应该算是井底之蛙之见。js 语法成分简单,没有 ruby 语言复杂。所以有时候我觉得她更干净(Ruby Fans 不要攻击我哦,我也是很爱很爱很爱Ruby的)!Prototype.js 无疑是 js的漂亮之作,从它身上应该可以学到一些东西。如果你用 js 在页面仅仅能写出 if, alert等简单的验证代码,或者想多了解一下Js, 那么此文可能对你有帮助。好了,开始吧。现在我突然想起了 Thinking 阅读全文
posted @ 2013-04-09 00:54 jack_ou 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 基于json-lib.jar包Json实例程序1.JSONObject to DynaBeanString json = "{name=\"json\",bool:true,int:1,double:2.2}";JSONObject jsonObject = JSONObject.fromObjec... 阅读全文
posted @ 2013-04-09 00:35 jack_ou 阅读(3107) 评论(0) 推荐(0) 编辑
摘要: activation.jar:与javaMail有关的jar包,使用javaMail时应与mail.jar一起加入到lib中去,具体负责mail的数据源和类型等ajaxtags-1.2-beta3.jar:ajax提供的标签库,使用户能像使用jsp普通标签一样使用ajaxant.jar和antlr.jar(可以删去):的是ant编译用的包,在工程中不用添加asm.jar:Hebernate的包,Hibernate在运行时使用这个代码生成库增强类(与java反射机制联合使用).ASM字节码库,cglib.jar包依赖的包。必需的jar包。axis-ant.jar:是Axis为支持Ant构建,提供 阅读全文
posted @ 2013-04-09 00:31 jack_ou 阅读(1133) 评论(0) 推荐(0) 编辑
摘要: 一.什么是cookies? 大家都知道,浏览器与WEB服务器之间是使用HTTP协议进行通信的,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接。因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待,这样的不好之处可想而知。为了弥补这个缺陷,Netscape开发出了cookie这个有效的工具来保存某个用户的识别信息,因此人们昵称为“小甜饼”。cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段:Netscape Navigator使用一个名为cookies.txt本地文件保存从所有站点接收的Cookie. 阅读全文
posted @ 2013-04-08 13:55 jack_ou 阅读(380) 评论(0) 推荐(0) 编辑
摘要: Struts2 资源配置文件国际化Struts2资源文件的命名规范:basename_language_country.propertiesStruts2国际化如果系统同时存在资源文件、类文件,系统将以类文件为主,而不会调用资源文件。对于简体中文的Locale,ResourceBundle搜索资源的顺序是:(1)baseName_zh_CN.class(2)baseName_zh_CN.properties(3)baseName_zh.class(4)baseName_zh.properties(5)baseName.class(6)baseName.propertiesStruts2资源文件 阅读全文
posted @ 2013-04-02 23:33 jack_ou 阅读(605) 评论(0) 推荐(0) 编辑
摘要: 1.过滤器 Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Res 阅读全文
posted @ 2013-04-02 23:30 jack_ou 阅读(728) 评论(0) 推荐(0) 编辑
摘要: package abchat.org.security;import java.security.*;import javax.crypto.*;import javax.crypto.spec.*;/**** @author GuoXiaoHe*/public class ABchatRSA { /** Creates a new instance of ABchatRSA */ /*构建需要的函数变量*/ private KeyPairGenerator kePaGen=null; //秘密钥匙生成器; private KeyPair keyPair=null; //钥匙对,公尺 和米尺. 阅读全文
posted @ 2013-04-02 11:26 jack_ou 阅读(658) 评论(0) 推荐(0) 编辑
摘要: Eclipse常用的插件安装方法有两种:1.在线安装;2.本地直接复制黏贴,把features和plugins黏贴到Eclipse 的features和plugins文件夹;在线安装的缺点就是网络问题;本地复制黏贴的缺点就是删除麻烦,不灵活;这里介绍的是扩展本地方法,步骤如下:1.在Eclipse安装主目录创建一个links文件夹;2.在links文件夹下创建一个XX.link文件;3.在这个文件内添加 path= <pluginpath> 这里将<pluginpath>为 D:\\EclipsePlugins4.在D:\\EclipsePlugins下创建一个ecli 阅读全文
posted @ 2013-04-02 10:31 jack_ou 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 这几天一直做安全登录,网上查了好多资料,不尽如意。具体实现思路如下:1。服务端生成公钥与私钥,保存。2。客户端在请求到登录页面后,随机生成一字符串。3。后此随机字符串作为密钥加密密码,再用从服务端获取到的公钥加密生成的随机字符串。4。将此两段密文传入服务端,服务端用私钥解出随机字符串,再用此私钥解出加密的密文。这其中有一个关键是解决服务端的公钥,传入客户端,客户端用此公钥加密字符串后,后又能在服务端用私钥解出。此文即为实现此步而作。加密算法为RSA:1。服务端的RSA java实现。Java代码 /** * */packagecom.sunsoft.struts.util; importjav 阅读全文
posted @ 2013-04-02 10:21 jack_ou 阅读(1615) 评论(0) 推荐(0) 编辑
摘要: ServletContextServletContext从他的package信息可以看出,它是标准的JavaEE WebApplication类库javax.servlet.ServletContextServletContext提供了标准的Servlet运行环境,其实就是一些servlet和web container进行通信的方法public interface ServletContext { // Returns the URL prefix for the ServletContext. public String getServletContextName(); //Return.. 阅读全文
posted @ 2013-03-30 21:12 jack_ou 阅读(651) 评论(0) 推荐(0) 编辑
摘要: 1. ActionContext在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直接对JavaServlet Http的请求(HttpServletRequest),响应(HttpServletResponse)操作. 我们需要在Action中取得request请求参数"username"的值:ActionContext context = ActionContext.getContext(); Map params = context.getPar 阅读全文
posted @ 2013-03-30 20:57 jack_ou 阅读(4289) 评论(0) 推荐(0) 编辑
摘要: 经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用 假如我们需要确定谁占用了我们的9050端口 第一种方法:Windows平台 在windows命令行窗口下执行: 开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID-端口对应情况 协议 本地地址:端口 外部地址 状态 PID TCP 127.0.0.1:1434 0.0.0.0:0 LISTENING 3236 TCP 127.0.0.1:5679 0.0.0.0:0 LISTENING 4168. 阅读全文
posted @ 2013-03-29 17:04 jack_ou 阅读(417) 评论(0) 推荐(0) 编辑
摘要: ie不支持getElementsByClassName,所以要自己实现获取类名为className的所有元素。<html><head><script type="text/javascript">window.onload = function(){ var topMenus = getClass('li','topMenu'); for(var i=0;i < topMenus.length; i++) { alert(topMenus[i].innerHTML); }}function getCl 阅读全文
posted @ 2013-03-28 13:10 jack_ou 阅读(654) 评论(0) 推荐(0) 编辑
摘要: 1.从地址栏显示来说forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.2.从数据共享来说forward:转发页面和转发到的页面可以共享request里面的数据.redirect:不能共享数据.3.从运用地方来说forward:一般用于用户登陆的时候,根据角色转发到相应的模块.redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网 阅读全文
posted @ 2013-03-23 19:13 jack_ou 阅读(598) 评论(0) 推荐(0) 编辑
摘要: JSP中动态INCLUDE与静态INCLUDE的区别 动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true">它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 静态INCLUDE用include伪码实现,它不会检查所含文件的变化,适用于包含静态页面 静态include主要是对静态页面的引入,不会检查所包含文件的变化<% @ include file="include.html" %>动态include主要 阅读全文
posted @ 2013-03-23 14:19 jack_ou 阅读(473) 评论(0) 推荐(0) 编辑
摘要: Ant是一种基于Java的build工具。理论上来说,它有些类似于(Unix)C中的make ,但没有make的缺陷。目前的最新版本为:Ant 1.9.0[1]。既然我们已经有了make, gnumake, nmake, jam以及其他的build工具为什么还要要一种新的build工具呢?因为Ant... 阅读全文
posted @ 2013-03-23 10:41 jack_ou 阅读(789) 评论(0) 推荐(0) 编辑
摘要: java语言 String 中的方法length()计算的是调用该方法的字符串的实际字数,比如:"中文".length(); 这里获取的长度是2,"english".length(); 这里获取的长度是7,所以这个方法计算的并非是字节长度,而是字符串的实际字数,如果是技术字节长度的话,"中文".length();的结果应该是4,"english".length();就没得说了,依然是7. 那么String的另外一个方法,substring(0,n);,它的长度计算是否跟上面的相同呢?其实也是相同的。 阅读全文
posted @ 2013-03-22 10:34 jack_ou 阅读(2088) 评论(0) 推荐(0) 编辑
摘要: 外键约束对子表的含义: 如果在父表中找不到候选键,则不允许在子表上进行insert/update 外键约束对父表的含义: 在父表上进行update/delete以更新或删除在子表中有一条或多条对应匹配行的候选键时,父表的行为取决于:在定义子表的外键时指定的on update/on delete子句, InnoDB支持5种方式, 分列如下 . cascade方式 在父表上update/delete记录时,同步update/delete掉子表的匹配记录 On delete cascade从mysql3.23.50开始可用; on update cascade从mysql4.0.8开始可... 阅读全文
posted @ 2013-03-21 17:15 jack_ou 阅读(988) 评论(0) 推荐(0) 编辑
摘要: Integer.parseInt(String s) 与Integer.valueOf(String s)区别2011-09-02 09:18:12|分类: 默认分类 |标签: |字号大中小订阅/*** @author George* @date:Sep 1, 2011 8:32:37 AM*/public class Convert { public static void main(String[] args) { // TODO code application logic here String name="3"; int value1=Integer.valueO 阅读全文
posted @ 2013-03-21 11:48 jack_ou 阅读(580) 评论(0) 推荐(0) 编辑
摘要: 简单的说:用了流之后关掉即可。下面详细说明:出现了java.lang.IllegalStateException: getOutputStream() has already been called for this response异常,到网上一搜,该异常的出现频繁还是很高的,当然最终也找到了解决办法,以下是原贴的引用地址:http://guoyiqi.iteye.com/blog/75929,在这里只留个备份。以下是原贴内容:tomcat5下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法在 阅读全文
posted @ 2013-03-21 11:30 jack_ou 阅读(649) 评论(0) 推荐(0) 编辑
摘要: 定义格式[CONSTRAINT <约束名>][FOREIGN KEY][<列名>]REFERENCES<被参照表名>(<主键列名>) 例如--删除外键 alter table AdItem drop constraint AdOrder_AdItem_FK1 www.2cto.com --增加外键 alter table AdItem add constraint AdOrder_AdItem_FK1 foreign key (AI_nOrderNo) references AdOrder(AO_nOrderNo) --不检查约束 alter t 阅读全文
posted @ 2013-03-20 14:08 jack_ou 阅读(872) 评论(0) 推荐(0) 编辑
摘要: stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。在Java的IO中,所有的stream(包括Inputstream和Out stream)都包括两种类型: (1)字节流 表示以字节为单位从stream中读取或往stream中写入信息,即io包中的inputstre... 阅读全文
posted @ 2013-03-20 10:43 jack_ou 阅读(1609) 评论(1) 推荐(2) 编辑
摘要: HashMap和Hashtable的区别 HashMap和Hashtable的区别 导读: 1 HashMap不是线程安全的 HashMap是map接口的子类,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而 阅读全文
posted @ 2013-03-19 23:45 jack_ou 阅读(131611) 评论(8) 推荐(14) 编辑
摘要: 有两种方式:1、delete from tablename --写入日志2、Truncate Table tablename --不写入日志下面介绍一下他们的区别:TRUNCATE TABLE删除表中的所有行,而不记录单个行删除操作。 语法TRUNCATE TABLE name参数name:是要截断的表的名称或要删除其全部行的表的名称。注释TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 DELETE 语句每次删除一行,并在事务日志中为所删 阅读全文
posted @ 2013-03-19 23:03 jack_ou 阅读(1107) 评论(0) 推荐(0) 编辑
摘要: addBatch()用法 查看文章 PreparedStatement.addbatch()的使用Statement和PreparedStatement的区别就不多废话了,直接说PreparedStatement最重要的addbatch()结构的使用.1.建立链接 Connection connection =getConnection();2.不自动 Commitconnection.setAutoCommit(false); 3.预编译SQL语句,只编译一回哦,效率高啊PreparedStatement statement = connection.prepareStatement(&qu 阅读全文
posted @ 2013-03-19 22:43 jack_ou 阅读(2121) 评论(0) 推荐(0) 编辑
摘要: (浪天涯:我觉得应该是select * from a left outer join b on a.a=b.b right outerjoin c on a.a=c.c inner join d on a.a=d.d where .....这样子吧有left inner join和right inn 阅读全文
posted @ 2013-03-19 17:40 jack_ou 阅读(1309) 评论(0) 推荐(0) 编辑
摘要: ibatis的调试相对困难,出错的时候主要依据是log4生成的log文件和出错提示,这方面要能比较熟练的看懂.下面这个配置基本上包含了最复杂的功能:分页\搜索\排序\缓存\传值Hash表\返回hash表\动态sql如果对下面这段配置能信手粘来的话,那开发速度将会大大的提升.<statement id="XinxiTable_SelectAll" listClass="ArrayList" resultMap="SimpleXinxi" parameterClass="Hashtable" cacheModel 阅读全文
posted @ 2013-03-19 17:06 jack_ou 阅读(23555) 评论(1) 推荐(1) 编辑
摘要: HTTP Status 500 -type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionjavax.servlet.ServletException: Filter execution threw an exceptionroot causejava.lang.NoClassDefFoundError: Could not initialize class freemar 阅读全文
posted @ 2013-03-19 16:07 jack_ou 阅读(17459) 评论(0) 推荐(0) 编辑
摘要: iBATIS教程之like语句的使用我们可以先看看网上搜了一下iBATIS的关于like的使用select*fromUSERSwhereUSER_NAMElike'%wang%';这种like语句在iBATIS中怎么写,项目是用iBATIS作为持久层的框架。﹤selectid="showOneStudentByName"parameterClass="String"resultMap="studentORM﹥"select*fromt_stuwheres_namelike#name# ﹤/select﹥这样写显然不行在 阅读全文
posted @ 2013-03-19 15:57 jack_ou 阅读(8303) 评论(0) 推荐(0) 编辑