您的位置:首页 > Web前端 > JavaScript

jsp语法基础四:

2014-02-26 22:34 232 查看
 
JSP中的文件操作(略)
File 类
File(String filename) 创建文件时,该文件被认为是与当前应用程序在同一目录
 
回压字符流
 
称 PushbackReader类创建的对象为回压字符流。回压流可以使用unread(char ch)将
一个字符回压到该流中,被回压的字符是该回压流紧接着再调用read()方法时最先读出
的字符。回压流可以用来监视读出的信息,当读出一个不需要的信息时,可以不处理该
信息,而将需要的信息回压,然后再读出回压的信息。该类的构造方法是:
PushbackReader(Reader in);
 
 
文件上传
<Form action= “接受上传文件的页面” method= “post”
ENCTYPE=“ multipart/form-data”
<Input Type= “File” name= “picture” >
</Form>
 
文件下载
JSP内置对象response调用方法getOutputStream()可以获取一个指向客户的输出流,
服务器将文件写入这个流,客户就可以下载这个文件了。
 
JSP中使用数据库(略)
JDBC(Java DataBase Connectivity是) Java数据库连接API。简单地说,JDBC能完成三件
事:
(1)与一个数据库建立连接,
(2)向数据库发送SQL 语句,
(3)处理数据库返回的结果
。JDBC 和数据库建立连接的一种常见方式是建立起
一个JDBC─ODBC 桥接器。由于ODBC 驱动程序被广泛的使用,建立这种桥接器后,
使得JDBC 有能力访问几乎所有类型的数据库。JDBC 也可以直接加载数据库驱动程序
访问数据库。
 
JSP与JavaBeans
按着Sun 公司的定义,JavaBeans 是一个可重复使用的软件组件。实际上JavaBeans
是一种Java 类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称
beans。由于javabeans 是基于java 语言的,因此javabeans 不依赖平台,具有以下特点:
1. 可以实现代码的重复利用
2. 易编写、易维护、易使用
3. 可以在任何安装了Java 运行环境的平台上的使用,而不需要重新编译。
 
我们已经知道,一个基本的JSP 页面就是由普通的HTML 标签和java 程序片组成,
如果程序片和HTML 大量交互在一起,就显得页面混杂,不易维护。JSP 页面应当将数
 
即可。不提倡大量的数据处理都用java程序片来完成。在JSP 页面中调用beans,可有
效的分离的静态工作部分和动态工作部分。
 
编写beans(遵循javaBean规范)
Javabeans 分为可视组件和非可视组件。在JSP 中主要使用非可视组件。对于非可视
组件,我们不必去设计它的外观,主要关心它的属性和方法。
编写javabeans 就是编写一个java 的类,所以你只要会写类就能编写一个beans,这
个类创建的一个对象称做一个beans
 
使用beans
为了在JSP 页面中使用benas,我们必须使用JSP 动作标签:useBean
useBean 格式:
<jsp:useBean id= “给bean起的名字” class= “创建beans的类” scope= “bean有效范
围”>
</jsp:useBean>

<jsp:useBean id= “给bean起的名字” class= “创建beans的类” scope= “bean有效范
围”/>
当服务器上某个含有useBean动作标签的JSP 页面被加载执行时,JSP 引擎将首先根
据id 的名字,在一个同步块中,查找JSP 引擎内置pageContent 对象中是否含有名字id
和作用域scope 的对象,如果这个对象存在,JSP 引擎就分配一个这样的对象给客户,这
样,客户就获得了一个作用域是scope、名字是id 的beans(就像我们组装电视机时获得
了一个有一定功能和使用范围的电子元件)。如果在pageContent 中没有查找到指定作用
域、名字是id 的对象,就根据class 指定的类创建一个名字是id 对象,即创建了一个名
字是id 的beans,并添加到pageContent 内置对象中,并指定该beans 的作用域是scope,
同时JSP 引擎分配给客户一个作用域是scope、名字是id 的beans。
 
当服务器上某个含有useBean动作标签的JSP 页面被加载执行时,JSP 引擎将首先根
据id 的名字,在一个同步块中,查找JSP 引擎内置pageContent 对象中是否含有名字id
和作用域scope 的对象,如果这个对象存在,JSP 引擎就分配一个这样的对象给客户,这
样,客户就获得了一个作用域是scope、名字是id 的beans(就像我们组装电视机时获得
了一个有一定功能和使用范围的电子元件)。如果在pageContent 中没有查找到指定作用
域、名字是id 的对象,就根据class 指定的类创建一个名字是id 对象,即创建了一个名
字是id 的beans,并添加到pageContent 内置对象中,并指定该beans 的作用域是scope,
同时JSP 引擎分配给客户一个作用域是scope、名字是id 的beans。
下面就useBean 标签中scope 取值的不同情况阐述如下:
 scope 取值page
JSP 引擎分配给每个客户的beans 是互不相同的,也就是说,尽管每个客户的beans
的功能相同,但它们占有不同的内存空间。该beans 的有效范围是当前页面,当客户离
开这个页面时,JSP 引擎取消分配给该客户的beans。
 scope 取值session
JSP 引擎分配给每个客户的beans 是互不相同的,该beans 的有效范围是客户的会话
期间,也就是说,如果客户在多个页面中相互连接,每个页面都含有一个useBeans 标签,
这些useBean 标签中id 的值相同,并且scope 的值都是session,那么,该客户在这些页
面得到的beans 是相同的一个。如果客户在某个页面更改了这个beans 的属性,其它页
面的这个beans 的属性也将发生同样的变化。当客户关闭浏览器时,JSP 引擎取消分配
给客户的beans。
scope 取值request
JSP 引擎分配给每个客户的beans 是互不相同的,该beans 的有效范围是request 期
间。客户在网站的访问期间可能请求过多个页面,如果这些页面含有socope 取值是
request 的useBeans 标签,那么pageCotent 对象在每个页面分配给客户的beans 也是互
不相同的。JSP 引擎对请求作出响应之后,取消分配给客户的这个beans。
scope 取值application
JSP 引擎为每个客户分配一个共享的beans,也就是说,所有客户共享这个beans,如
果一个客户改变这个beans 的某个属性的值,那么所有客户的这个beans 的属性值都发
生了变化。这个beans 直到服务器关闭才被取消。
注:当使用作用域是session的beans 时,要保证客户端支持Cooker.
为了使服务器的所有web 服务目录下的JSP 页面文件都能使用我们的beans,我们必
须将上面编译通过生成的字节码类文件:Circle.class 拷贝到JSP引擎的classes文件夹下,
另外,在使用beans 的JSP 页面中,必须有如下的import 指令:
<@page import= “类”>
 
(1)任何web 服务目录都可使用的beans 的存放位置
如果让任何web 服务目录中的JSP 页面都可以使用某个beans,那么创建这个beans
的字节码文件需存放在Tomcat安装目录的classes 目录中
 
JSP 引擎的内置PageContenet 对象用来存储供服务器使用的数据信息,通过该对象向
客户提供不同类型的各种数据对象。当含有ussBeans 标签的JSP 页面被执行后,beans
就被存放在pageContenet对象中, 如果你更改了创建beans 的java 类文件后,
pageContent 对象中的beans 并不能被更新,这是因为任何JSP 页面再次被访问执行时,
总是先到pageContenet中查找beans。而pageContent 对象直到服务器关闭才释放它存
储的数据对象。
 
getProperty 动作标签
使用该标签可以获得beans 的属性值,并将这个值用串的形式显示给客户。使用这个
标签之前,必须使用useBean标签获取得到一个beans
getProperty 动作标签:
 
 
<jsp:getProperty name= “beans 的名字” property= “beans 的属性” />

<jsp:getProperty name= “beans 的名字” property= “beans 的属性” />
</jsp:getProperty>
 
setProperty 动作标签
使用该标签可以设置beans 的属性值。使用这个标签之前,必须使用useBean 标签得
到一个可操作的beans

setProperty 动作标签可以通过3 种方式设置beans 属性的值。
 
(1)      将benas 属性的值设置为一个表达式的值或字符串。
<jsp:setProperty name= “beans 的名字” property= “beans 的属性” value=
“<%=expression%>” />
 
 benas 属性的值设置为一个字符串:
<jsp:setProperty name= “beans 的名字” property= “beans 的属性” value= 字符串
/>
如果将表达式的值设置为beans 属性的值,表达式值的类型必须和beans 的属性的类
型一致。如果将字符串设置为beans 的属性的值,这个字符串会自动被转化为beans 的
属性的类型
 
(2)通过HTTP 表单的参数的
值来设置beans 的相应属性的值,要求表单参数名字必须与beans属性的名字相同,JSP
引擎会自动将字符串转换为beans 属性的类型。
<jsp:setProperty name= "beans 的名字" property="*" />
 
(3)通过request 的参数的值
 
来设置beans 的相应属性的值,要求request参数名字必须与beans 属性的名字相同,JSP
引擎会自动将request 获取的字符串数据类型转换为beans 相应的属性的类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jsp