You are on page 1of 37

JSP  


重点
 JSP 开发环境的配置。
 数据库的几种连接方式及其原因与好处。
 编写处理中文乱码问题程序。
 使用 jsp 和 javabean 进行基本的系统交互
的功能
 基本的用户管理功能
 在 JSP 中实现连接数据库
( SQLServer2000 mysql 等)、的查询 ,
插入 , 删除的操作
JSP 运行环境

安装配置 JSP 运行环境


JSP 服务器:操作系统 +JDK+JSP 引擎
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>

注意 : 改写 Server.xml 文件后,一定要重


新启动 Tomcat 服务器,
方法:“管理工具”——“服务”
jsp 的工作方式
jsp 是一个 B/S 模式的应用程序。
jsp 采用编译运行方式
(1) 由客户端访问了某一 jsp 文件。
(2)webserver 检查这个文件是否为新的,和原
有 class 文件进行比较。
(3) 如果是新的直接运行,如果不是则编译运行

查找对应的JSP文件

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 程序片。
 语法格式如下:

<% JAVA 程序片 %>


四、 JAVA 表达式
 用于在页面上输出信息,语法格式如下:
 <%= expression %> 或
 <%= 表达式 %>
五、 注释
 HTML 注释 <!--  注释内容  -->
 JSP 注释 <%--  注释内容  --%>  
HTML 注释
 语法格式如下:
– <!-- comment --> 或
– <!-- 注释 -->
 这种注释发送到客户端,不直接显示 ;
 但在源代码中可以查看到。
JSP 网页自身注释。

<%-- 注释 --%>
– 这种注释不发送到客户端,不直接显示;
– 而且在源代码中也查看不到。
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;

You might also like