02 2016 档案
摘要:MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。 1.resultType 在
阅读全文
摘要:当项目不需要SVN标志的时候,我们一般怎么办哪??可能很多人设置Windows显示隐藏文件,然后将项目中的所有.svn文件删除,这种方法是既费劲儿又蛋疼的方法。 下面,从网上找了个非常简单的方法,重新编辑后当为我自己的原创,希望原作者不要怪罪。 第一步:建立一个名字叫做remove-svn-fold
阅读全文
摘要:myeclipse中的classpath是一个很重要的问题 myeclipse的在查找的时候都是按照其查找,而且myeclipse有一个专门的文件来保存classpath的信息,这也是别人的项目拷贝的时候需要的一个重要文件,不然这个项目要导入到自己的myeclipse中就会发生错误,此时就只能是手工
阅读全文
摘要:Spring的AOP配置 1.先写一个普通类: package com.spring.aop; public class Common { public void execute(String username,String password){ System.out.println("------
阅读全文
摘要:通过使用第三方开源jar包sigar.jar我们可以获得本地的信息 1.下载sigar.jar sigar官方主页 sigar-1.6.4.zip 2.按照主页上的说明解压包后将相应的文件copy到java路径。比如windows32位操作系统需要将lib中sigar-x86-winnt.dll文件
阅读全文
摘要:为了项目的安全,有时候需要得到电脑的唯一码,比如:网卡的mac地址。和大家分享一下,下面是项目中用到的工具类: import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;impo
阅读全文
摘要:在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于 Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是 java的动态代理机制
阅读全文
摘要:Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中, 解析.class 文件内的信息,生成对应的 Class对象: class字节码文件是根据JVM虚拟
阅读全文
摘要:每个请求来到Web容器,Web容器会为其分配一条执行绪来专门负责该请求,直到回应完成前,该执行绪都不会被释放回容器。 执行绪会耗用系统资源,若有些请求需要长时间处理(例如长时间运算、等待某个资源),就会长时间占用执行绪,若这类的请求很多,许多执行绪都被长时间占用,对于系统就会是个效能负担,甚至造成应
阅读全文
摘要:看完了Java类装载器,我们再来看看应用服务器(Tomcat)对类加载器的使用,每个应用服务器都有一套自己的类加载器体系,从而与Java的类加载器区别开以达到自己与应用程序隔离的目的.Tomcat的类加载器体系为:Bootstrap--->System--->Common---->Catalina,
阅读全文
摘要:1JVM类加载机制 JVM的ClassLoader通过Parent属性定义父子关系,可以形成树状结构。其中引导类、扩展类、系统类三个加载器是JVM内置的。 它们的作用分别是: 1)引导类加载器:使用native代码实现,在rt.jar等包中搜索运行JVM所需的类,例如java.lang等包下的类。
阅读全文
摘要:ClassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回 这个类的class对象。 1.1 几个相关概念ClassLoader负责载入系统的所有Resources(Class,文件,来自网络的字节流 等),通过C
阅读全文
摘要:这篇文章主要介绍了nginx日志配置指令详解,nginx有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志,需要的朋友可以参考下日志对于统计排错来说非常有利的。本文总结了nginx日志相关的配置如access_log、log_format、open_log_file_cache、l
阅读全文
摘要:今天在阅读Tomcat源码的时候,catalina这个类中使用了下边的代码,不是很了解,所以google了一下,然后测试下方法,Tomcat中的相关代码如下: Runtime.getRuntime().addShutdownHook(shutdownHook); 这个方法的含义说明: 这个方法的意思
阅读全文
摘要:详见http://www.runoob.com/jsp/jsp-jstl.html
阅读全文
摘要:CA:~ # cat /etc/resolv.confnameserver 223.5.5.5nameserver 223.6.6.6
阅读全文
摘要:个人总结: 如何设置普通用户的ulimit值 1、vim /etc/profile 增加 ulimit -n 10240 source /etc/profile 重新启动就不需要运行这个命令了。 2、修改/etc/security/limits.conf 增加 * hard nofile 10240
阅读全文
摘要:立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示: 先来看看如何建立连接的。 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立
阅读全文
摘要:服务器中很多的CLOSE_WAIT,请教各位大虾!!!!!!!!!最近遇到一个问题,工程在LINUX服务器上面跑起来了以后,运行一段时间 就有很多的CLOSE_WAIT链接,多了之后,网站就访问不了了,多半是程序的原因,我想从这方面入手,查看服务器JBOSS宕机之前在访问网站的那些 页面,看是那些页
阅读全文
摘要:ava代码 HttpClient client = new HttpClient(); HttpMethod method = new GetMethod("http://www.apache.org"); try { client.executeMethod(method); byte[] res
阅读全文
摘要:今天解决了一个HttpClient的异常,汗啊,一个HttpClient使用稍有不慎都会是毁灭级别的啊。 这里有之前因为route配置不当导致服务器异常的一个处理:http://blog.csdn.net/shootyou/article/details/6415248 里面的HttpConnect
阅读全文
摘要:转载请注明出处,谢谢~ http://blog.csdn.net/shootyou/archive/2011/05/12/6415248.aspx 在一次服务器异常的排查过程当中(服务器异常排查的过程我会另起文章),我们决定使用HttpClient4.X替代HttpClient3.X或者HttpCo
阅读全文
摘要:官方文档 : http://www.mchange.com/projects/c3p0/index.html <c3p0-config> <default-config> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --> <property name="a
阅读全文
摘要:1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。 然而在实际开
阅读全文
摘要:out对象的类型是JspWriter。JspWriter继承了java.io.Writer类。 1)print方法是子类JspWriter,write是Writer类中定义的方法; 2)重载的print方法可将各种类型的数据转换成字符串的形式输出,而重载的write方法只能输出字符、字符数组和字符串
阅读全文
摘要:CSS 格式化ProCSSor - http://procssor.com/CSS 压缩CSS Compressor - http://www.cssdrive.com/index.php/main/csscompressorHTML 格式化Tabifier - http://tools.arant
阅读全文
摘要:下午写jsp页面的时候,用了一个js文件,拖到MyEclipse下了报错,开始还以为是js文件问题,折腾了半天,后来才知道原来是Myeclipse误报错误。真坑爹啊呀~~ 解决方法: 点击你需要忽略错误的页面右键--MyEclipse--Exclude From Validation 勾选就OK。
阅读全文
摘要:见效的解决方法如下: 在myeclipse中修改jvm启动的参数 打开Myeclipse -->windows-->preference-->myeclipse->server->找到tomcat下面的JDK在文本框中设置启动的参数 -Xms168m -Xmx512m 二、java.lang.Out
阅读全文
摘要:版本冲突原因: 假设A、B两个用户都在版本号为7的时候,更新了index.jsp这个文件,A用户在修改完成之后提交index.jsp到服务器,这个时候提交成功,这个时候index.jsp文件的版本号已经变成8了。同时B用户在版本号为100的index.jsp文件上作修改,修改完成之后提交到服务器时,
阅读全文
摘要:实效解决方法: 项目->properties->MyEclipse->Web->Web Context-root的名字为重命名之后的名字即可 其实这里的Web Context-root的名字就是我们在新建web项目时的 Context root URL下的值如下图 标记2 值得注意的是:标记1是项目
阅读全文
摘要:1。如果要映射过滤应用程序中所有资源: <filter> <filter-name>loggerfilter</filter-name> <filter-class>myfilter.LoggerFilter</filter-class> </filter> <filter-mapping> <fi
阅读全文
摘要:方案一、重启myEclipse 方案二、 删除对应workspace目录下 “.metadata\.plugins\org.eclipse.jst.jsp.core\jspsearch” 里的 *.index文件 其实只要删除修改时间为当天就可以了。 再打开myeclipse就可以编辑了
阅读全文
摘要:对commons fileupload上传组件的简单封装 在上一篇文章《利用Jakarta commons fileupload组件实现多文件上传》中,我介绍了commons fileupload组件的基本原理和实现方法。但是在实际操作中,我们需要分析每个FileItem,然后从该FileItem中
阅读全文
摘要:一 、简单介绍 使用最为广泛的Java文件上传组件,Struts本身采用这个包来处理文件上传。其基本原理: FileUpload组件将页面提交的所有元素(普通form表单域,如text和文件域file)都看作一样的FileItem,这样上传页面提交的 request请求也就是一个FileItem的有
阅读全文
摘要:利用MultipartFile(组件)实现文件上传 在java中上传文件似乎总有点麻烦,没.net那么简单,记得最开始的时候用smartUpload实现文件上传,最近在工作中使用spring的MultipartFile实现文件上传,感觉挺简单,在这里和大家分享一下. 一.主要有两个java类,和一般
阅读全文
摘要:Jstl是sun的标准taglib库,Jstl是标签库和el语言的结合。 el 表达式的隐含对象pageScope,requestScope,sessionScope,applicationScope,比如${hello}语 句首先会从pageScope开始逐个查找scope中的属性,指定域对象语句
阅读全文
摘要:一、问题描述 问题: 使用<pg:param name="key" />标签传递中文参数时,会有乱码。 原因: 因为它默认是用gb2312来对添加的参数进行编码,如果你的过滤器、jsp页面都是采用的gb2312就没有什么问题,如果你采用的是utf-8来编码,那么中文参数传递过程中就会出现乱码导致无法
阅读全文
摘要:一、Servlet所有监听器简介 在Servlet技术中已经定义了一些事件,并且我们可以针对这些事件来编写相关的事件监听器,从而对事件作出相应处理。 1、目前Servlet3.0和JSP2.0总共有8个监听器接口和6个Event类, 其中HttpSessionAttributeListener与Ht
阅读全文
摘要:一、Pager-taglib数据库分页前提 Pager-taglib分页标签也可以实现数据库分页,与页面分页不同的是需要给后台传两个参数,一个是pageNo(当前页数)或pageOffset(偏移量),另一个参数是pageSize(分页尺寸)。数据库分页的实质是根据页面传递过来的这两个参数从数据库中
阅读全文
摘要:一、Pager-taglib简介 1、Pager-taglib,支持多种风格的分页显示。实际上她是一个Jsp标签库,为在JSP上显示分页信息而设计的一套标签,通过这些标签的不同的组合,会形成多种不一样的分页页面,风格各异,她自带的DEMO就有八种左右的分页风格(在pager-taglib-2.0.w
阅读全文
摘要:一、获得都是当前运行文件在服务器上的绝对路径 在servlet里用: this.getServletContext().getRealPath() 在struts用: this.getServlet().getServletContext().getRealPath() 在Action里用: Ser
阅读全文
摘要:一、静态包含:包含的文件可以是jsp文件、html文件、文本文件或者一段java代码。<%@ include file="要包含的文件路径"%> 实质是先将所包含的文件的内容直接包含入主文件中,然后再一起进行编译,最后再将一份整体的内容展现给用户,属于先包含,然后编译 <%@ include fil
阅读全文
摘要:为什么需要克隆 在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B, 并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的。在Java语言中,用简单的赋值语句是不 能满
阅读全文
摘要:Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的 过程。Java序列化API提供一种处理对象序列化的标准机制。在这里你能学到如何序列化一个对象,什么时候需要序列化以及Java序列化
阅读全文
摘要:一.序列化类实现Serializable接口 Serializable接口没有方法,更像是个标记。有了这个标记的Class就能被序列化机制处理。 ObjectOutputStream只能对Serializable接口的类的对象进行序列化。默认情况下,ObjectOutputStream按照默认方式序
阅读全文
摘要:一、序列化与反序列化概述 当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。 把Java对象转换为字节序列的过程称为对象的序列化。
阅读全文
摘要:一、问题的提出 疑惑1:在设计接口的时,对于接口方法何时需要声明抛出受检异常或者说所有的接口方法最后都声明抛出受检异常? 以下是代码片段: public interface xx{ public void method(); } public interface xx{ public void me
阅读全文
摘要:在ToStringBuilder学习(一)中提到一个问题,即 readResolve方法是干啥的? 当时也没多想, 只是列在那里, 今天忙里偷闲地把搜点材料整理下这个问题. 原来这个方法跟对象的序列化相关(这样倒是解释了为什么 readResolve方法是private修饰的). ??? 怎么跟对象
阅读全文
摘要:一、简介与引入 1、ToStringBuilder、HashCodeBuilder、EqualsBuilder、ToStringStyle、ReflectionToStringBuilder、CompareToBuilder等这些类都是位于commons-lang.jar下面的,所以要使用这些类一定
阅读全文
摘要:研究ApacheCommon源码, 先从一个最简单的开始,即围绕Object类里的toString方法自动化实现的一系列类. 怎么来自动化地实现toString方法, 有两种:反射和手动设置.这两种方法在上一篇博客中都有体现,这里就不再赘述了.下面列举下其优缺点. 用反射方法的优点: 1. 代码简洁
阅读全文
摘要:一、java中日期类之间的关系: 其中: 1):java.sql.Date、java.sql.Time和java.sql.Timestamp这三个类是专门和数据库打交道的,它们都是java.util.Date的子类。 java.sql.Date继承了java.util.Date的日期部分(年月日)。
阅读全文
摘要:使用WebLogic时控制台输出中文乱码解决方法: 1.找到weblogic安装目录,当前项目配置的domain 2.找到bin下的setDomainEnv.cmd文件 3.打开文件,从文件最后搜索第一个set JAVA_OPTIONS=%JAVA_OPTIONS%(应该是倒数第五个if块上面,空行
阅读全文
摘要:一、前言 java.lang.reflect.Array类提供了动态创建和访问数组元素的各种静态方法。 static Object newInstance(Class<?> componentType, int... dimensions) 创建一个具有指定的组件类型和维度的新数组。componen
阅读全文
摘要:一、准备知识: Java反射机制以及域的获取与设置的相关方法 二、实现步骤: 1、首先创建一个类包含一个私有属性: class PrivateField{ private String username = "Jason"; } 2、通过反射机制修改username的值: //创建一个类的对象 Pr
阅读全文
摘要:一、准备知识: Java反射机制 处理事务的JavaBean String的操作常用方法 二、模拟步骤 这里我们通过反射机制动态获取属性的值模拟Struts中的自动赋值。 1、首先创建一个简单的User类包含两个属性username和userid以及getter、setter方法: class Us
阅读全文
摘要:关于动态语言: 一般而言,开发者社群说到动态语言,大致认同的一个定义是:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。 Java中的反射机制: Java中的反射机制指的是在程序运行时,对
阅读全文
摘要:首先介绍一下Dbutils: Common Dbutils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成List。 补充一下,传统操作数据库的类指的是JDBC(java database connection:java数据库连接,java的数据库操作的基础API。)。 DB
阅读全文
摘要:UUID:通用惟一识别:Universally Unique Identifier; 在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。 GUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成GUID。从理论上讲,如果一台机器每
阅读全文
摘要:Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同,所以开发环境的变化会带来一定的配置变化。本文主要集合了不同数据库的连接方式。
阅读全文
摘要:public static void main(String[] args) { Connection conn =getConnection(url,user, pwd); System.out.println("数据连接成功"); CallableStatement cs=null; try {
阅读全文
摘要:首先必须明确:TCP/IP模型中有四层结构: 应用层(Application Layer)、传输层(Transport Layer)、网络层(Internet Layer )、链路层(LinkLayer) 其中Ip协议(Internet Protocol)是位于网络层的,TCP协议时位于传输层的。通
阅读全文
摘要:boolean result = f.delete(); if(!result) { System.gc(); f.delete; }
阅读全文
摘要:泛型是JDK 1.5的一项新特性,它的本质是参数化类型(Parameterized Type)的应用,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口和泛型方法。 泛型思想早在C++语言的模板(Templates)中就开始生根发芽,在Ja
阅读全文
摘要:问题一: null和""的区别 String s=null; s.trim()就会抛出为空的exception String s=""; s.trim()就不会抛,为什么? 答: NULL代表声明了一个空对象,根本就不是一个字符串。 ""代表声明了一个对象实例,这个对象实例的值是一个长度为0的空字符
阅读全文
摘要:一、 JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。 Json建构于两种结构: 1、“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结
阅读全文
摘要:一、 谷歌GSON这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。Gson支持任意复杂Java对象包括没有源代码的对象。 二、Gson解析Json步骤 A、服务器端将数据转换成json字符串 首先、服务器端项目要导入Gson的jar包到Built
阅读全文
摘要:一、阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征: 速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson; 功能强大,完全支持Java Bean、集合、Map、日期、E
阅读全文
摘要:一、导入导出本地数据库 导出: 1、先运行cmd,cd 到mysql安装目录中的bin文件夹 2、mysqldump -u root -p 数据库名 > 导出文件名.sql 其他情况下: 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u
阅读全文
摘要:一、简介 Struts 2是一个MVC框架,以WebWork设计思想为核心,吸收了Struts 1的部分优点 二、详解 首先让我们看一下一个简单的struts.xml文件的结构 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLI
阅读全文
摘要:错误提示:严重: Dispatcher initialization failed java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 解决方法: 1、核对WEB-INF目录下的lib包 是否包含strut2
阅读全文
摘要:A、使用继承实现设置全局视图 package节点中还可以设置全局的视图,如: <global-results> <result name="err">/err.jsp</result> </global-results> 但如果其他包也想实现这样的视图,就需要使用继承的方式实现,如: <packag
阅读全文
摘要:方案一: 首先我们要明白struts2加载配置文件都是从它自己的jar包和\WEB-INF\classes两个默认的位置加载的,如果你想改变strusts2中的文件的默认加载路径,可以在web项目的web.xml配置过滤器的时候指定。 如(配置过虑器的部分代码): <filter> <filter-
阅读全文
摘要:一、简介 开发Web应用程序,首先应会遇到对用户输入数据的接收,传统的Web应用程序是由开发人员调用HttpServletRequest的getparameter(String name)方法从请求中获取数据,而Web框架都提供了数据绑定机制,由框架从请求中获取数据然后绑定到一个JavaBean对象
阅读全文
摘要:truts2在Action中如何访问request,session,application(即ServletContext)对象???? 方式一:与Servlet API解耦的方式 可以使用struts2中提供的Map对象来访问HttpRequest,HttpSession和ServletConte
阅读全文
摘要:1. Struts2架构图 当外部的httpservletrequest到来时 ,初始到了servlet容器(所以虽然Servlet和Action是解耦合的,但是Action依旧能够通过httpservletrequest取得请求参数), 然后通过Filter chain,Filter主要包括Act
阅读全文
摘要:一、问题的引出 Struts2的类型转换是基于OGNL表达式的,由于请求的参数都是字符串,而JAVA 本身属于强类型的的语言,这样就需要把请求参数字符串转换成其他类型。 Struts2的类型转换器都需要实现一个TypeConverter接口,该接口位于ognl.jar包内,也是就Struts2框架的
阅读全文
摘要:学习Struts2时,发现有过滤器和拦截器,他们貌似都是一样的功能,但是为什么会有2个不同的名称呢?肯定是有区别的,所以打算自己整理一下。 过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 a
阅读全文
摘要:一、web应用的classpath简介 classpath路径在每个J2ee项目中都会用到,即WEB-INF下面的classes目录,所有src目录下面的java、xml、properties等文件编译后都会在此,所以在开发时常将相应的xml配置文件放于src或其子目录下。 Struts 2框架有两
阅读全文
摘要:一、造成重复提交主要的两个原因: 在平时的开发过程中,经常可以遇到表单重复提交的问题,如做一个注册页面,如果表单重复提交,那么一个用户就会注册多次,重复提交主要由于两种原因。 1、 一是,服务器处理时间久。当用户在表单中填完信息,点击“提交”按钮后,由于服务器反应时间过长没能及时看到响应信息,或者出
阅读全文
摘要:一、 1、文件上传是web应用经常用到的一个知识。原理是,通过为表单元素设置enctype=”multipart/form-data”属性,让表单提交的数 据以二进制编码的方式提交,在接收此请求的Servlet中用二进制流来获取内容,就可以取得上传文件的内容,从而实现文件的上传。 2、Struts2
阅读全文
摘要:被调试代码: package web; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import org.apa
阅读全文
摘要:struts2输入校验主要分为两种 代码实现校验和xml配置文件实现校验 (1)代码实现校验 1、 对action所有方法进行validate action需要继承ActionSupport,并在action重写validate()方法,在validate方法中,根据页面的相应 元素名称进行相关校验
阅读全文
摘要:拦截器(interceptor)是Struts2最强大的特性之一,也可以说是struts2的核心,拦截器可以让你在Action和result被执行之前或之后进行一些处理。同时,拦截器也可以让你将通用的代码模块化并作为可重用的类。Struts2中的很多特性都是由拦截器来完成的。拦截是AOP(Aspec
阅读全文
摘要:一、处理一般异常(javaBean异常) struts2进行异常处理首先需要添加exception拦截器,而默认拦截器栈已经加入了这个拦截器,所以不用特意的声明。在Struts 2框架中,采用声明式异常处理方式。在这种方式下,只需要在struts.xml文件中进行配置,Struts 2便能够处理异常
阅读全文
摘要:一、问题的提出 在mvc中,数据是在各个层次之间进行流转是一个不争的事实。而这种流转,也就会面临一些困境,这些困境,是由于数据在不同世界中的表现形式不同而造成的: 1. 数据在页面上是一个扁平的,不带数据类型的字符串,无论你的数据结构有多复杂,数据类型有多丰富,到了展示的时候,全都一视同仁的成为字符
阅读全文
摘要:一、Struts2内置拦截器 Struts2中内置类许多的拦截器,它们提供了许多Struts2的核心功能和可选的高级特 性。这些内置的拦截器在struts-default.xml中配置。只有配置了拦截器,拦截器才可以正常的工作和运行。Struts 2已经为您提供丰富多样的,功能齐全的拦截器实现。大家
阅读全文
摘要:首先我们一起来看一下OGNL中的#、%和$符号。 关于OGNL各种用法总结参看:http://blog.163.com/seara520@126/blog/static/72069304201032081730286/ 一.OGNL中的#、%和$符号 #、%和$符号在OGNL表达式中经常出现,而这三
阅读全文
摘要:一.Action中的代码:MapAction.java package com.zx.demo.action; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.
阅读全文
摘要:一、简介 struts2确实一个非常棒的MVC框架。这里部分记述一下struts2对AJAX的支持。实现AJAX有两种方式,一种是使用原生的javascript代码实现,一种是使用第三方的ajax框架(jquery,dwr,dojo等),jquery和dwr比较简单,做项目时也会经常用到。Strut
阅读全文
摘要:一、简介 <s:iterator />可以遍历 数据栈里面的任何数组,集合等等 在使用这个标签的时候有三个属性值得我们关注 1. value属性:可选的属性,value属性是指一个被迭代的集合,使用ognl表达式指定,如果为空的话默认就是ValueStack栈顶的集合. 2.id属性:可选属性, 是
阅读全文
摘要:一、问题的提出 先让我们看下web.xml中struts2和servlet的配置: <!-- struts2拦截页面请求的配置 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispa
阅读全文
摘要:一个result代表了一个可能的输出。当Action类的方法执行完成时,它返回一个字符串类型的结果码,框架根据这个结果码选择对应的result,向用户输出。 在com.opensymphony.xwork2.Action接口中定义了一组标准的结果代码,可供开发人员使用,当然了只有我们的action继
阅读全文
摘要:一、为什么struts2要返回json 如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况下,使用Jersery框架开发绝对是第一选择。而在基于Spring3 MVC的架构下,对HTTP+JSON的返回类型也有很好的支持。但是,在开发工作中,对功能的升级是基于既定架构是很常
阅读全文
摘要:一、概述 对于Java组件开发者来说,他们都盼望拥有一组能够对组件开发提供全面测试功能的好用的单元测试。一直以来,与测试独立的Java对象相比,测试传统型J2EE Web组件是一项更为困难的任务,因为Web组件必须运行在某种服务器平台上并且它们还要与基于HTTP的Web交互细节相联系。 易测性(在框
阅读全文
摘要:Spring 完全可以不依赖容器,自己管理数据源,但是却依赖第三方的开源的数据源管理框架. Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0。可以在Spring配置文件中利用这两者中任何一个配置数据源。 1、DBCP数据源 : DBCP类包位于
阅读全文
摘要:Spring 一、Proxool连接池简介及其配置属性概述 Proxool是一种Java数据库连接池技术。是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。 目前是和DBCP以及C3P0一起,最为常见
阅读全文
摘要:一、SpringMVC核心接口 5、ViewResolver接口--视图解析接口 继承体系: 5、View接口--视图接口 二、SpringMVC项目示例 (1)建立动态web工程,导入spring的jar包(不要忘加SpringMVC.jar)。 (2)配置DispatcherServlet Di
阅读全文
摘要:一、SpringMVC原理 请求到来时,第一个接受这个请求的前端控制器叫DispatcherServlet(这个需要在web.xml中配置), 后端控制器叫Controller。负责处理请求URL和后端控制器映射的叫HandMapping,它有多种类型,比较灵活,也是在一个xml文件上进 行配置。负
阅读全文
摘要:在MyEclipse 的Spring工程中,有时候要使用@Resource注释来驱动Spring配置。但是在MyEclipse添加Spring开发能力的操作中,并没有 把相关的库添加到工程的classpath中,所以使用该注解时会产生找不到类的错误,这是由于MyEclipse带的Spring里没有该
阅读全文
摘要:二、SpringMVC请求处理流程 其中Front controller :前端控制器 Controller:后端控制器 三、Spring核心组件及请求处理流程
阅读全文
摘要:1、new一个web project。 2、右键项目,为项目添加Struts支持。 点击Finish。src目录下多了struts.xml配置文件。 3、使用MyEclipse DataBase Explorer建立数据源。 new一个数据源。填入数据源信息。 点击test Driver,如果成功显
阅读全文
摘要:struts2 commons-logging-1.0.4.jar 主要用于日志处理 freemarker-2.3.8.jar 模板相关操作需要包 ognl-2.6.11.jar ognl表达示所需包, xwork-2.0.7.jar xwork核心包 struts2-core-2.0.14.jar
阅读全文
摘要:最下面有log4j的详解及配置步骤 步骤一、导入相应的jar包(具体参看下一篇博文) 步骤二、修改WEB.XML文件,内容如下: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/jav
阅读全文
摘要:步骤一、在spring配置文件中引入<tx:>命名空间 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx=
阅读全文
摘要:一、基础知识普及 声明式事务的事务属性: 一:传播行为 二:隔离级别 三:只读提示 四:事务超时间隔 五:异常:指定除去RuntimeException其他回滚异常。 传播行为: 所谓事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为。
阅读全文
摘要:一、Spring事务的相关知识 1、事务是指一系列独立的操作,但在概念上具有原子性。 比如转账:A账号-100, B账号+100,完成。这两个操作独立是没问题的。 但在逻辑上,要么全部完成,要么一起失败。 1)jdbc事务:每个Connection都带有一个事务,只是默认被设置为自动提交。一个连接可
阅读全文
摘要:一、Spring为什么要整合Struts2 Struts2与Spring进行整合的根本目的就是要让 Spring为Struts2的Action注入所需的资源对象,它们整合的原理则是只要导入了struts2的spring插件包,不需要进行 任何额外的配置,Struts2的Action实例对象将由str
阅读全文
摘要:一、Springl为什么要整合Hibernate 二者的整合主要是把hibernate中核心的一些类型交给spring管理,这些类型主要包括sessionFactory、 transactionManager、transactionTemplate,把这些类型配置成bean,然后注入到hiberna
阅读全文
摘要:一、整合的步骤 1、步骤一:首先要获得DataSource连接池(推荐使用B方式): 要对数据库执行任何的JDBC操作,需要有一个Connection.在Spring中,Connection对象是通过DataSource获得的。 有几种方法可以得到DataSource, 其中一种方法是使用Sprin
阅读全文
摘要:一、简介 1、AOP用在哪些方面:AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任,例如事务处理、日志管理、权限控制,异常处理等,封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。 2、AOP中的概念: Aspect(切面):指横切性关注点的抽象即
阅读全文
摘要:一、通过Scheme配置实现AOP步骤(Spring AOP环境的环境与上篇博文 Spring接口方式相同) 步骤一、编写业务类: public class AspectBusiness { //切入点 public String delete(String obj) { System.out.pr
阅读全文
摘要:一、初识AOP 关于AOP的学习可以参看帮助文档:spring-3.2.0.M2\docs\reference\html目录下index.html的相关章节 1、AOP:Aspect-Oriented Programming。AOP是OOP的补充,是GOF的延续。说到AOP,我们就不得不来提一下软件
阅读全文
摘要:一、依赖注入--手工装配—注解方式 在java代码中使用@Autowired或@Resource注解方式进行装配的前提条件是: 1、引入context命名空间 需要在xml配置文件中配置以下信息: <beans xmlns="http://www.springframework.org/schema
阅读全文
摘要:一、Spring容器接口关系 容器是Spring框架的核心,Spring容器就是一个巨大的工厂。Spring容器使用Ioc(控制反转(Inversion of Control )管理所有组成应用系统的组件。 Spring容器会使用XML解析器读取改属性值,并利用反射来创建该实现类的实例。 Sprin
阅读全文
摘要:一、思想理解 Spring 能有效地组织J2EE应用各层的对象。不管是控制层的Action对象,还是业务层的Service对象,还是持久层的DAO对象,都可在Spring的 管理下有机地协调、运行。Spring将各层的对象以松耦合的方式组织在一起,Action对象无须关心Service对象的具体实现
阅读全文
摘要:一、简介 1、Spring是一个开源的控制反转(Inversion of Control ,IoC)和面向切面(AOP)的容器框架.它的主要目得是简化企业开发. 2、为何要使用Spring? i:降低组件之间的耦合度,实现软件各层之间的解耦。 ii:可以使用容器提供的众多服务,如:事务管理服务、消息
阅读全文
摘要:一、在Myeclipse中新建项目一般会有下列四种libraries: JRE System Library , java EE 6 Libraries , Referenced Libraries,Web App Libraries 二、各种libraries含义 JRE System Libra
阅读全文
摘要:MyEclipse中构造新的jsp模板(原创) 首先随便打开一个jsp页,在网页中单击右键选择:preferences 打开后如图所示,找到jsp template选项. 选择new,在弹出的提示框,输入如图所示内容,当然输入你想要的就可以了.我这里是 struts2. 点击ok就可以了,具体步骤如
阅读全文
摘要:在右上边三角那里进去设置 选第一个是显示完整的包名,第二个显示的是树形结构,我们一般用第一种,如下图:
阅读全文
摘要:eclipse之所以会出现乱码问题是因为eclipse编辑器选择的编码规则是可变的。一般默认都是UTF-8或者GBK,当从外部导入的一个工程时,如果该工程的编码方式与eclipse中设置的编码方式不同,就会产生中文的乱码问题,这其中还有几种情况。 如果导入的整个工程的编码方式与eclipse的编码方
阅读全文
摘要:1.在Eclipse里面设置了java文件保存时自动格式化,在java->Code Style->Formatter里设置了自定义的格式化的样式,这样每次保存后都会自动格式化代码,用了一段时间感觉还不错,高科技,自动化。 如果要想取消自动格式化的设置,将Preferences ->java->edi
阅读全文
摘要:CLASSPATH是什么?它的作用是什么? 它是javac编译器的一个环境变量。 它的作用与import、package关键字有关。 当你写下improt java.util.*时,编译器面对import 关键字时,就知道你要引入java.util这个package中的类;但是编译器如何知道你把这个
阅读全文
摘要:1、抽象类中的抽象方法(其前有abstract修饰)不能用private、static、synchronized、native访问修饰符修饰。原 因如下:抽象方法没有方法体,是用来被继承的,所以不能用private修饰;static修饰的方法可以通过类名来访问该方法(即该方法的方法体),抽 象方法用
阅读全文
摘要:1、下载tomcat 到apache的官网(http://www.apache.org/)的download页面下找到tomcat下载免安装的zip包 2、配置环境变量 JAHA_HOME: E:\Program Files\Java\jdk1.6.0_22(JDK的安装目录) CATALINA_H
阅读全文
摘要:关于成员变量与局部变量: 如果一个变量是成员变量,那么多个线程对同一个对象的成员变量进行操作时,他们对该成员变量是彼此影响的(也就是说一个线程对成员变量的改变会影响到另一个线程) 。 如果一个变量是局部变量,那么每个线程都会有一个该局部变量的拷贝,一个线程对该局部变量的改变不会影响到其他的线程。 实
阅读全文
摘要:1.相同点 A. 两者都是抽象类,都不能实例化。 B. interface实现类及abstrct class的子类都必须要实现已经声明的抽象方法。 2. 不同点 A. interface需要实现,要用implements,而abstract class需要继承,要用extends。 B. 一个类可以
阅读全文
摘要:1、 对finalize认识: finalize—方法名。是gc操作的运行机制中得一部分,进行gc操作时会调用finalize方法。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用
阅读全文
摘要:类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备注 public 可以被本项目的所有类访问(使用),其他项目若想使用本项目中的类,必须将本项目打包为jar包,然后加入到classpa
阅读全文
摘要:问题描述: 修改项目名称后,部署到tomcat问题 解决方案: 项目->属性->myelcipse->web下,修 改web context root就可! 要在eclipse里面改下,光把项目重命名 是不成的。 工程名--右键--Properties--MyEclipse--Web--把Web C
阅读全文
摘要:原理要解:抽象类其实是可以实例化的,但是他的实例化方式不是通过new方式来创建对象,而是通过父类的引 用来指向子类的实例来间接地实现父类的实例化(因为子类要实例化前,一定会先实例化他的父类。这样创建了继承抽象类的子类的对象,也就把其父类(抽象类) 给实例化了). 但是:接口是不能被实例化的(接口压根
阅读全文
摘要:首先结论是:java中静态属性和和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏。 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成的,不需继承机制就可以调用如果子类里面定义了静态方法和属性,那么这时候父类的静态方法 或属性称之为“隐藏”,你如果想要调用父类的静态方法
阅读全文
摘要:boolean类型不可以转换为替他的数据类型。 Java中byte(8位)、short(16位)、char三种类型的优先级是相同的,相同优先级之间是不能进行自动转换的(如果相互转换的话,必须强制类型转换),只能将低类型自动转换为高类型,例如,可以将byte自动转换为int类型。(char 在java
阅读全文
摘要:一、Java的反射机制 每个Java程序执行前都必须经过编译、加载、连接、和初始化这几个阶段,后三个阶段如下图: 其中 i、加载是指将编译后的java类文件(也就是.class文件)中的二进制数据读入内存,并将其放在运行时数据区的方法区内,然后再堆区创建一个Java.lang.Class对象,用来封
阅读全文
摘要:一、误区:简单认为JAVA静态代码块在类被加载时就会自动执行。证错如下: [java] view plain copy class MyClass1 { static {//静态块 System.out.println("static block "); } } public class Main
阅读全文
摘要:static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类
阅读全文
摘要:1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用 2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。 3、protected:prote
阅读全文
摘要:记下来,很重要。 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完
阅读全文
摘要:Linux系统出现了性能问题,一般我们可以通过top、iostat、free、vmstat等命令来查看初步定位问题。其中iostat可以提供更丰富的IO性能状态数据。 1. 基本使用 $iostat -d -k 1 10 参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强
阅读全文
摘要:解释一下Linux上free命令的输出。 下面是free的运行结果,一共有4行。为了方便说明,我加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如: FO[2][1] = 24677460 FO[3][2] = 10321516 1 2 3 4 5 61 tot
阅读全文
摘要:匿名内部类也就是没有名字的内部类 正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写 但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 实例1:不使用匿名内部类来实现抽象方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 abstract
阅读全文
摘要:java程序在内存中的存储分配情况: 堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身 栈区: 1.每个线程包含一个栈区,栈中只保存基础数据类
阅读全文
摘要:挂载好新硬盘后输入fdisk -l命令看当前磁盘信息 可以看到除了当前的第一块硬盘外还有一块sdb的第二块硬盘,然后用fdisk /dev/sdb 进行分区 进入fdisk命令,输入h可以看到该命令的帮助,按n进行分区 这里输入e即分为逻辑分区,按p即分为主分区,我们要将这块盘分为主分区即输入p 到
阅读全文
摘要:2.1虚拟机硬盘分区 步骤1:通过root用户执行如下命令,查看映射到虚拟机上的第二块磁盘是否成功 # fdisk –l 如下图所示,说明磁盘映射成功,但是还不存在可用的分区表 步骤2:通过root用户执行如下命令 # fdisk /dev/xvdb (这边的xvdb是根据fdisk –l命令得到的
阅读全文
摘要:当实验室管理员分配给我们一个虚拟机时,我们可以通过如下命令来查看该虚拟机是否安装过jdk。 登录该虚拟机,通过如下命令 #java -version 说明该虚拟机未安装jdk 3.2开始安装JDK 步骤1 创建目录/usr/java mkdir –p /usr/java 步骤2将jdk-7u51-l
阅读全文
摘要:4.1检查该机器是否已经安装过mysql 创建用户步骤如下: 步骤1 以root用户登录服务器 步骤2 检查是否已经安装MySQL,如果存在,如果没有他人使用,安装前先卸载,并删除原始历史数据。输入以下命令: service mysql status (如果装了的话,默认是开启的。如果没装,会有提示
阅读全文
摘要:步骤1:通过root用户将两个iso源上传到被测试服务器的/opt/huawei/software/iso目录下。 # mkdir -p /opt/huawei/software/iso 挂载iso源的步骤不是必须的,有时候安装过程中有些依赖的包在linux下没有,这个时候需要挂载这个源来获取必要的
阅读全文
摘要:步骤1 以root用户登录服务器 步骤2 上传tomcat压缩包到home目录下面 下载tomcat压缩包的svn路径: 步骤3 解压缩apache-tomcat-7.0.55.tar.gz压缩包 tar -zxvf apache-tomcat-7.0.55.tar.gz 生成文件夹apache-t
阅读全文
摘要:7.1创建业务安装用户 安装和配置Redis软件时,需要使用redis用户登录服务器进行相关操作,因此需要创建redis的业务安装用户组和redis的业务安装用户。此操作在主备机上同时进行。 创建用户步骤如下: 步骤1 以root用户登录服务器 步骤2 创建用户组 /usr/sbin/groupad
阅读全文