
Java
ocean1010
智慧农业和市场监管行业15年以上,分享我们的精彩程序人生。(从PB到Java,从程序开发到项目管理,从产品管理到公司管理,一直在路上)。
展开
-
Apache与Tomcat的区别以及几种常见的web应用服务器
APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页 如(asp,php,cgi,jsp)等动态网页的就不行如果要在APACHE环境下运行jsp 的话就需要一个解释器来执行jsp网页 而这个jsp解释器就是TOMCAT, 为什么还要JDK呢?因为jsp需要连接数据库的话 就要jdk来提供连接数据库的驱程,所以要运行jsp的web服务器平台就需要APACHE转载 2012-08-28 16:30:10 · 7309 阅读 · 0 评论 -
Eclipse快捷键
1. edit->content Assist - > add Alt+/ 代码关联2. Window -> Next Editor -> add Ctrl+Tab 切换窗口3. Run/Debug Toggle Line Breakpoint -> add Ctrl+` 在调试的时候 增删断点4. Source-> Surround with try/catch转载 2011-11-15 12:00:35 · 517 阅读 · 0 评论 -
解决跨域访问的问题
前段时间在做一项目时,需求是这样的,在我们开发的系统中引用其它系统(这里称为x应用)的几个模块,x应用只需提供用户名和密码是可以访问的。这就涉及到了跨域访问的问题了。 需要在登陆我们系统的时候也得同时登陆x应用。ajax方式是行不通的,没法进行跨域访问。那就想其它的办法,以前做过无刷新上传文件的例子。所以就想这么做,在登陆我们系统后,在一个页面中建一个隐藏的form和ifra原创 2011-11-16 09:00:00 · 857 阅读 · 0 评论 -
单点登陆(CAS)学习
学习地址一学习地址二学习二中的重要内容:取消cas服务器HTTPS认证,去除浏览器的警告,也就是用http认证(降低安全性)Cas服务器用cas-server-3.3.1-release.zip,cas客户端用cas-client-3.1.3-release.原创 2011-08-23 15:20:54 · 779 阅读 · 0 评论 -
利用IText生成word、pdf文档
利用IText生成word、pdf文档用到了两个包如下所示:生成word代码如下所示package word;import java.awt.Color;import java.io.FileOutputStream;import java.io.IOEx原创 2011-08-13 15:02:33 · 3557 阅读 · 1 评论 -
JAVA读XML:sax,dom,jdom,dom4j的比较以及选择
四种方式操作xml的代码,可以在我发布的资源里进行下载SAX:转载 2011-08-07 12:53:14 · 1029 阅读 · 0 评论 -
利用jxl读写Excel
jar包如下所示:代码如下所示:package excel;import java.io.File;import java.io.IOException;import jxl.Cell;import jxl.Sheet;import jxl.Workbo转载 2011-08-13 15:14:41 · 648 阅读 · 0 评论 -
整理Calendar用法
以下是Canlendar的经常用到的代码,参才网上的例子,来源不知道了。import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;public class Te原创 2011-08-06 22:11:28 · 7126 阅读 · 1 评论 -
配置java环境变量
<br /><br />一:windows下配置<br />1,安装JDk到其默认目录:C:/Program Files/Java/jdk1.5.0_06<br />2,右击我的电脑,选属性,高级,环境变量<br />3,在系统变量栏点新建,出现新建系统变量对话框,在变量名(N)转载 2011-04-09 16:44:00 · 577 阅读 · 0 评论 -
eclipse下利ant、junit进行自动化测试例子(源码)
一直没有用ant和junit进行测试。做了个简单的例子,需要的同志简单看一下啊。源码我上传了,大家可以在这里下载写了一个简单的例子,目录结如下所示,junit包是eclipse中自己带的。把它放到你工程的lib包下就行。 然后,想利用ant进行junit测试,还得配置一个ant运行环境,把junit包配置在ant运行的类路径中,否则会出错,如下所示: 最后你可运行了,如原创 2011-06-25 14:39:00 · 1779 阅读 · 0 评论 -
con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
说明:Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); 通用格式为:Statement stmt=con.createStatement(int type,int concurrency);我们在访问数据库的时候,在读取返回结果的时候,可转载 2011-06-06 11:48:00 · 3397 阅读 · 1 评论 -
tomcat下get方式提交请求乱码解决办法
<br /><br />最近在编程的时候,发现分别用get和post发送中文数据,后者可以得到正确结果,<br /> <br />前者却是乱码。查了些资料,发现服务器对post和get请求的数据的编码处理是不一样的<br /> <br />。现把tomcat下get和url直接发送请求乱码的解决办法列举如下:<br />方法1. <br />String name = new String((request.getParameter("name")).getBytes("ISO-8859-<br /> <b转载 2011-05-31 17:54:00 · 1080 阅读 · 0 评论 -
StringTokenizer类
<br /> <br />Java语言中,提供了专门用来分析字符串的类StringTokenizer(位于java.util包中)。该类可以将字符串分解为独立使用的单词,并称之为语言符号。语言符号之间由定界符(delim)或者是空格、制表符、换行符等典型的空白字符来分隔。其他的字符也同样可以设定为定界符。StringTokenizer类的构造方法及描述见表15-6所示。<br />表15-6 StringTokenizer类的转载 2011-04-09 16:23:00 · 633 阅读 · 0 评论 -
MyEclipse优化
<br />1、老是弹出Quick update error 、关闭myeclipse的Quick Update自动更新功能 <br /> 这个问题的解决办法是关闭自动更新 <br /> Windows > Preferences > MyEclipse Enterprise Workbench > Community Essentials, <br /> 把选项 "Search for new features on startup"的前勾去掉即可。 <br /><br /转载 2011-05-29 12:50:00 · 732 阅读 · 0 评论 -
I/0复习
Io包中类的层次关系图输入流:程序中可以连续读取字节的对象。用InputStream类表示。输出流:程序能向其中连续写入字符的对象。用OutputStream类表示。字节输入流类:字节输出流类:红色部分没有对应的输出流。字符输入流类:字符输出流类:红色部份没有。 java字符编码1. ASCⅡ(美国标准信息交换码):一个字符对应一个字节。字节的最高位都为0,数字都在0-127之间。2. GBK(国标码):原来的ASCⅡ字符的编码保持不变,仍用一个字节表示。每一个中文字符都用两个字节表示,为了将一个原创 2011-04-03 10:50:00 · 726 阅读 · 0 评论 -
设计模式之(二十二)访问者模式(visitor)
<br /> <br />Visitor模式定义:<br /> <br /> <br />表示一个作用于某对象结构(ObjectStructure)中各元素的操作(Element)。<br />它可以使你不修改各元素类的前提下定义作用于这些元素的新操作,<br />也就是动态的增加新的方法。(结合例子才能理解,说了些什么。。。)<br /> <br />Visitor模式结构图:<br /> <br /> <br /> <br /> <br /> <br /> <br /><br /> <br />Visi转载 2011-03-12 11:24:00 · 535 阅读 · 0 评论 -
设计模式之(二十)策略模式(strategy)
GOF《设计模式》一书对Strategy模式是这样描述的:定义一系列的算法,把他们一个个封装起来,并且使它们可相互替换。Strategy模式使算法可独立于使用它的客户而变化。Strategy模式以下列几条原则为基础:1)每个对象都是一个具有职责的个体。2)这些职责不同的具体实现是通过多态的使用来完成的。3)概念上相同的算法具有多个不同的实现,需要进行管理。下面我将通过一个实例来说明它的具体使用,这个例子是关于数据库连接的。代码如下:public class DataBaseManager{ pu转载 2011-03-12 10:35:00 · 523 阅读 · 0 评论 -
j2ee中防止sql注入实现
开发web的过程中,需要防范sql注入,或是javascript代码注入,以下通过过滤器(filter)实现的,只实现了tomcat和weblogic下,其它应用服务器可以参照实现即可。 非常简单只需三个步骤:第一步,在你的工程加入如下所示的过滤器代码,一共两个类:CharFilter.javapackage com.hyjx.filter;import java.io.原创 2011-08-14 16:02:04 · 2824 阅读 · 0 评论 -
什么是Socket,为什么要用Socket
应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口,区分不同应用程序进程间的网络通信和连接。 生成套接字,主要有3个参数:通信的目的IP地址、使用的传输层协转载 2011-10-31 17:05:47 · 764 阅读 · 0 评论 -
java消息机制
1、问: 什么是 Java 消息服务?答: Java 消息服务(Java Message Service,JMS) API 是一个用于访问企业消息传递系统的 API。是 Java 2 Platform, Enterprise(J2EE)的一部分。2、目前流行的消息传送产品有哪些?答:目前流行的有ActiveMQ、IBM WebSphere MQ、SonicMQ等3、什么时候转载 2012-08-18 22:00:28 · 17937 阅读 · 2 评论 -
TCP/IP、Http、Socket的区别
TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层:网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议传输层:TCP协议与UDP协议应用层:FTP、HTTP、TELNET、SMTP、DNS等协议 “我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意转载 2012-08-17 10:42:42 · 1355 阅读 · 0 评论 -
java实现多线程有两种方法
java实现多线程有两种方法1、继承Thread类2、实现Runnable接口这两种方法的共同点:不论用哪种方法,都必须用Thread(如果是Thead子类就用它本身)产生线程,然后再调用start()方法。两种方法的不同点:1、继承Thread类有一个缺点就是单继承,而实现Runnable接口则弥补了它的缺点,可以实现多继承2、继承Thread类如果产生Thread实转载 2011-03-09 15:56:00 · 1884 阅读 · 0 评论 -
开发高并发web应用的注意事项
1 对Collection、Map接口的类对象初始化时要先分配合理的空间大小,同时还要按照自已的实际需求选择合适的对象。例如:声明Vector vect=new Vector()时,系统调用:public Vector() {// 缺省构造函数this(10);// 容量是10;} 缺省分配10个对象大小容量。2 优化循环体转载 2012-08-17 11:05:27 · 5722 阅读 · 0 评论 -
JAVA 笔记 CopyOnWriteArrayList
在写代码时遇到了一个ConcurrentModificationException异常,百度了下发现是因为在使用Iterator遍历时原数据发生了变化导致的。业务的需求如下: 有一个数据监听器列表,当系统收到数据时遍历列表中的每一项并发送数据。当遍历的过程中有可以会新增或删除相应的监听器。 这种情况下可以使用CopyOnWriteArrayList 来实转载 2012-07-18 14:37:06 · 573 阅读 · 0 评论 -
Tomcat5 内存配置
Linux: 在/usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh 添加:JAVA_OPTS='-Xms512m -Xmx1024m' 要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不足。 -Xms:初始值 -Xmx:最大值 -Xmn:最小值Windows 在catalina.bat最前面转载 2012-06-12 09:34:13 · 796 阅读 · 0 评论 -
Java集合的Stack、Queue、Map的遍历
一、Map的遍历 import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * Map的遍历,这个遍历比较特殊,有技巧 * * @author leizhimin 2009-7-22 15:15:34 */ public class TestM转载 2012-06-03 15:06:43 · 6833 阅读 · 0 评论 -
Java 可变参数
Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。注意:可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。可变参数的特点:(1)、只转载 2012-06-02 16:43:12 · 562 阅读 · 0 评论 -
jsp跳转response.sendRedirect的注意事项
首先我们要明白用response.sendRedirect做转向的原理,它其实是向浏览器发送一个特殊的Header,然后由浏览器来做转向,转到指定的页面,所以用sendRedirect时,浏览器的地址栏上可以看到地址的变化。用则不同,它是直接在server做的,浏览器并不知道,也不和浏览器打交道,这从浏览器的地址并不变化可以看出。所以使用response.sendRedirect时就需转载 2012-05-09 16:45:32 · 1099 阅读 · 0 评论 -
设计模式之(一)--工厂模式(Factory)
个人建议设计模式学习方法:先不要理解一些抽象的概念,找到简单易懂的例子,拿到开发环境中,运行一下,了解其中接口和类的关系以后,再回过头来理解那些概念,这就好多了。工厂模式:主要用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类。 工厂模式的形态工厂模式主要用一下几种形态: 1:简单工厂(Simple Factory)。 2:工厂方法(Factory Metho转载 2011-03-05 16:29:00 · 733 阅读 · 0 评论 -
String.format
JDK1.5中,String类新增了一个很有用的静态方法String.format():format(Locale l, String format, Object... args) 使用指定的语言环境、格式字符串和参数返回一个格式化字符串。format(String format, Object... args) 使用指定的格式字符串和参数返回一个格式化字符串。举几个这个方法实用转载 2012-02-26 15:30:01 · 740 阅读 · 0 评论 -
jdbc 得到表结构、主键
假设有个con DatabaseMetaData dbmd = con.getMetaData(); rs = dbmd.getColumns(con.getCatalog(), schema, tableName, null); rs.getString(DATA_TYPE) java.sql.Types 的 SQL 类型 rs.getString(COLUMN_SIZE) 列的转载 2012-02-16 22:13:44 · 23923 阅读 · 0 评论 -
eclipse 内存不足
在桌面上建一个启动eclipse的快捷方式,在该快捷方式上单击右键,在常规标签的目标中加入下面的内容:E:\eclipse\eclipse.exe -clean -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M,其中“E:\eclipse\eclipse.exe” 是我eclipse的路径。在ec转载 2012-02-16 11:14:15 · 4104 阅读 · 0 评论 -
2007Excel中引用其它工作表数据作为有效性
1.把Sheet2中的数据,定义为名称作法~1)把数据全选起来2)右击,[命名单元格区域],比如为“数据”3)按[Enter]2.切换至Sheet13.用鼠标选定A1单元格4.按[数据]>[有效性]>选[设置]页5.在[有效性条件 允许]选[序列]6.鼠标定位在[来源]中,按[公式]>[用于公式]>下拉,选择[数据]>按[确定]原创 2011-12-08 10:40:07 · 4477 阅读 · 0 评论 -
jxl去掉excel有效性验证
在用jxl读入excel时,一直报如下错误:Warning: Cannot read drop down range Unrecognized token 43Exception in thread "main" java.lang.NullPointerExceptionat jxl.biff.DataValiditySettingsRecord.getFirstColumn(Da原创 2011-12-07 17:49:07 · 4228 阅读 · 0 评论 -
linux下如何启动和关闭weblogic
在你定义的域中可以找到如下命令:/[youHome]/domains/[yourDomain]/startWebLogic.sh/[youHome]/domains/[yourDomain]/stopWebLogic.sh启动weblogic,可以参考如下命令:nohup ./startWebLogic.sh &查看后台(nohup 会在当前目录下生成一个nohup.out转载 2011-12-05 12:58:36 · 30838 阅读 · 0 评论 -
设计模式之(十九)状态模式(state)
一、State模式定义: 允许一个对象在其状态改变时,改变它的行为。看起来对象似乎修改了它的类。 二、模式解说 State模式主要解决的是在开发中时常遇到的根据不同的状态需要进行不同的处理操作的问题,而这样的问题,大部分人是采用switch-case语句进行处理的,这样会造成一个问题:分支过多,而且如果加入一个新的状态就需要对原来的代码进行编译。State模式采用了对这些不同的状态进行封装的方式处理这类问题,当状态改变的时候进行处理然后再切换到另一种状态,也就是说把状态的切换责任交给转载 2011-03-12 10:17:00 · 556 阅读 · 0 评论 -
设计模式之(二十一)模板模式(template)
设计模式》一书对Template Method模式是这样描述的:定义一个操作中算法的骨架,而将一些步骤延迟到子类中。不改变算法的结构而重新定义它的步骤。我的理解:定义一个抽象类或者说接口,在它的内部定义一些抽象的方法(供TemplateMethod调用的步骤)和一个TemplateMethod方法(非抽象方法),封装了这些抽象方法的接口或抽象类就是骨架。而将它的实现延迟到子类中,也就是用子类实现它。不改变算法的结构而重新定义它的步骤,也就是改写或者实现父类的这些非TemplateMethod的抽象方法。下面转载 2011-03-12 10:49:00 · 509 阅读 · 0 评论 -
设计模式之(二)--单例模式(singleton)
<br />设计模式》一书对Singleton模式是这样描述的:<br />保证一个类只有一个实例,并提供一个访问它的全局访问点。<br />单线程下,代码如下:<br />public class Singleton{ // 常量 private static final Singleton st = new Singleton(); // 私有的构造方法 private Singleton() { } // 公有的静态的对外取此类实例的方法 public st转载 2011-03-06 15:03:00 · 548 阅读 · 0 评论 -
java集合
在使用java的时候,我们都会遇到使用集合(collection)的时候,但是java api提供了多种集合的实现。总的说来,java api中所用的集合类,都是实现了collection接口,他的一个类继承结构如下:collectioncollectioncollectioncollectioncollectioncollectionvector : 基于array的list,其实就是封装了array所不具备的一些功能方便我们使用,它不可能走出array的限制。性能也就不可能超越array。所以,在可能的转载 2011-02-12 22:15:00 · 863 阅读 · 0 评论 -
设计模式之(十三)--观察者模式(observer)
《设计模式》一书对Observer是这样描述的:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知并自动更新。举个例子,在现实生活中,父母与孩子是最亲密的人。父母做为孩子(被观察者)的监护人(观察者),当孩子和别人打架后,一定会告诉他的父母这件事(呵呵,当孩子很小时,通常会告诉父母,长大了以后,可能不会,这里的孩子指的是小孩子),当孩子获得奖学金后,也一定会告诉他的父母。下面我用Observer实现这个程序。代码如下:import java.util.Vector;转载 2011-03-07 07:35:00 · 485 阅读 · 0 评论