Professional Documents
Culture Documents
开
重点
JSP 开发环境的配置。
数据库的几种连接方式及其原因与好处。
编写处理中文乱码问题程序。
使用 jsp 和 javabean 进行基本的系统交互
的功能
基本的用户管理功能
在 JSP 中实现连接数据库
( SQLServer2000 mysql 等)、的查询 ,
插入 , 删除的操作
JSP 运行环境
安装与配置的演示
系统变量中查找
ClassPath 、 JAVA_HOME 、 TOM CAT _H OME 、 PATH
Server.xml 文件的使用
改写 8080 端口号 : 打开 ,86 行
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8080" minProcessors="5" maxProcessors="75“
建立新的服务目录 :268 行
<Context path="/JspStudy" docBase="C:/JspStudy" debug="0"
reloadable="true" crossContext="true">
</Context>
JSP 执行 是否存在
N
过程 Y
是否是修改或创建 N
后第一次调用
Y
request
调用Jsp Parser将其
编译成Servlet程序
response
Client
调用JSDK将对应的Servlet
程序编译成Servlet字节码
Server
执行(若未载入则先载入)
已有的对应的Java字节码
一 JSP 页面结 构
html标记符、 Html网页制作
声明:变量、方法、类<%! %>
JAVA程序片<% %>
JAVA表达式<%= %>
JSP标签,分为指令标签和动作标签
注释
二、声明 <%! %>
变量的声明
方法的声明
类 的声明
在 <%! … … %> 中声明的变量、方法、类,
在整个 jsp 文件内都有效。
返回目 录
三、 JAVA 程序片
一个 JSP 页面可以有多个 JAVA 程序片。
语法格式如下:
<%-- 注释 --%>
– 这种注释不发送到客户端,不直接显示;
– 而且在源代码中也查看不到。
JSP 程序自身注释
<% 程序段
/* 多行注释内容
多行注释内容 */
程序段
// 单行注释内容
程序段
%>
Page 指令
Page 指令用 于定义 JSP 文件 中的全 局属 性。
JSP 语法格 式如下 : 8 种常 用的 Pag e 指令
<%@ page
[ l angua ge="j ava" ]
[ import ="{p ackage .clas s |
pack age. *},.. ." ]
[
cont entT ype=" text/h tml; chars et=GB2 312
"]
[ s essio n="tr ue | false " ]
[ b uffer ="non e | 8 kb | sizek b" ]
包含指令 include
include 指令:向当前页面内静态嵌入一个文件
的内容。 <%@ include file=" 文件名 " %>
语法格式如下:
<%@ include file="relativeURL" %> 或
<%@ include file=" 相对位置 " %>
动作标签 include
动态 包含 一个文件: 静态文件
( txt 、 html ) 或 动态文件( jsp) 。
<jsp: include page=“ 文件名” %> 。
<jsp: include page=“ 路径 / 文件名” %> 。
区别:
<%@ include file=" 文件名 " %>
<jsp: include page=“ 文件名” %>
指令标签的“包含指令 include” ,是将静态嵌入文件
作为主体文件的一部分,所以主文件和子文件其实是一
体,。
指令标签在编译时就将子文件载入;它不会检查所含文
件的变化,适用于包含静态页面。
动作标签的“包含指令 include” ,是动态嵌入文件,
子文件不必考虑主文件的属性。
动作标签在运行时才将子文件载入;它总是会检查所含
文件中的变化,适合用于包含动态页面,并且可以带参
数。
jsp 有哪些内置对象 ? 作用分别是
什么 ?
request 用户端请求,此请求会包含来自
GET/ POST 请求的参数
response 网页传回用户端的回应
session 与请求有关的会话期
application servlet 正在执行的内容
out 用来传送回应的输出
3.1 Request 对象方法
getServerPort()
getRemoteAddr()
getRemoteHost()
getProtocol()
getContentLength()
getContentType()
getContextPath()
getHeader(String name)
3.1 Request 对象方法
getHeaderNames()
getMethod()
getParameter(String name)
getServerName()
getparameterNames()
getParameterValues(String name)
3.2 Response 重定向
sendRedirect(URL) :可以将用户重定
向到一个不同的页面( URL )。
sendRedirect(URL) 方法通过返回特定
的状态代码而起作用,当它被调用时,返
回一个状态代码,然后在响应中定位,给
新页面一个新地址。
3.5 Out 对象的方法
– out.print (类型)或 out.println (类型): out.print() 方
法与 out.println() 方法的区别是 out.print() 方法在输出完
毕后,并不结束该行,而 out.println() 方法在输出完毕后
,会结束当前行,下一个输出语句将在下一行开始输出。
– out.newLine() :输出一个换行符号。
– out.flush() :输出缓冲区里的数据。 out.flush() 方法也会清除
缓冲区中的数据,但是此方法会先将之前缓冲区中的数据输出
至客户端,然后再清除缓冲区中的数据。
– out.close() :关闭输出流,从而可以强制终止当前页面的剩余
部分向浏览器输出。
File 类
可以用来生成 File 对象的构造函数为:
File(String directoryPath)
File(String directoryPath,String filename)
File(File dirObj,String filename)
其中:
directoryPath 是文件的路径名
filename 是文件名
dirObj 一个指定目录的 File 对象。
获取文件的属性
public String getName() :获取文件的名字
public boolean canRead() ;判断文件是否可读
public boolean canWrite() ;判断文件是否可写
public boolean exist() ;判断文件是否存在
public long length() :获取文件的长度
public String getAbsolutePath() :获取文件的绝对路径
public String getParent() :获取文件的父目录
public boolean isFile() ;判断文件是否是正常的文件,而
不是目录
public boolean isDirectry() ;判断文件是否是一个目录
public boolean isHidden() ;判断文件是否是隐藏文件
public long lastModified() 获取文件最后修改的时间
什么是 JDBC
JDBC 是一种可用于执行 SQL 语句的 Java
API ( ApplicationProgrammingInterface 应用程序设计接
口),它由一些 Java 语言编写的类和界面组成。 JDBC 为
数据库应用开发人员、数据库前台工具开发人员提供了一种
标准的应用程序设计接口,使开发人员可以用纯 Java 语言
编写完整的数据库应用程序。
通过使用 JDBC ,开发人员可以很方便地将 SQL 语句传送
给几乎任何一种数据库。也就是说,开发人员可以不必写一
个程序访问 Sybase ,写另一个程序访问 Oracle ,再写一个
程序访问 Microsoft 的 SQLServer 。用 JDBC 写的程序能够
自动地将 SQL 语句传送给相应的数据库管理系统
( DBMS )。
5.2 使用 JDBC - ODBC 桥访问数
据库
创建 ODBC 数据源
JDBC—ODBC 桥访问数据库
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:su
n",“user",“password")
数据查询: executeQuery()
Statement sql=con.createStatement();
ResultSet rs=sql.executeQuery("SELECT *
FROM students");
ResultSet 方法与属性:
JSP 发送执行更新语句
JSP 中, Statement 类提供的 executeUpdate() 方法用于执
行 INSERT 、 UPDATE 或 DELETE 语句以及 SQL DDL
(数据定义语言)语句,例如 CREATE TABLE 和 DROP
TABLE 。 INSERT 、 UPDATE 或 DELETE 语句的效果是
修改表中零行或多行中的一列或多列。 executeUpdate() 的
返回值是一个整数,指示受影响的行数(即更新计数)。对
于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,
executeUpdate() 的返回值总为零。
executeUpdate() 方法和执行 SELECT 声明的
executeQuery() 方法相似,但是它不返回一个 ResultSet ,
而是返回受到 INSERT 、 UPDATE 、或者 DELETE 操作影
响的行数。
什么是 JavaBeans
JavaBean 是一个软件组件,被设计成可以在不同
的环境里重复使用。 Bean 的功能没有限制。一个
Bean 可以完成一个简单的功能,如检查一个文件的
拼写,也可以完成复杂功能,如预测一只股票的业
绩。 Bean 对最终用户是可见的,如图形用户界面
上的一个按钮。 Bean 也可能对用户不可视,如实
时多媒体解码软件。最后,一个 Bean 可以被设计
成在用户工作站上独立工作,也可以与其他一组分
布式组件协调工作。
JavaBeans 的种类
将 JavaBeans 按功能分类,可分为“可视化的
JavaBeans” 和“非可视化的 JavaBeans” 两类。
– 可视化的 JavaBeans 就是在画面上可以显示出来的
JavaBeans 。通过届性接口接收数据并根据接收的信息
将数据显示在画面上,这就是可视化 JavaBeans 的功能。
一般用到的组件大部分都是可视化的。
– 非可视化的 JavaBeans ,就是没有 GUI 图形用户界面的
JavaBeans 。在 JSP 程序中常用来封装事务逻辑、数据
库操作等等,可以很好地实现业务逻辑和前台程序(如
jsp 文件)的分离,使得系统具有更好的健壮性和灵活性。
在 JSP 中使用 JavaBeans
<Jsp : usebean>
– <Jsp : usebean> 的作用是定义生成和使用
Bean 的环境。即如果使用 <Jsp : usebean> ,
就可以定义 Bean 的名称、类型、以及使用期限
等内容。它的基本操作是首先使用 id 和作用域查
找一个现有的对象,如果在指定的作用域中没有
找到具有指定 id 的对象,那么它会试图使用其他
属性创建一个新实例。 <Jsp : usebean> 格式
如下:
<jsp : useBean id=“ 名称” scope=“ 范围”
class=“ 类名称” type=“ 类的类
型” beanName=“Bean 的名称” >
在 JSP 中使用 JavaBeans
<jsp : setProperty>
– <jsp : setProperty> 是设定通过 <Jsp : usebean> 定义
的 Bean 对象属性的标记。 <jsp : setProperty> 元素使
用 Bean 给定的 setter 方法,在 Bean 中设置一个或多个
属性值。在使用这个元素之前必须得使用 <jsp :
useBean> 声明此 Bean 。因为, <jsp : useBean> 和
<jsp : setProperty> 是联系在一起的,同时这它们使用
的 Bean 实例的名字也应当相匹配。 <jsp :
setProperty> 的语法格式为:
<jsp : setProperty name=“beanName”
property=“propName” value=“string constant”/>
在 JSP 中使用 JavaBeans
<jsp : getProperty>
– <jsp : getProperty> 动作用于从一个
JavaBeans 中获取某个属性的值,无论原先这个
属性是什么类型的,都将被转换为一个 String 类
型的值。语法格式为:
<jsp : getProperty name=“beanName”
property=“propertyName”/>
doGet 方法
用来处理 HTTP 的 GET 请求。这个 GET 操作仅仅
允许客户从 HTTP server 上取得 GET 资源。重载
此方法的用户自动允许支持方法 HEAD 。这个 GET
操作被认为是安全的,没有任何的负面影响,对用
户来说是很可靠的。 doGet 方法格式为:
protected void doGet(HttpServletResquest
request,HttpServletResponse response)
throws ServletException,IOException;
doPost 方法
用来处理 HTTP 的 POST 请求。这个 POST 操作包
含了在必须通过此 Servlet 执行的请求中的数据。
由于它不能立即取得资源,所以对于那些涉及到安
全性的用户来说,通过 POST 请求操作会有一些副
作用。 doPost 方法格式为:
protected void doPost(HttpServletResquest
request,HttpServletResponse response)
throws ServletException,IOException;