Struts上传附件问题(转)(2007-02-07 14:24)
前几天遇到如题目描述问题,要求象163邮箱附件那样的效果。从网上找了半天也没解决,自己断续的尝试了几天才弄出来。为了能帮以后的朋友遇到类似问题的朋友顺利解决问题,特在此描述。
主要代码如下
Form部分:
public class MultiUploadForm extends
ActionForm {
private List myFiles;
public MultiUploadForm(){
myFiles = new
ArrayList();
//为了能够在页面初始显示一个file
myFiles.add(new
UploadFile());
}
public List getMyFiles() {
return myFiles;
}
//注意这个方法的定义
public UploadFile
getUploa
December
4th in
Beijing
It is the first time that I stay over with my girlfrient whose
name is WeiMeng. The ambience is very comfortable all night, it
also make us feel we are at home. Hum, she just like a flower which
is in bud, shame, a little unsecure which make me feel that I am a
wolf and she is a girl with red hat.
There is a flaw last night. A man who learn in Computer
Science like her. It is rediculous that he said I am just a bean,he
want to fight with me and beat me down! Then i begin to imagine
what i will do if i meet him or he ask me for fighting.
I am not an adult , thinking is babyhood, for that i worry
about an rediculous thing and a fool man. In fact , there should be
no worry.
So i laugh at myself. Tell myself that i will never be succed
if i dont improve my ability of sustainable or cant face
stress
关于session的讨论(2006-11-06 23:57)
在此论坛上有很多关于session的问题.我现在将自己的一些理解和曾经碰到的问题总结一下,
希望对session 有困惑的朋友跟贴,一起探讨,尽量将困惑降到最低.
简单介绍:
------------------------------------------------------------------------------
session的内容是存储的在服务器上,安全性能比较好,不容易被盗看,但是
如果 session的量太大的时候,会占太多的服务器空间。
cookie是存储在客户端上的,不会耗费服务器资源,但是安全性会差一点,
而且使用 cookie会依赖于客户端的设置。
cookie不会依赖于session,session会利用cookie 来工作,但不会依赖
于cookie。(换句话,session 在离开cookie的时候,也可以工作。)
session 的工作方式:
-------------------------------------------------------------------------------
session 的工作流程, 初始化session -> 注册或使用session变量。
1,初始化session (三种方法)
a, session.auto_start = 1 利用脚本配置参数。 此参数可以通过php.ini 来设置
也可以在脚本上利用ini_set() 来设置。
这个题目含有许多需要解释的概念,最容易说明的是'站内消息',这是很多论坛都有的功能,可以通过web向其他的在线用户发送消息,很多用户都使用过。站内消息的第一个好处是大家都不需要安装客户端,你不用知道对方的MSN或者QQ,就能与他联系,称赞他的观点或者是给他一顿臭骂。第二个好处是客户管理方便,利用session来维护在线名单,各种脚本都已经把session操作封装得很易用了,不用像其他无状态的即时通信工具(比如使用UDP通信的工具)一样,要费一些脑细胞来解决在线名单的问题。缺点嘛,就是实时性不好,一般是在用户跳转或者刷新页面才能探测消息、更新在线名单。
Session监听嘛,没什么好解释的,java提供了很灵活的事件机制来监听session,可以监听session的创建和销毁,监控session所携带数据的创建、变化和销毁,可以监听session的锐化和钝化(了解对象序列化的兄弟应该知道这个),其他的平台是个什么情况我不太清楚,估计也差不多吧。如果能够对所有客户的session进行监控,就不用再去操作麻烦而危险的Application了。
Xmlhttp是MS推的一项技术,功能很复杂,可以做很多事情,比如客户端可以在简单的HTML中打开HTTP连接,主动向serve
session 监听(2006-11-06 23:55)
servlet中对session的监听有很多接口,功能很灵活,最常用的是监听Session和Attribute。这里要澄清一下概念,servlet中的session监听和Attribute监听含义有差别,session监听指的不是我们一般所理解的放置一个session或者销毁一个session,这是Attribute监听的功能,因为servlet中放置session的语法是session.setAttribute(“session名”,要放入的对象)。而session监听,监听的是HTTP连接,只要有用户与server连接,就算连接的是一个空白的jsp页面,也会触发session事件,所以此处的session实际上指的是connection,用来统计当前在线用户数最合适了。不知道我说清楚了没有。下面分别讲解这两种监听方式。
1、 session监听
首先编写一个session监听类,实作HttpSessionListener接口,它的作用是计算当前有多少个在线用户:
/*
*@Author bromon
*2004-6-12
*/
package org.bromon.test;
import javax.servlet.*;
import javax.servlet.http.*;
public class SessionCount implements HttpSessionListener{
浅出Java Socket编程(2006-10-27 18:04)
出于多种目的要写这篇文章,简单的说是因为最近的工作和Java
的Socket相关.所以工作之余就有了写点东西的想法.同样我不希望把文章写的太复杂,因此浅出自己的一点心得.
事实上网络编程简单的理解就是两台计算机相互通讯数据而已.对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了.Java
SDK提供一些相对简单的Api来完成这些工作.Socket就是其中之一.对于Java而言.这些Api存在与java.net
这个包里面.因此只要导入这个包就可以准备网络编程了.
网络编程的基本模型就是客户机到服务器模型.简单的说就是两个进程之间相互通讯,然后其中一个必须提供一个固定的位置,而另一个则只需要知道这个固定的位置.并去建立两者之间的联系..然后完成数据的通讯就可以了.这里提供固定位置的通常称为服务器,而建立联系的通常叫做客户端.基于这个简单的模型,就可以进入网络编程啦.
Java对这个模型的支持有很多种Api.而这里我只想介绍有关Socket的编程接口.对于Java而言已经简化了Socket的编程接口.首先我们来讨论有关提供固定位置的服务方是如何建立的.Java提供了ServerSocket来对其进行支持.事实上当你创建该类的一个实力对象并提供一个端口资源你
Web服务允许您以标准格式提供现有的或新增的功能,并且允许用户和应用程序从任何位置访问它们。
PowerDesigner 9.5同时针对Microsoft
.NET和Java引入了完善的Web服务设计和生成机制。使用PowerDesigner
9.5,您可以专注于Web服务的设计,而将所有必需的生成、实现构造的任务交给PowerDesigner完成。
Web服务概述 Web服务是一种接口,它描述了在网络上可通过SOAP消息进行访问的操作集合。
Web
服务的接口和部署位置(可选)由WSDL说明。WSDL是一种声明数据类型、消息、端口类型和端口(可选)的XML文档。通过WSDL,用户可以知道应该发送哪种格式的SOAP消息来调用Web服务以及返回消息的格式为何。
为了能使用户查找到所需的Web服务,服务提供者可能会在UDDI注册服务中发布WSDL文档。这样,用户就可以使用UDDI注册服务来搜索Web服务。
若要调用Web服务,用户可以向部署Web服务时所在的访问点URL发送SOAP消息
软考常用算法设计方法 六(2006-10-27 17:45)
六、贪婪法
贪婪法是一种不追求最优解,只希望得到较为满意解的方法。贪婪法一般可以快速得到满意的解,因为它省去了为找最优解要穷尽所有可能而必须耗费的大量时间。贪婪法常以当前情况为基础作最优选择,而不考虑各种可能的整体情况,所以贪婪法不要回溯。
例如平时购物找钱时,为使找回的零钱的硬币数最少,不考虑找零钱的所有各种发表方案,而是从最大面值的币种开始,按递减的顺序考虑各币种,先尽量用大面值的币种,当不足大面值币种的金额时才去考虑下一种较小面值的币种。这就是在使用贪婪法。这种方法在这里总是最优,是因为银行对其发行的硬币种类和硬币面值的巧妙安排。如只有面值分别为1、5和11单位的硬币,而希望找回总额为15单位的硬币。按贪婪算法,应找1个11单位面值的硬币和4个1单位面值的硬币,共找回5个硬币。但最优的解应是3个5单位面值的硬币。
【问题】 装箱问题
问题描述:装箱问题可简述如下:设有编号为0、1、…、n-1的n种物品,体积分别为v0、v1、…、vn-1。将这n种物品装到容量都为V的若干箱子里。约定这n种物品的体积均不超过V,即对于0≤i<
p>
若考察将n种物品的集合分划成n个
软考常用算法设计方法 三(2006-10-27 17:45)
【问题】 填字游戏
问题描述:在3×3个方格的方阵中要填入数字1到N(N≥10)内的某9个数字,每个方格填一个整数,似的所有相邻两个方格内的两个整数之和为质数。试求出所有满足这个要求的各种数字填法。
可用试探发找到问题的解,即从第一个方格开始,为当前方格寻找一个合理的整数填入,并在当前位置正确填入后,为下一方格寻找可填入的合理整数。如不能为当前方格找到一个合理的可填证书,就要回退到前一方格,调整前一方格的填入数。当第九个方格也填入合理的整数后,就找到了一个解,将该解输出,并调整第九个的填入的整数,寻找下一个解。
为找到一个满足要求的9个数的填法,从还未填一个数开始,按某种顺序(如从小到大的顺序)每次在当前位置填入一个整数,然后检查当前填入的整数是否能满足要求。在满足要求的情况下,继续用同样的方法为下一方格填入整数。如果最近填入的整数不能满足要求,就改变填入的整数。如对当前方格试尽所有可能的整数,都不能满足要求,就得回退到前一方格,并调整前一方格填入的整数。如此重复执行扩展、检查或调整、检查,直到找到一个满足问题要求的解,将解输出。
回溯法找一个解的算法:
软考常用算法设计方法 二(2006-10-27 17:44)
四、递归
递归是设计和描述算法的一种有力的工具,由于它在复杂算法的描述中被经常采用,为此在进一步介绍其他算法设计方法之前先讨论它。
能采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模较大问题的解。特别地,当规模N=1时,能直接得解。
【问题】 编写计算斐波那契(Fibonacci)数列的第n项函数fib(n)。
斐波那契数列为:0、1、1、2、3、……,即:
fib(0)=0;
fib(1)=1;
fib(n)=fib(n-1)+fib(n-2) (当n>1时)。
写成递归函数有:
int fib(int n)
{ if (n==0) return 0;
if (n==1) return 1;
if (n>1) return fib(n-1)+fib(n-2);
}
递归算法的执行过程分递推和回归两个阶段。在递推阶段,把较复杂的问题(规模为n)的求解推到比原问题简单一些的问题(规模小于n)的求解。例如上例中,求解fib(n),把它