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").οnclick=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属性的值)的关系,前者是需要自己写,还是自动生成,需要实验

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
改正以下mysql语句:CREATE TABLE employees ( EmployeeID int NOT NULL AUTO_INCREMENT COMMENT '工号', Name varchar(20) NOT NULL COMMENT '姓名', sex char(2) DEFAULT NULL COMMENT '性别', BirthDate date DEFAULT NULL COMMENT '出生日期', Phone varchar(24) DEFAULT NULL COMMENT '电话', HireDate date DEFAULT NULL COMMENT '入职日期', Address varchar(15) DEFAULT NULL COMMENT '工作地点', Title varchar(30) DEFAULT NULL COMMENT '职位', ReportsTo int(11) DEFAULT NULL COMMENT '上级工号', PRIMARY KEY (EmployeeID), KEY FK_Employees_Employees (ReportsTo), KEY Name (Name), CONSTRAINT FK_Employees_Employees FOREIGN KEY (ReportsTo) REFERENCES employees (EmployeeID), CONSTRAINT employees_chk_1 CHECK (((sex = '男') or (sex = '女'))) ) ENGINE=InnoDB AUTO_INCREMENT=11; insert into employees(EmployeeID,Name,sex,BirthDate,Phone,HireDate,Address,Title,ReportsTo) values (1,'蔡小叶','女','1983-11-10','15651718131','2014-01-02','海南省三亚市','销售员',NULL), (2,'陈会玲','女','1983-12-24','15651792676','2011-09-10','河南省焦作市','总经理',NULL), (3,'陈荣','女','1984-03-14','18052098320','2014-09-26','江苏省南京市','销售员',NULL), (4,'江小利','女','1983-12-10','15651793136','2012-09-07','四川省蒲江市','销售员',NULL), (5,'吕倩','女','1980-10-28','15651036060','2014-08-27','浙江省宁波市','销售经理',NULL), (6,'于小飞','男','1984-02-19','15605167963','2013-12-16','湖北省宜昌市','销售员',NULL), (7,'袁卫华','男','1983-09-23','18761666129','2014-01-09','江苏省溧阳县','销售员',NULL), (8,'张家瑞','男','1983-05-26','18652204573','2012-09-05','四川省宜宾市','销售经理',NULL), (9,'张玉','男','1984-02-15','18914785173','2013-04-21','安徽省安庆市','销售员',NULL), (10,'赵恒','男','1983-03-10','18761662284','2012-10-30','深圳',NULL,NULL); 停止 复制
06-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值