2013-03-27

先是看了struts的一些其他功能,由于没有实践,忘记的差不多了,应该是说上传和下载文件,和多文件的处理,要用到流

翻书中……………..

上传:

JSP中,<s:file  …….>标签,并且一定要在form的参数中写上:”enctype=”multipart/form-data””

      类中,要有<s:file  …….>name属性同名的变量,File类型的,先把这个文件变成输入流,然后new一个文件输出流,要求有文件位置,再用字节缓存,把输入流的内容都读到输出流中,最后关闭流

      代码: File f = new File("D:\\TDDOWNLOAD\\TEST.txt");

       FileInputStream fis = newFileInputStream(f);

       FileOutputStream fos = newFileOutputStream("D:\\TDDOWNLOAD\\out.txt");

       byte[] buffer= new byte[1024];

       int count;

       while((count =fis.read(buffer))>0)

       {

           fos.write(buffer, 0, count);

       }

       fis.close();

       fos.close();

 

多文件伤处:注意点是几个file标签的name一定要写成一样,方便生成list,

 

下载:

      JSP页面中可用连接的形式<a href=””>,可以直接写连接,也可以写action,在代码中处理

 

      代码:只要生成输入流就可以了,要有一个文件路径的变量,路径由配置文件给出,生成输入流的方法体可以这么写servletActionContext.getServletContext().getResourceAsStream(downloadFile);

      配置文件:下载的话,配置文件是关键,

Ex:

<action name=”download”class=”adsfasdfa”>

传递参数,指定要下载的文件的路径

      <param name=”downloadFile”>d:/programfiles/12.txt</param>

<result name=”success” type=”stream”>    

      输入流的名称,对应Action类中的getTargetFile()方法

      <param name=”inputName”>targetFile</param>

      设置下载文件的文件名

      <param name=”contentDisposition”>

           filename=”example.rar”

      </param>

      指定下载文件的缓冲区的大小

      <param name=”bufferSize”>4096</param>

</result>

</action>

 

下午的时候学习了ajax是个什么东东

Ajax不是一门新语言什么的,就是一种技术的运用,是异步的JS和XML

看到了两种写法

目前只熟悉第一种

1.   获取浏览器实例,区分是不是IE4.5

2.   再调用发放

3.   然后就能对状态值进行判断

4.   判断体内就可以对服务器端返回的值进行判断处理

 

几个注意点,运用这个ajax技术之后就不要再和struts中的一些地方搞混淆了

1.   send中的方法也可以带参数,对应action中的方法不需要返回String值,定义成void

2.   需要一个String类型的result变量,来反馈给客户端结果

3.   JS方法需要调用,反馈结果之后可以用window.location();继续走,因为没有strtus的一系列了。

 

 

晚上的时候看了DOM

这是文件对象模型。是表示和处理一个HTML或XML文档的常用方法

DOM中常用的document.getElementById();和getElementsByTagName()

document.getElementById("ID");注释:getElementById() 无法工作在 XML 中。在 XML 文档中,您必须通过拥有类型 id 的属性来进行搜索,而此类型必须在XML DTD 中进行声明。

getElementsByTagName() 方法会使用指定的标签名返回所有的元素(作为一个节点列表),这些元素是您在使用此方法时所处的元素的后代。

getElementsByTagName() 可被用于任何的 HTML 元素:

对 firstChild 最普遍的用法是访问某个元素的文本:

var x=[a paragraph]; var text=x.firstChild.nodeValue;parentNode属性常被用来改变文档的结构。假设您希望从文档中删除带有 id 为"maindiv" 的节点:

var x=document.getElementById("maindiv");x.parentNode.removeChild(x);首先,您需要找到带有指定 id 的节点,然后移至其父节点并执行 removeChild() 方法。

 

nodeList,

您可以通过使用length 属性来循环遍历节点列表:var x=document.getElementsByTagName("p"); for (vari=0;i<x.length;i++) { // do something with each paragraph }您也可以通过索引号来访问某个具体的元素。

要访问第三个<p> 元素,您可以这么写:var y=x[2];

 

简而言之,DOM是最大的对象可以在任何页面调用

 

几个注意点:

绝不要使用在文档加载之后使用 document.write()。这会覆盖该文档。

 

如需改变 HTML 元素的内容,请使用这个语法:

Document.getElementById(),innerHTML =*****;

 

如需改变 HTML 元素的属性,请使用这个语法:

Document.getElementByID().attribute = ****;

 

如需改变 HTML 元素的样式,请使用这个语法:

Document.getElementById().style.property = ******;

 

使用 HTML DOM 来分配事件

HTML DOM允许您通过使用 JavaScript 来向 HTML 元素分配事件:

document.getElementById("myBtn").onclick=function(){displayDate()};

 

创建新的元素

<script>
var para=document.createElement("p");
var node=document.createTextNode("这是新段落。");
para.appendChild(node);
 
var element=document.getElementById("div1");
element.appendChild(para);
</script>

 

 

其实最开始是准备看JS的,然后做了份试题,对了13/20

好吧,该睡觉了,明天要正常起床啊,明天继续,恩,来干劲了

2013/3/28 03:15

 

疑问:

拦截器到底有什么用,干什么的,怎么用

 

Document.getElementById().Inner:什么的这玩意是属于哪里的内容,可用范围是什么,

答:DOM中自带的,也就是到处都可以用。“.innerHTML=’asdfasdf’”

 

对于uploadFileName和upload(file标签中name属性的值)的关系,前者是需要自己写,还是自动生成,需要实验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值