posts - 89, comments - 241, trackbacks - 0, articles - 1
   :: 首页 ::  :: 联系 :: 聚合  :: 管理

     摘要: uploadFile.java  1package action;  2  3import java.io.File;      4import java.text.DateFormat;      5import ...  阅读全文

posted @ 2009-09-27 08:54 saobaolu| 编辑 收藏

Apache FileUpload可以应用于很多方面
现将一应用贴出
FileUploadServlet.java
 1 package Servlet;
 2 
 3 import java.io.File;
 4 import java.io.IOException;
 5 import java.util.Iterator;
 6 import java.util.List;
 7  
 8 import javax.servlet.ServletException;
 9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12  
13 import org.apache.commons.fileupload.FileItem;
14 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
15 import org.apache.commons.fileupload.servlet.ServletFileUpload;
16  
17 @SuppressWarnings("serial")
18 public class FileUploadServlet extends HttpServlet {
19     private String uploadPath = "D:\\temp"// 上传文件的目录
20     private String tempPath = "d:\\temp\\buffer\\"// 临时文件目录
21     File tempPathFile;
22  
23     @SuppressWarnings("unchecked")
24     public void doPost(HttpServletRequest request, HttpServletResponse response)
25            throws IOException, ServletException {
26        try {
27            // Create a factory for disk-based file items
28            DiskFileItemFactory factory = new DiskFileItemFactory();
29  
30            // Set factory constraints
31            factory.setSizeThreshold(4096); // 设置缓冲区大小,这里是4kb
32            factory.setRepository(tempPathFile);// 设置缓冲区目录
33  
34            // Create a new file upload handler
35            ServletFileUpload upload = new ServletFileUpload(factory);
36  
37            // Set overall request size constraint
38            upload.setSizeMax(4194304); // 设置最大文件尺寸,这里是4MB
39  
40            List<FileItem> items = upload.parseRequest(request);// 得到所有的文件
41            Iterator<FileItem> i = items.iterator();
42            while (i.hasNext()) {
43               FileItem fi = (FileItem) i.next();
44               String fileName = fi.getName();
45               if (fileName != null) {
46                   File fullFile = new File(fi.getName());
47                   File savedFile = new File(uploadPath, fullFile.getName());
48                   fi.write(savedFile);
49               }
50            }
51            System.out.print("upload succeed");
52        } catch (Exception e) {
53            // 可以跳转出错页面
54            e.printStackTrace();
55        }
56     }
57  
58     public void init() throws ServletException {
59        File uploadFile = new File(uploadPath);
60        if (!uploadFile.exists()) {
61            uploadFile.mkdirs();
62        }
63        File tempPathFile = new File(tempPath);
64         if (!tempPathFile.exists()) {
65            tempPathFile.mkdirs();
66        }
67     }
68 }
upload页面:
1 <form name="myform" action="FileUpload" method="post" enctype="multipart/form-data">
2 File:<br>
3   <input type="file" name="myfile"><br>
4   <br>
5    <input type="submit" name="submit" value="Commit">
6 </form>

一般来说,要使用apache fileUpload这个插件,一般要导入两个jar包
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
如果这个io包没有导入貌似便会报错。
点击下载这两个包的最新版。
/Files/chenglu/java/FileUpLoad.zip

posted @ 2009-09-23 12:08 saobaolu| 编辑 收藏

一个不会报错的jsp彩色验证码程序
一般的,会报servlet错误:
getOutputStream() has already been called for this response
但是这个程序不会报错,原因是把里面的空格都删除
-------------------------------------------------------------
在tomcat中jsp编译成servlet之后在函数_jspService(HttpServletRequest request, HttpServletResponse response)的最后
有一段这样的代码
finally {
      if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
    }
这里是在释放在jsp中使用的对象,会调用response.getWriter(),因为这个方法是和
response.getOutputStream()相冲突的!所以会出现以上这个异常。

然后当然是要提出解决的办法,其实挺简单的(并不是和某些朋友说的那样--
将jsp内的所有空格和回车符号所有都删除掉),

在使用完输出流以后调用以下两行代码即可:
out.clear();
out = pageContext.pushBody();

--------------------------------------------------------
分割线内为引用~

 1<%@ page  import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
 2<%@ page import="java.io.OutputStream" %>
 3<%!
 4Color getRandColor(int fc,int bc){
 5Random random = new Random();
 6if(fc>255) fc=255;
 7if(bc>255) bc=255;
 8int r=fc+random.nextInt(bc-fc);
 9int g=fc+random.nextInt(bc-fc);
10int b=fc+random.nextInt(bc-fc);
11return new Color(r,g,b);
12}

13%>
14<%
15try{
16response.setHeader("Pragma","No-cache");
17response.setHeader("Cache-Control","no-cache");
18response.setDateHeader("Expires"0);
19int width=60, height=20;
20BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
21OutputStream os=response.getOutputStream();
22Graphics g = image.getGraphics();
23Random random = new Random();
24g.setColor(getRandColor(200,250));
25g.fillRect(00, width, height);
26
27g.setFont(new Font("Times New Roman",Font.PLAIN,18));
28g.setColor(getRandColor(160,200));
29for (int i=0;i<155;i++)
30{
31int x = random.nextInt(width);
32int y = random.nextInt(height);
33int xl = random.nextInt(12);
34int yl = random.nextInt(12);
35g.drawLine(x,y,x+xl,y+yl);
36}

37String sRand="";
38for (int i=0;i<4;i++){
39String rand=String.valueOf(random.nextInt(10));
40sRand+=rand;
41g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
42g.drawString(rand,13*i+6,16);
43}

44session.setAttribute("rand",sRand);
45g.dispose();
46
47ImageIO.write(image, "JPEG",os);
48os.flush();
49os.close();
50os=null;
51response.flushBuffer();
52out.clear();
53out = pageContext.pushBody();
54}

55catch(IllegalStateException e)
56{
57System.out.println(e.getMessage());
58e.printStackTrace();
59}
%>
60

posted @ 2009-09-22 14:52 saobaolu| 编辑 收藏

DROP,CREATE这些是DDL语句,不能在JAVA中执行,存储过程中也是一样不能执行。
只有DML如insert,delete,update,select才能执行。
SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,
数据定义语言DDL,数据控制语言DCL
数据查询语言DQL Q = Query
数据操纵语言DML M = Manipulation
事务控制语言TCL C = Control
数据定义语言DDL D = Definition
数据控制语言DCL(自动提交事务)

最近在用java搞数据库的应用,进行create table操作的过程中一直有Exception异常。不懂。遂记录此条笔记。

posted @ 2009-09-22 08:45 saobaolu| 编辑 收藏

  A:
<s:a xhref=""></s:a>-----超链接,类似于html里的<a></a>
<s:action name=""></s:action>-----执行一个view里面的一个action
<s:actionerror/>-----如果action的errors有值那么显示出来
<s:actionmessage/>-----如果action的message有值那么显示出来
<s:append></s:append>-----添加一个值到list,类似于list.add();
<s:autocompleter></s:autocompleter>-----自动完成<s:combobox>标签的内容,这个是ajax

B:
<s:bean name=""></s:bean>-----类似于struts1.x中的,JavaBean的值

C:
<s:checkbox></s:checkbox>-----复选框
<s:checkboxlist list=""></s:checkboxlist>-----多选框
<s:combobox list=""></s:combobox>-----下拉框
<s:component></s:component>-----图像符号

D:
<s:date/>-----获取日期格式
<s:datetimepicker></s:datetimepicker>-----日期输入框
<s:debug></s:debug>-----显示错误信息
<s:div></s:div>-----表示一个块,类似于html的<div></div>
<s:doubleselect list="" doubleName="" doubleList=""></s:doubleselect>-----双下拉框

E:
<s:if test=""></s:if>
<s:elseif test=""></s:elseif>
<s:else></s:else>-----这3个标签一起使用,表示条件判断

F:
<s:fielderror></s:fielderror>-----显示文件错误信息
<s:file></s:file>-----文件上传
<s:form action=""></s:form>-----获取相应form的值

G:
<s:generator separator="" val=""></s:generator>----和<s:iterator>标签一起使用

H:
<s:head/>-----在<head></head>里使用,表示头文件结束
<s:hidden></s:hidden>-----隐藏值

I:
<s:i18n name=""></s:i18n>-----加载资源包到值堆栈
<s:include value=""></s:include>-----包含一个输出,servlet或jsp页面
<s:inputtransferselect list=""></s:inputtransferselect>-----获取form的一个输入
<s:iterator></s:iterator>-----用于遍历集合

L:
<s:label></s:label>-----只读的标签

M:
<s:merge></s:merge>-----合并遍历集合出来的值

O:
<s:optgroup></s:optgroup>-----获取标签组
<s:optiontransferselect doubleList="" list="" doubleName=""></s:optiontransferselect>-----左右选择框

P:
<s:param></s:param>-----为其他标签提供参数
<s:password></s:password>-----密码输入框
<s:property/>-----得到'value'的属性
<s:push value=""></s:push>-----value的值push到栈中,从而使property标签的能够获取value的属性

R:
<s:radio list=""></s:radio>-----单选按钮
<s:reset></s:reset>-----重置按钮

S:
<s:select list=""></s:select>-----单选框
<s:set name=""></s:set>-----赋予变量一个特定范围内的值
<s:sort comparator=""></s:sort>-----通过属性给list分类
<s:submit></s:submit>-----提交按钮
<s:subset></s:subset>-----为遍历集合输出子集

T:
<s:tabbedPanel id=""></s:tabbedPanel>-----表格框
<s:table></s:table>-----表格
<s:text name=""></s:text>-----I18n文本信息
<s:textarea></s:textarea>-----文本域输入框
<s:textfield></s:textfield>-----文本输入框
<s:token></s:token>-----拦截器
<s:tree></s:tree>-----树
<s:treenode label=""></s:treenode>-----树的结构

U:
<s:updownselect list=""></s:updownselect>-----多选择框
<s:url></s:url>-----创建url

posted @ 2009-09-16 07:58 saobaolu| 编辑 收藏

1)栈和队列的共同特点是 C
A)都是先进先出
B)都是先进后出
C)只允许在端点处插入和删除元素
D)没有共同点

2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是
A)acbed
B)decab
C)deabc
D)cedba

3)链表不具有的特点是 B
A)不必事先估计存储空间
B)可随机访问任一元素
C)插入删除不需要移动元素
D)所需空间与线性表长度成正比

5)为了提高测试的效率,应该  D
A)随机选取测试数据
B)取一切可能的输入数据作为测试数据
C)在完成编码以后制定软件的测试计划
D)集中对付那些错误群集的程序

算法的时间复杂度是指算法执行过程中所需要的基本运算次数

 

posted @ 2009-09-12 21:34 saobaolu| 编辑 收藏

这本书的名字叫做 < < Dive Into Python >> 一个完全开放,免费阅读和传播的一本书 http://www.diveintopython.org/
在这里,你可以下载到中文语言版本,不过一位Python大牛告诉我,读英文原版的更好。
这位Python大牛是一位受人尊敬的创业者 蓝弩的创始人之一。 http://www.lanoo.cc

posted @ 2009-09-11 10:28 saobaolu| 编辑 收藏

虽然没有win live writter好用,但是也可以满足blogjava的慢速。

posted @ 2009-09-11 08:51 saobaolu| 编辑 收藏

栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线形表。
    栈是一种数据结构,它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
    栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进来的压在底下,随后一件一件往堆。取走时,只能从上面一件一件取。堆和取都在顶部进行,底部一般是不动的。
  栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一堆称栈底。插入一般称为进栈(PUSH),删除则称为退栈(POP)。 栈也称为后进先出表(LIFO表)。
    1、进栈(PUSH)算法
        ①若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②);
        ②置TOP=TOP+1(栈指针加1,指向进栈地址);
        ③S(TOP)=X,结束(X为新进栈的元素);
    2、退栈(POP)算法
      ①若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作②);
      ②X=S(SOP),(退栈后的元素赋给X);
      ③TOP=TOP-1,结束(栈指针减1,指向栈顶)。
栈可以用来在函数调用的时候存储断点,做递归时要用到栈!

posted @ 2009-08-03 18:19 saobaolu| 编辑 收藏

     摘要: 用于鼠标移动到自定义(所有标签均可)的提示作用  阅读全文

posted @ 2009-07-30 21:44 saobaolu| 编辑 收藏

http://www.oracle.com/technology/global/cn/pub/articles/maps1.html

http://www.oracle.com/technology/global/cn/tech/java/ajax.html

IBM有这些教程 oracle也有咯~呵呵

posted @ 2009-07-20 13:52 saobaolu| 编辑 收藏

 1. Java中的异常处理机制的简单和应用。

  当Java程序违反了Java的语义规则时,Java虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是Java类库内置的语义。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是Java允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。

  2. Java的接口和C++的虚类的相同和不同处。

  由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,接口里面的属性在默认状态下面都是public static,所有方法默认情况下是public.一个类可以实现多个接口。

  3. 垃圾回收的优点和原理。并考虑2种回收机制。

  Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。

  4.线程同步的方法。

  wait():使一个线程处于等待状态,并且释放所持有的对象的lock。

  sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。

  notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切地唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。

  Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。

  5. Error与Exception有什么区别?

  Error表示系统级的错误和程序不必处理的异常,

  Exception表示需要捕捉或者需要程序进行处理的异常。

  6. 在java中一个类被声明为final类型,表示了什么意思?

  表示该类不能被继承,是顶级类。

  7. heap和stack有什么区别。

  栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素。

  8. 谈谈final, finally, finalize的区别。

  final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。

  finally—异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
 
  finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

  9. Anonymous Inner Class (匿名内部类)

  是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

  匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。

  10. Static Nested Class 和 Inner Class的不同

  Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。

  注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象。

转载:http://edu.hsw.cn/system/2009/07/13/050238819.shtml

posted @ 2009-07-13 20:14 saobaolu| 编辑 收藏

今日做网站,对js  div+css等小有感冒
1.首页flash图片轮播源文件
/Files/chenglu/flash-index.rar
2.图片局部放大
/Files/chenglu/tjpzoom.zip
3.Tab内容切换
/Files/chenglu/ajaxtabscontent.rar
4.Jquery报纸特效
/Files/chenglu/jquerynewspager.rar

posted @ 2009-07-04 09:17 saobaolu| 编辑 收藏

 

1<href="#" onclick="this.style.behavior='url(#default#homepage)';this.setHomePage(chenglu.blogjava.net)" > <font color="#FFFFFF">设为首页 </font> </a> 
2<href="#" onClick="window.external.AddFavorite(document.location.href,'Javazhai)" onmousemove="status='收藏本页';" onmouseout="status='';"> <font color="#FFFFFF">加入收藏夹 </font> </a>

posted @ 2009-06-14 18:07 saobaolu| 编辑 收藏

一个人如果不懂得处世的艺术,尤其是处世没有一点“心机”,是无法获得成功的。要处理好与同事、朋友、家人等一切社会关系,在如今越来越复杂的社会里,要想更好地生存和发展,必须要学会处世之道。处世厚黑学是一种智慧和谋略,是助我们通往成功之路的向导。

1、要懂得适度伪装自己,不能太单纯。
要想保护自己,发展自己,要懂得适度伪装自己。

2、做人要留退路,留余地。
做人难,难做人。很多时候,不仅要给别人留有余地,还要给自己铺个台阶。

3、嘴不遮掩难成大事。
有些人话说得绝对,信誓旦旦,又嘴不遮掩,处处许诺,结果能做到的很少,泡汤的很多,最终累得自己半死,还遭人讨厌,真是得力不讨好,费心还伤神。

4、成熟而不世故。
成熟的人,做人沉着稳当,人人想与之交往,这样的人在社会上做人也左右逢源,如鱼得水;而世故的人,本以为占了便宜,把社会上各种算计运用得自以为是,结果,人人对你敬而远之。

5、想得开活得不累。
宠辱不惊,看庭前花开花落;去留无意,望天上云卷云舒。心态决定一切,有好的心态就活得潇洒不累。

6、没事不惹事,来事不怕事。
一般来说,自然形成的都是圆的,人为修饰的都是方的,因此,方为动,圆为静,方是原则,圆是机变,方是以不变应万变,圆是以万变应不变。外表要圆(大智若愚),内心要方(清静明志),对己要方(严以律己),对人要圆(宽以待人)。

7、防挨朋友刀。
处世最怕的是挨朋友插的刀。因为是朋友,你不注意他,因为是朋友,你不防范他,因为是朋友,他了解你的肢体命脉,所以给你那一刀插得最深,因为是朋友,他才会真懂得背后下手。

8、用势利眼寻找可靠伙伴。
有点势利眼可谓是善识时务,不懂得势利的人,只能说自欺欺人,表面哽气,其实糊涂。人生当中,免不了与他人合作,有“势利眼”的人,能选择高能耐有前途的人,自己自然也沾光。

9、放下面子来做人。
只要脸不太厚,心不太黑,做人就能做得完善,做事就能做得完美。

posted @ 2009-06-11 15:57 saobaolu| 编辑 收藏

仅列出标题
共6页: 上一页 1 2 3 4 5 6 下一页