WEB程序设计之JSP概要.docx

上传人:b****9 文档编号:25663299 上传时间:2023-06-11 格式:DOCX 页数:57 大小:56.16KB
下载 相关 举报
WEB程序设计之JSP概要.docx_第1页
第1页 / 共57页
WEB程序设计之JSP概要.docx_第2页
第2页 / 共57页
WEB程序设计之JSP概要.docx_第3页
第3页 / 共57页
WEB程序设计之JSP概要.docx_第4页
第4页 / 共57页
WEB程序设计之JSP概要.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

WEB程序设计之JSP概要.docx

《WEB程序设计之JSP概要.docx》由会员分享,可在线阅读,更多相关《WEB程序设计之JSP概要.docx(57页珍藏版)》请在冰豆网上搜索。

WEB程序设计之JSP概要.docx

WEB程序设计之JSP概要

Web程序设计复习资料

第1章JSP概述

ØJSP(JavaServerPage)由SunMicrosystems公司倡导、许多公司参与建立的一种动态网络技术标准。

由Java语言作为脚本语言。

为整个服务器端Java单元提供了一个接口服务于HTTP应用程序。

ØJava语言最大的特点是与运行平台无关;面向对象、高安全性和健壮性、分布式、多线程

ØWeb简介:

Web定义了Web客户端和Web服务端如何通信

ØHTTP简介:

HyperTextTransferProtocol,超文本传输协议。

用于传输超文本标记语言(HyperTextMarkupLanguageHTML)编写的网页文件。

具有支持B/S结构,简单快速,灵活,无连接,无状态的特点。

Ø

B/S结构:

(Browser/Server)B/S结构是三层体系结构,B/S结构要求客户端只需要安装一个浏览器(Browser),客户端通过浏览器将请求发送给Web服务器,Web服务器负责与后端数据库服务器进行数据通信。

ØC/S结构:

C/S是Client/Server的缩写,C/S结构是二层结构平台模式。

C/S结构要求客户端要安装指定的软件,客户端负责执行前端的数据处理,服务端进行后端的服务处理。

目前大多数的网络游戏都是采用C/S结构。

C/S结构如图所示。

ØB/S结构与C/S结构比较

比较项

B/S

C/S

服务器负荷量

维护费用

升级方便性

容易

困难

选择性

安全性

JSP、ASP、PHP等语言都是基于B/S结构开发系统软件的技术。

B/S为主流

Ø网站的构成

网站结构一般分为3层:

用户界面交互层、应用程序层、数据库层

用户界面交互层通常采用JSP或者HTML来创建界面,利用JavaScript和CSS来丰富界面效果。

应用程序层主要使用Java语言来处理各种不同的业务需求,在数据库层可以通过一些存储过程来处理数据的存储和检索。

ØServlet和JSP技术

Servlet和JSP技术都是属于Web层的技术。

这两项技术都可以解决动态网页的生成问题,但最好的方式是取两项技术各自的长处:

JSP负责网页表现设计,Servlet负责跳转控制。

每一个JSP文件在执行之前都会被转化成Servlet文件。

ØServlet简介

Servlet是用Java编写的服务端程序,它与协议和平台无关。

Servlet运行在JavaWebServer上,并采用了请求-响应的模式提供服务。

ØServlet的生命周期:

Servlet的生命周期可以分为4个阶段:

载入、初始化init()、执行service()--doGet()或doPost()、删除destory();

ØJSP简介

在传统的网页文件HTML中加入Java程序片段和JSP标记,就构成了JSP网页。

Ø第一个Servlet

super.init()//初始化方法;super.destory()//销毁时调用的方法;

doGet和doPost是常用的处理请求方式:

比较如下:

doGet

doPost

请求提交方式

通过URL地址提交

通过表单提交

提交长度

受限制

不受

安全性

相对doGet安全性稍好些

Ø第一个JSP程序

JSP页面主要由HTML和Java代码构成。

Java代码是通过<%和%>符号加入到HTML代码中间的。

<%@pagelangauge="java"contentType="text/html;charset=gb2312"pageEncoding="gb2312"%>

<%@pageimport="java.util.*“%>

...

其他HTML语言

<%

符合JAVA语法的JAVA语句

%>

其他HTML语言

●JSP指令,描述页面基本信息。

由“<%@”开始,“%>”结束。

●JSP声明,相当于Java类中的变量声明。

由“<%!

”开始,“%>”结束。

●JSP表达式,用于将jsp生成的数值嵌入HTML中。

“<%=%>”。

●位于“<%”和“%>”之间的代码块是描述JSP页面逻辑处理的Java代码。

习题1-8:

简述JSP技术和Servlet技术的区别和联系

JSP第一次运行的时候会编译成servlet。

jsp是web开发技术,servelt是服务器端运用的小程序,我们访问一个jsp页面时,服务器会将这个jsp页面转变成servelt小程序运行得到结果后,反馈给用户端的浏览器。

servlet相当于一个控制层再去调用相应的javabean处理数据,最后把结果返回给jsp。

servlet主要用于转向,将请求转向到相应的jsp页面。

Jsp更多的是进行页面显示,Servlet更多的是处理业务,即jsp是页面,servlet是实现jsp的方法。

实验三、1+1=<%=1+1%>

第2章JSP实现网站计数器

ØJSP中读取文本文件内容

●JSP中读取文本文件内容主要是通过Java的读取文件类,由JSP通过浏览器显示结果。

这样的文本读取需要使用JDK中的BufferedReader类和FileReader类。

●BufferedReader类用来从字符输入流中读取文本并将字符存入缓冲区以便能提供字符、数组的高效读取。

常用方法如下:

方法名

说明

Intread(charcbuf[])

读字符放入数组中,返回所读的字符

Intread(charcbuf[],intoffset,intlegnth)

读字符放入数组中的指定位置,返回所读的字符数

StringreadLine()

读取一文本行

Voidclose()

关闭流

●FileReader类用来读取字符文件,常用方法如下:

方法名

说明

Intread()

读一个字符作为方法的返回值。

如果返回值-1,表示文件结束

Intread(charcbuf[],intoffset,intlength)

读字符放入数组中的指定位置,返回所读的字符数

Voidclose()

关闭流

ØJSP向文本文件中写入内容

●JSP向文本文件中写入内容主要是通过Java写入文件类。

这样的文本写入需要使用JDK中的FileOutputStream类和PrintWriter类。

●FileOutputStream类是用来向File或FileDescriptor输出数据的一个输出流。

Ø完整网站计数器的实现

<%@pagelanguage="java"contentType="text/html;charset=gb2312"import="java.lang.*,java.io.*"pageEncoding="gb2312"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:

//www.w3.org/TR/html4/loose.dtd">

网站计数器

<%--网站计数器--%>

<%

Stringrecord=null;//从文本中读取出来的内容信息

BufferedReaderbr=null;//用于读取文本文件中的数据

StringFilePath="c:

\\count.txt";//文本文件的位置路径。

PrintWriterpw=null;//用于将数据写入到文本文件中

br=newBufferedReader(newFileReader(FilePath));//利用BufferedReader读取文本文件中的内容

record=br.readLine();//读取文本文件中的第一行内容

//对读取到的结果进行判断,如果为空则此访问者为第一个访问者

if(record==null)

{

record="1";

}else

{

record=(Integer.parseInt(record)+1)+"";//如果此访问者不是第一个访问者,则累加计数

}

%>

您是第<%=record%>位访问者。

//也可以写成<%out.println(record)%>

<%

//利用PrintWriter将数据写到文本文件中

pw=newPrintWriter(newFileOutputStream(FilePath));//将内容打印到文本上

pw.write(record);

pw.close();//清除PrintWriter对象

%>

本章习题

2-5:

在动态Web项目中创建名为test的jsp文件,在test.jsp中声明变量Stringcontent="你好,小明!

",然后在test.jsp中输出content的内容。

关键代码:

<%!

Stringcontent=“你好,小明!

”%>

<%=content%>

2-6:

利用JSP技术实现在网页中显示当前系统时间。

关键代码:

<%out.println(newjava.util.Date())%>

或:

<%Datedate=newDate();

Out.println(DateFormat.gettimeInstance().format(date));%>

本章实验:

一、向文本文件中写入“Java你好”

Stringrecord=“Java你好”;

StringFilePath=“c:

\\count.txt”;

PrintWriterpw=null;

pw=newPrintWriter(newFileOutputStream(FilePath));

pw.write(record);

pw.close();

2、读取文本文件中的内容并在页面中显示

Stringrecord=null;

StringFilePath=“c:

\\count.txt;

BufferedReaderbr=null;

br=newBufferedReader(newFileReader(FilePath));

record=br.readLine();

out.println(record);

pw.close();

3、向已有数据的文本中追加数据

(1)从文本文件中读取已存在内容

(2)record+=“不错的技术”;//追加方法

(3)处理后保存到文本文件

参考代码如下:

<%@pagelanguage="java"contentType="text/html;charset=GB2312"import="java.lang.*,java.io.*"pageEncoding="GB2312"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:

//www.w3.org/TR/html4/loose.dtd">

向已有数据的文本追加数据

<%

Stringrecord=null;

BufferedReaderbr=null;

StringFilePath="D:

\\count.txt";

PrintWriterpw=null;

br=newBufferedReaer(newFileReader(FilePath));

record=br.readLine();

if(record==null)

{record="JSP";

pw=newPrintWriter(newFileOutputStream(FilePath));

pw.write(record);

}

else

{

record=record+"不错的技术";

pw=newPrintWriter(newFileOutputStream(FilePath));

pw.write(record);

}

%>

显示内容为:

<%=record%>.

<%

pw=newPrintWriter(newFileOutputStream(FilePath));

pw.write(record);

pw.close();

%>

第3章JSP实现用户注册

ØHTML表单元素回顾

Form表单

元素名称

说明

所属标签

所属属性

Name

输入域的名称

Input,textarea,select

Value

输入域的值

Input,textarea

Text

建立一个单行输入文本框

input

Type

Password

同“text”,星号

Input

Type

Checkbox

建立一个复选框

Input

Type

Radio

建立一个单选框

Input

Type

Submit

建立一个提交按钮

Input

Type

Reset

建立复位按钮

Input

Type

Hidden

建立一个不被用户代理器所渲染的元素,即JSP页面对用户不可见

Input

Type

Textarea

建立一个多行输入文本域

Textarea

Select

建立一个列表选择

Select

用法示例:

电脑网络

影视娱乐

本科

专科

ØJSP处理请求数据

●JSP对象作用域:

application、session、page、request

●内建对象:

out、application

out.print(Stringname)和out.println(Stringname)

voidsetAttribute(Stringname,Objectvalue)和voidgetAttribute(Stringname)前者用于以键/值的方式保存对象到application对象中;后者根据名称去攻取application对象中的值。

●request对象处理用户请求信息

request对象实现的是javax.servlet.http.HttpServletRequest接口,表示客户端对网页的请求,并使用HTTP协议处理客户端的请求。

request对象的常用方法有StringgetParameter(Stringname),根据页面表单组件名称获取请求页面提交数据,返回值为String类型,参数与请求页面标签内的“name”值相对应。

例如,Stringname=(String)request.getParameter("username"),表示把“username”(请求页面的值)赋给“name”(本页面中的值)。

String[]getParameterValues(Stringname),用来获取页面请求中一个表单组件对应多个值时的用户请求数据,返回值为String类型的数组,同样,参数与请求页面标签内的“name”值相对应,注意,这个“name”在请求页面要对应多个值,如String[]channels=request.getParameterValues("channel")。

●response对象处理用户请求响应

response对象实现的同样是javax.servlet.http.HttpServletRequest接口,用于处理JSP生成的响应并将响应发送给客户端,同样的也是通过HTTP将响应发送给客户端。

response对象的常用方法有voidsetContentType(Stringname),设置作为响应生成内容的类型和字符编码,无返回值,“name”为类型和字符编码,

如response.setContentType("text/html;charset=GBK"),其中“charset”是字符编码;

voidsendRedirect(Stringname),发送一个响应给浏览器,指示其应请求另一个URL,无返回值,“name”为要请求的URL,如response.sendRedirect("response2.jsp")。

response.setIntHeader("Refresh",10)//网页10秒刷新一次

response.setIntHeader("Refresh","10;URL=")//刷新跳转

●字符转换

<%=newString(name.getBytes("ISO-8859-1"),"UTF-8")%>

Ø存储用户信息到数据库

●创建JDBC连接

JDBC是一种为常用数据库提供无缝连接的技术,是一种用于执行SQL的JavaAPI,它由一组用Java语言编写的类和接口组成。

JDBC为工具/数据库开发提供了一个标准的API,使它们能用JavaAPI来编写数据库应用程序。

ODBC(OpenDataBaseConnectivity)称为开放式数据库互连技术,是由Microsoft公司倡导并得到业界普遍响应的一种数据库连接技术。

JDBC是由Sun公司制定的,JDBC不是ODBC规则派生的,JDBC完全用Java编写,而ODBC是C语言接口。

但是JDBC和ODBC都是基于X/OPENSQL的命令层接口(CLI),相同的概念性基础使API工作进展更快,使API的接受更加容易。

Sun公司提供了将JDBC变为ODBC的JDBC-ODBC桥,这个用本地方法完成的版本虽然小但很有效。

●JDBC的4种驱动模式:

JDBC-ODBC桥、本地接口与Java程序相结合、面向数据库中间件、直接连接

●JDBC常用接口

Driver:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")//用于加载JDBC-ODBC桥驱动程序;使用前导入importjava.sql.*

DriverManager:

JDBC管理层,作用于用户和驱动程序之间

Connection:

代表与数据库的连接,即已经加载的Driver和数据库之间建立连接

例:

Connectionconn=DriverManager.getConnection("jdbc:

odbc:

DBname","loginName","password");

Statement:

用于将SQL语句发送到数据库中。

掌握Statement和PreparedStatement对象的使用;及SQL执行方法:

ResultSetexecuteQuery(Stringsql)、intexecuteUpdate(Stringsql)、Booleanexecute(Stringsql)。

Statementstmt=conn.createStatement();//由数据库连接对象conn生成数据库语句对象stmt

ResultSet:

包含符合SQL语句条件的所有行,即结果集。

掌握next()方法。

✓格式一:

执行基本SQL语句

Class.forName("JDBC驱动程序");

Connectionconn=DriverManager.getConnection("相应JDBC驱动程序的连接串);

Statementstmt=conn.createStatement();

ResultSetrs=stmt.executeQuery(“SQL语句");//如果是数据查询

stmt.executeUpdate("SQL语句");//如果是数据操作

✓格式二:

执行带参数的SQL语句

Class.forName("JDBC驱动程序");

Connectionconn=DriverManager.getConnection("相应JDBC驱动程序的连接串);

PreparedStatementstmt=connect.PreparedStatement(带参数的SQL语句);

stmt.setInt(设置参数的值);

ResultSetrs=stmt.executeQuery();//如果是数据查询

stmt.executeUpdate();//如果是数据操作

◆完整用户注册实现:

(本章实验内容)

<%--用户注册表单页面reg.jsp--%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">

用户注册

请完成以下表格

姓名:

请在此处

展开阅读全文
相关搜索

当前位置:首页 > 初中教育 > 科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1