JSP编程技术 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线

JSP编程技术精美图片
》JSP编程技术电子书籍版权问题 请点击这里查看《

JSP编程技术书籍详细信息

  • ISBN:9787302450207
  • 作者:暂无作者
  • 出版社:暂无出版社
  • 出版时间:2016-10
  • 页数:暂无页数
  • 价格:33.10
  • 纸张:胶版纸
  • 装帧:平装
  • 开本:16开
  • 语言:未知
  • 丛书:暂无丛书
  • TAG:暂无
  • 豆瓣评分:暂无豆瓣评分
  • 豆瓣短评:点击查看
  • 豆瓣讨论:点击查看
  • 豆瓣目录:点击查看
  • 读书笔记:点击查看
  • 原文摘录:点击查看

内容简介:

本书作为JSP相关课程的教材,从教学和实用的角度出发,详细介绍了JSP在Web应用开发中的运用。本教材从JSP基础知识入手,在强调使学生全面掌握JSP基本操作的基础上,把知识点与应用实例相结合,使学生学习起来有的放矢,操作时也更加得心应手。同时结合JSP内部知识体系,按照循序渐进的原则,由浅入深地介绍了如何用JSP进行Web动态网站的开发和应用。

本书所有知识都结合具体实例进行介绍,详略得当,使读者能够快速掌握开发动态网站的方法。

本书既可以作为普通高等院校计算机及相关专业的本科教材,同时,也适合JSP初学者及网站开发人员参考使用。


书籍目录:

目录

第1章  JSP概述1

1.1  B/S结构2

1.1.1  B/S结构的原理2

1.1.2  B/S结构的特点3

1.1.3  常见的B/S结构动态网页5

1.2  JSP的技术特征6

1.2.1  JSP的特点6

1.2.2  JSP的工作流程7

1.2.3  JSP页面的组成8

1.3  JSP中各种技术的关系8

1.3.1  JSP与HTML语言8

1.3.2  JSP与Java应用程序8

1.3.3  JSP与Java Applet程序9

1.3.4  JSP与JavaScript语言9

1.3.5  JSP与Servlet技术9

1.4  JSP运行环境的配置10

1.4.1  JSP的运行环境10

1.4.2  JDK的安装与配置11

1.4.3  Tomcat的安装与启动13

1.4.4  Eclipse的安装与使用16

1.5  实训一:JSP实验环境配置及JSP

页面测试21

1.6  本章小结24

练习与提高(一)24

第2章  JSP基础知识27

2.1  HTML基础28

2.1.1  HTML概述28

2.1.2  HTML文件的结构29

2.1.3  HTML的基本元素与属性29

2.1.4  表格30

2.1.5  表单32

2.2  JSP脚本标识34

2.2.1  声明34

2.2.2  代码段37

2.2.3  表达式38

2.2.4  注释39

2.3  JSP程序开发模式43

2.3.1  单纯的JSP编程43

2.3.2  JSP JavaBean编程43

2.3.3  JSP JavaBean Servlet编程44

2.3.4  MVC模式45

2.4  运行JSP时常见的出错信息及处理46

2.5  实训二:简单JSP页面的运行及

调试47

2.6  本章小结48

练习与提高(二)49

第3章  JSP中的指令和动作51

3.1  JSP中的指令52

3.1.1  page指令52

3.1.2  include指令57

3.2  JSP中的动作60

3.2.1  include动作标记60

3.2.2  param动作标记62

3.2.3  forward动作标记64

3.2.4  plugin动作标记66

3.2.5  useBean动作标记68

3.2.6  setProperty动作标记71

3.2.7  getProperty动作标记72

3.3  实训三:JSP指令与动作的运用74

3.4  本章小结78

练习与提高(三)78

第4章  JSP的内置对象83

4.1  内置对象概述84

4.2  request对象86

4.2.1  获取客户信息87

4.2.2  获取请求参数88

4.2.3  获取查询字符串90

4.2.4  在作用域中管理属性91

4.2.5  获取Cookie92

4.2.6  访问安全信息93

4.2.7  访问国际化信息94

4.3  response对象94

4.3.1  动态设置响应的类型95

4.3.2  重定向网页96

4.3.3  设置页面自动刷新以及

定时跳转97

4.3.4  配置缓冲区98

4.4  out对象99

4.4.1  向客户端输出数据100

4.4.2  管理输出缓冲区100

4.5  session对象101

4.5.1  创建及获取客户会话属性102

4.5.2  从会话中移除指定的对象103

4.5.3  设置会话时限104

4.6  application对象105

4.6.1  查找Servlet有关的属性

信息105

4.6.2  管理应用程序属性106

4.7  其他内置对象107

4.7.1  pageContext对象107

4.7.2  page对象109

4.7.3  config对象110

4.8  实训四:简易购物网站111

4.9  本章小结117

练习与提高(四)117

第5章  JavaBean技术121

5.1  JavaBean概述122

5.1.1  JavaBean简介122

5.1.2  JavaBean的种类122

5.1.3  JavaBean规范123

5.2  JavaBean的使用124

5.2.1  创建JavaBean124

5.2.2  值JavaBean的使用127

5.2.3  工具JavaBean的使用132

5.3  实训五:用JavaBean实现购物车135

5.4  本章小结144

练习与提高(五)145

第6章  JSP中数据库的使用147

6.1  JDBC技术148

6.1.1  JDBC概述148

6.1.2  JDBC驱动程序149

6.2  JDBC的使用步骤151

6.2.1  加载JDBC驱动程序151

6.2.2  创建数据库连接153

6.2.3  创建Statement实例155

6.2.4  执行SQL语句、获得结果156

6.2.5  关闭连接158

6.3  数据库操作技术159

6.3.1  SQL常用命令159

6.3.2  创建数据库162

6.3.3  查询操作165

6.3.4  更新操作175

6.3.5  添加操作179

6.3.6  删除操作182

6.3.7  访问Excel文件183

6.4  实训六:用户管理系统185

6.5  本章小结194

练习与提高(六)194

第7章  Servlet技术199

7.1  Servlet基础200

7.1.1  Servlet简介200

7.1.2  Servlet的生命周期201

7.1.3  Servlet类和方法202

7.1.4  简单的Servlet程序203

7.2  Servlet跳转205

7.2.1  客户端跳转205

7.2.2  服务器跳转206

7.3  Servlet的使用207

7.3.1  获取客户端信息207

7.3.2  过滤器210

7.3.3  监听器214

7.4  实训七:Servlet应用218

7.5  本章小结223

练习与提高(七)223

第8章  表达式语言225

8.1  EL表达式的语法226

8.1.1  EL简介226

8.1.2  运算符227

8.1.3  变量与常量233

8.1.4  保留字236

8.2  EL数据访问237

8.2.1  对象的作用域238

8.2.2  访问JavaBean240

8.2.3  访问集合242

8.3  其他内置对象243

8.3.1  param和paramValues对象243

8.3.2  cookie对象245

8.3.3  initParam对象246

8.4  实训八:用EL表达式实现数据

传递247

8.5  本章小结250

练习与提高(八)250

第9章  综合应用实训251

9.1  简易的留言管理程序252

9.1.1  需求分析252

9.1.2  总体设计253

9.1.3  系统实现254

9.2  MVC模式留言管理程序265

9.2.1  需求分析265

9.2.2  总体设计266

9.2.3  系统实现266

9.3  本章小结287

参考文献289


作者介绍:

暂无相关内容,正在全力查找中


出版社信息:

暂无出版社相关信息,正在全力查找中!


书籍摘录:

第2章  JSP基础知识

 

  本章要点

  本章介绍网页制作基础语言HTML,以及JSP基本语法知识、JSP页面运行及调试方法,还有JSP程序开发模式等。通过对本章的学习,读者可以做出网页与程序交互的界面,也能了解JSP程序的运行原理。

  学习目标

  1. 掌握HTML基础。

  2. 掌握JSP基本语法。

  3. 掌握JSP运行调试时常见的出错信息及处理。

 

2.1 

HTML基础

2.1.1 

HTML概述

  HTML(Hypertext Marked Language,超文本标记语言)是一种用来制作超文本文档的简单标记语言。超文本传输协议规定了浏览器在运行HTML文档时所遵循的规则和进行的操作。协议的制订使浏览器在运行超文本时有了统一的规则和标准。用HTML编写的超文本文档称为HTML文档,而能独立于各种操作系统平台。自1990年以来,HTML就一直被用作WWW(World Wide Web,万维网)的信息表示语言,使用HTML语言描述的文件,需要通过Web浏览器显示出效果。

  所谓超文本,是因为它可以加入图片、声音、动画、影视等内容。事实上,每一个 HTML文档都是一种静态的网页文件,这个文件里面包含了HTML指令代码,这些指令代码并不是一种程序语言,它只是一种确定网页中资料排版显示方式的标记语言,易学易懂、非常简单。HTML的普遍应用带来了超文本技术,即通过单击鼠标,可以从一个主题跳转到另一个主题,从一个页面跳转到另一个页面,实现与世界各地主机的文件链接。

  HTML的一些应用如下所示。

  (1)    通过HTML,可以表现出丰富多彩的设计风格。

* 图片调用:<IMG

SRC="文件名">

* 文字格式:<FONT

SIZE="5" COLOR="#00FFFF">文字</FONT>

  (2)    通过HTML可以实现页面之间的跳转。

* 页面跳转:<A

HREF="文件路径/文件名"></A>

  (3)    通过HTML可以展现多媒体的效果。

* 音频:<EMBED

SRC="音乐地址" AUTOSTART=true>

* 视频:<EMBED

SRC="视频地址" AUTOSTART=true>

  由此可以看到HTML超文本文件中需要用到的一些标记。在HTML中,每个用作标记的符号都是一条命令,它告诉浏览器如何显示文本。这些标记均由"<"和">"符号以及一个字符串组成。而浏览器的功能,是对这些标记进行解释,以显示出文字、图像、动画,播放声音或视频。这些标记符号以"<标记名

属性>"的格式来表示。

  HTML只是一个纯文本文件。创建一个HTML文档时,只需要两个工具,一个是HTML编辑器,一个Web浏览器。HTML编辑器是用于生成和保存HTML文档的应用程序。Web浏览器是用来打开Web网页文件,让我们可以查看Web资源的客户端程序。

2.1.2 

HTML文件的结构

  元素是HTML语言的基本成分。元素大部分是成对出现的,即有开始标记和结束标记。元素的标记要用一对尖括号括起来,并且结束标记的形式总是在开始标记前加一个斜杠,如开始标记为<body>,结束标记为</body>。但也有一些标记只要求使用单一的标记符号,如<br>。

  HTML文件的基本结构如下:

 

<HTML>

<HEAD>

  头部信息

</HEAD>

<BODY>

  正文

</BODY>

</HTML>

 

2.1.3 

HTML的基本元素与属性

1.HEAD元素

  HEAD元素出现在文档的开头部分。<HEAD>与</HEAD>之间的内容不会在浏览器的文档窗口中显示,但是其间的元素具有特殊重要的意义。

  头部标记内容如表2-1所示。

表2-1  头部标记的内容

头部元素

描  述

<META>

关于文档本身的信息

<TITLE>

文档的标题信息

<BASE>

文档的URL

<BASEFONT>

设定基准的文字字体、字号和颜色

<LINK>

设定外部文件的链接

<SCRIPT>

设定文档中的脚本程序

<STYLE>

设置CSS样式表的内容

 

2.BODY元素

  BODY元素是HTML文档的主体部分。在<BODY>与</BODY>之间,放置的是页面显示的所有内容,BODY元素会有很多的内置属性,这些属性可以规定HTML文档主体部分的显示特征。

  BODY元素的属性如表2-2所示。

表2-2  BODY元素的属性

属  性

描  述

Bgcolor

设置网页的背景颜色

Background

设置网页的背景图片

Text

设置网页文字的颜色

Link

设置网页未访问过的链接颜色

Alink

设置网页链接正在被单击时的颜色

Vlink

设置网页链接访问过后的颜色

Topmargin

设置网页的上边框

Leftmargin

设置网页的左边框

Marginwidth

设置网页的空白宽度

Marginheight

设置网页的空白高度

 

  【例2-1】演示如何使用HTML头元素和主体元素:

 

<html>

  <head>

    <title>我是标题!</title>

  </head>

  <body>

    我是主体!

  </body>

</html>

 

  运行结果如图2-1所示。

 

图2-1  使用HTML头元素和主体元素

2.1.4 

表格

  表格是由<table>标记来定义的。每个表格均有若干行,由<tr>标记定义,每行被分割为若干单元格,由<td>标记定义。

  字母td指表格数据(table data),即数据单元格的内容。数据单元格可以包含文本、图片、列表、段落、表单、水平线、表格等。

  表格的基本结构如下:

 

<table>定义表格

  <tr>

    <th>定义表头</th>

  </tr>

  <tr>定义表行

    <td>定义单元格</td>

  </tr>

</table>

 

  表格的属性如表2-3所示。

表2-3  表格的属性

属  性

描  述

Width

指定表格或某一个表格单元格的宽度,单位可以是%或者像素

Height

指定表格或某一个表格单元格的高度,单位可以是%或者像素

Border

表格边框的粗细

Bgcolor

指定表格或某一个单元格的背景颜色

Background

指定表格或某一个单元格的背景图片。其属性指向一个URL地址

Bordercolor

指定表格或某一个单元格的边框颜色

Bordercolorlight

表格亮边框的颜色

Bordercolordark

表格暗边框的颜色

Align

指定表格或某一个单元格中内容的对齐方式

Cellspacing

单元格的间距

Cellpadding

单元格的边距

 

  【例2-2】在HTML文档中定义学生成绩表:

 

<!DOCTYPE HTML>

<html>

<head>

<meta charset="utf-8">

<title>表格示例</title>

</head>

<body>

<table width="300"

height="150" border="1" align="center">

  <caption>学生考试成绩单</caption>

  <tr>

    <td align="center" valign="middle">姓名</td>

    <td align="center" valign="middle">语文</td>

    <td align="center" valign="middle">数学</td>

    <td align="center" valign="middle">英语</td>

  </tr>

  <tr>

    <td align="center" valign="middle">琦琦</td>

    <td align="center"

valign="middle">89</td>

    <td align="center"

valign="middle">92</td>

    <td align="center"

valign="middle">97</td>

  </tr>

  <tr>

    <td align="center" valign="middle">宁宁</td>

    <td align="center" valign="middle">93</td>

    <td align="center"

valign="middle">86</td>

    <td align="center"

valign="middle">80</td>

  </tr>

  <tr>

    <td align="center" valign="middle">婷婷</td>

    <td align="center"

valign="middle">85</td>

    <td align="center"

valign="middle">86</td>

    <td align="center"

valign="middle">90</td>

  </tr>

</table>

</body>

</html>

 

  运行结果如图2-2所示。

 

图2-2  在HTML中显示学生成绩单

2.1.5 

表单

  HTML表单用于搜集不同类型的用户输入。

  表单是一个包含表单元素的区域。表单元素(例如文本框、下拉列表、单选按钮、复选框等)是允许用户在表单中输入信息的元素。

  表单使用表单标记<FORM>来定义。

  表单的结构如下:

 

<FORM 属性="属性值">

  <INPUT NAME="输入域名称" TYPE="输入域类型"

  ...

</FORM>

 

  FORM元素的属性如表2-4所示。表单标记如表2-5所示。

  多数情况下,被用到的表单标记是输入标记<INPUT>。输入类型是由类型属性TYPE定义的。常用到的输入类型有文本域TEXT、密码域PASSWORD、按钮BUTTON、单选按钮RADIO、复选框CHECKBOX、提交按钮SUBMIT、重置按钮RESET。

 

 

表2-4  FORM元素的属性

属  性

描  述

Name

表单的名称

Action

用来定义表单处理程序的位置(相对地址或地址)

Method

定义表单的提交方式:GET、POST

Enctype

定义表单内容的编码方式

Target

定义返回信息的显示方式

  注意:GET有数据量限制,POST无以上限制,以文件形式传输。

 

表2-5  表单标记

标  记

描  述

<form>

定义供用户输入的表单

<input>

定义输入域

<textarea>

定义文本域(一个多行的输入控件)

<label>

定义一个控件的标签

<fieldset>

定义域

<legend>

定义域的标题

<select>

定义一个选择列表

<optgroup>

定义选项组

<option>

定义下拉列表中的选项

<button>

定义一个按钮

 

  【例2-3】使用表单的文本域:

 

<form>

  First name:

  <input type="text" name="firstname" />

  <br />

  Last name:

  <input type="text" name="lastname" />

</form>

 

  运行结果如图2-3所示。

  【例2-4】使用表单的单选按钮:

 

<form>

  <input type="radio" name="sex"

value="male" /> Male

  <br />

  <input type="radio" name="sex"

value="female" /> Female

</form>

 

  运行结果如图2-4所示。

 

               图2-3  表单的文本域                       图2-4  表单的单选按钮

  【例2-5】使用表单的动作属性(action):

 

<form name="input"

action="html_form_action.asp" method="get">

  Username:

  <input type="text" name="user" />

  <input type="submit" value="Submit" />

</form>

 

  运行结果如图2-5所示。

 

图2-5  使用表单的动作属性

 

2.2 

JSP脚本标识

2.2.1 

声明

  在JSP页面中可以声明变量、方法和类,其声明格式为:

 

<%!声明变量、方法和类的代码 %>

 

  特别要注意,在"<%"与"!"之间不要有空格。声明的语法与在Java语言中声明变量和方法时的语法是一样的。

1.声明变量

  在"<%!"和"%>"标记之间声明变量,即在"<%!"和"%>"之间放置Java的变量声明语句。变量的类型可以是Java语言允许的任何数据类型。我们将这些变量称为JSP页面的成员变量。

  【例2-6】声明变量:

 

<%!

int x, y=100, z;

String tom=null, jery="Love JSP";

Date date;

%>

  这里,"<%!"和"%>"之间声明的变量在整个JSP页面内都有效,因为JSP引擎将JSP页面转译成Java文件时,将这些变量作为类的成员变量,这些变量的内存空间直到服务器关闭才被释放。当多个客户请求一个JSP页面时,JSP引擎为每个客户启动一个线程,这些线程由JSP引擎服务器来管理。这些线程共享JSP页面的成员变量,因此任何一个用户对JSP页面成员变量操作的结果,都会影响到其他用户。

2.方法声明

  在"<%!"和"%>"标记之间声明方法,其方法在整个JSP页面有效,但是,方法内定义的变量只在方法内有效。

  【例2-7】声明方法:

 

<%@ page contentType="text/html;

charset=utf-8" %>

<%!

int num = 0;                                        //声明一个计数变量

synchronized void add() {                //该方法实现访问次数的累加操作

  num ;

}

%>

<% add(); %>                   

<html>

         <body><center>您是第<%=num%>位访问该页面的游客!</center></body>

</html>

 

  运行结果如图2-6所示。

 

图2-6  使用方法的声明

  示例中声明了一个num变量和add()方法。add()方法对num变量进行累加操作,synchronized修饰符可以使多个同时访问add()方法的线程排队进行调用。

  当个用户访问该页面后,变量num被初始化,服务器执行<% add(); %>小脚本程序,从而add()方法被调用,num变为1。当第二个用户访问时,变量num不再被重新初始化,而使用前一个用户访问后num的值,之后调用add()方法,num值变为2。

3.声明类

  可以在"<%!"和"%>"之间声明一个类。该类在JSP页面内有效,即在JSP页面的Java程序段部分可以使用该类创建对象。下例中,定义了一个Circle类,该类的对象负责求圆的面积。当客户向服务器提交圆的半径后,该对象计算圆的面积。

  【例2-8】使用类的声明:

 

<%@ page contentType="text/html;

charset=utf-8"%>

<HTML>

<BODY>

<FONT size="4">

<p>请输入圆的半径:<BR>

<FORM action="" method=get

name=form>

  <INPUT type="text" name="cat"

value="1">

  <INPUT TYPE="submit" value="送出"

name=submit>

</FORM>

<%!

public class Circle

{

  double r;

  Circle(double r)

  {

    this.r = r;

  }

  double 求面积()

  {

    return Math.PI*r*r;

  }

}

%>

<%

String str =

request.getParameter("cat");

double r;

if(str != null)

{

  r = Double.parseDouble(str);

}

else

{

  r = 1;

}

Circle circle = new Circle(r);

%>

<p>圆的面积是:<%=circle.求面积()%>

</FONT>

</BODY>

</HTML>

 

  运行结果如图2-7所示。

 

图2-7  使用类声明

 

 

2.2.2 

代码段

  JSP允许在"<%"和"%>"之间插入Java程序段。一个JSP页面可以有许多程序段,这些程序段将被JSP引擎按顺序执行。

  在一个程序段中声明的变量叫作JSP页面的局部变量,它们在JSP页面内的相关程序段以及表达式内都有效。这是因为JSP引擎将JSP页面转译成Java文件时,将各个程序段的这些变量作为类中某个方法的变量,即局部变量。

  利用程序段的这个性质,有时可以将一个程序段分割成几个更小的程序段,然后在这些小的程序段之间再插入JSP页面的一些其他标记元素。

  当程序段被调用执行时,这些变量被分配内存空间,当所有的程序段调用完毕后,这些变量即可释放所占的内存。

  当多个客户请求一个JSP页面时,JSP引擎为每个客户启动一个线程,一个客户的局部变量和另一个客户的局部变量被分配不同的内存空间。因此,一个客户对JSP页面局部变量操作的结果,不会影响到其他客户的这个局部变量。

  【例2-9】下面的程序段可以计算1到100的和:

 

<%@ page contentType="text/html;

charset=utf-8"%>

<HTML>

<BODY>

<FONT size="10">

<%!

long continueSum(int n)

{

  int sum = 0;

  for(int i=1; i<=n; i )

  {

    sum = sum i;

  }

  return sum;

}

%>

 

<p>  1到100的连续和:

<br>

<%

long sum;

sum = continueSum(100);

out.print(" " sum);

%>

 

</FONT>

</BODY>

</HTML>

 

  运行结果如图2-8所示。

 

图2-8  在JSP中使用Java代码段

2.2.3 

表达式

  表达式用于向页面中输出信息,其使用格式为:

 

<%=变量或可以返回值的方法或Java表达式 %>

 

  特别要注意,"<%"与"="之间不要有空格。

  JSP表达式在页面被转换为Servlet后,变成了out.print()方法。所以,JSP表达式与JSP页面中嵌入到小脚本程序中的out.print()方法实现的功能相同。如果通过JSP表达式输出一个对象,则该对象的toString()方法会被自动调用,表达式将输出toString()方法返回的内容。

  JSP表达式可以应用到以下几种情况。

  (1)   向页面输出内容,例如下面的代码。

  【例2-10】向页面输出内容:

 

<% String name =

"www.xxx.com"; %>

用户名:<%=name%>

 

  上述代码将生成如下运行结果:

 

用户名:www.xxx.com

 

  (2)   生成动态的链接地址,例如下面的代码。

  【例2-11】生成动态的链接地址:

 

<% String path =

"welcome.jsp"; %>

<a href="<%=path%>">链接到welcome.jsp</a>

 

  上述代码将生成如下的HTML代码:

 

<a href="welcome.jsp">链接到welcome.jsp</a>

 

  (3)   动态指定Form表单处理页面,例如下面的代码。

  【例2-12】动态指定Form表单处理页面:

 

<% String name = "logon.jsp";

%>

<form

action="<%=name%>"></form>

 

  上述代码将生成如下HTML代码:

 

<form

action="logon.jsp"></form>

 

  (4)   为通过循环语句生成的元素命名,例如下面的代码。

  【例2-13】为通过循环语句生成的元素命名:

 

<%

for(int i=1; i<3; i ) {

%>

  file<%=i%>:<input type="text"

name="<%="file" i%>"><br>

<%

}

%>

 

  上述代码将生成如下HTML代码:

 

file1:<input type="text"

name="file1"><br>

file2:<input type="text"

name="file2"><br>

2.2.4 

注释

  在JSP页面中可以使用多种注释,如HTML中的注释、Java中的注释和在严格意义说属于JSP页面自己的注释--带有JSP表达式和隐藏的注释。在JSP规范中,它们都属于JSP中的注释,并且它们的语法规则和运行的效果有所不同。本小节将向读者介绍JSP中的各种注释。

  (1)   HTML中的注释。JSP文件是由HTML标记和嵌入的Java程序段组成的,所以在HTML中的注释同样可以在JSP文件中使用。注释格式如下:

 

<!--注释内容-->

 

  【例2-14】HTML中的注释:

 

<!--欢迎提示信息!-->

<table><tr><td>欢迎访问!</td></tr></table>

 

  使用该方法注释的内容在客户端浏览器中是看不到的,但可以通过查看HTML源代码看到这些注释内容。

  访问该页面后,将会在客户端浏览器中输出以下内容:

 

欢迎访问!

 

  通过查看HTML源代码,将会看到如下内容:

 

<!--欢迎提示信息!-->

<table><tr><td>欢迎访问!</td><tr></table>

 

  (2)   带有JSP表达式的注释。在HTML注释中可以嵌入JSP表达式,注释格式如下:

 

<!--comment<%=expression %>-->

 

  包含该注释语句的JSP页面被请求后,服务器能够识别注释中的JSP表达式,从而来执行该表达式,而对注释中的其他内容不做任何操作。

  当服务器将执行结果返回给客户端后,客户端浏览器会识别该注释语句,所以被注释的内容不会显示在浏览器中。

 

  【例2-15】使用带有JSP表达式的注释:

 

<% String name="YXQ"; %>

<!--当前用户:<%=name%>-->

<table><tr><td>欢迎登录:<%=name%></td></tr></table>

 

  访问该页面后,将会在客户端浏览器中输出以下内容:

 

欢迎登录:YXQ

 

  通过查看HTML源代码,将会看到以下内容:

 

<!--当前用户:<%=name%>-->

<table><tr><td>欢迎登录:YXQ</td></tr></table>

 

  (3)   隐藏注释。前面已经介绍了如何使用HTML中的注释,这种注释虽然在客户端浏览页面时不会看见,但它却存在于源代码中,可通过在客户端查看源代码看到被注释的内容。所以严格来说,这种注释并不安全。这里将介绍一种隐藏注释,注释格式如下:

 

<%--注释内容--%>

 

  用该方法注释的内容,不仅在客户端浏览时看不到,而且即使在客户端查看HTML源代码,也不会看到,所以安全性较高。

  【例2-16】使用隐藏注释:

 

<%--获取当前时间--%>

<table>

<tr><td>当前时间为:<%=(new

java.util.Date()).toLocaleString()%></td></tr>

</table>

 

  访问该页面后,将会在客户端浏览器中输出以下内容:

 

当前时间为:2015-12-20  13:37:30

 

  通过查看HTML源代码,将会看到以下内容:

 

<table>

  <tr><td>当前时间为:2015-12-20 13:37:30</td></tr>

</table>

 

  (4)   脚本程序(Scriptlet)中的注释。在脚本程序中所包含的是一段Java代码,所以在脚本程序中的注释与在Java中的注释是相同的。

  脚本程序中包括下面3种注释方法。

  ①   单行注释。

  单行注释的格式如下:

 

//注释内容

 

  该方法进行单行注释,符号"//"后面的所有内容为注释的内容,服务器对该内容不进行任何操作。因为脚本程序在客户端通过查看源代码是不可见的,所以在脚本程序中通过该方法被注释的内容也是不可见的,并且在后面将要提到的通过多行注释和提示文档进行注释的内容都是不可见的。

  【例2-17】在JSP文件中包含以下代码:

 

<%

int count = 1;  //定义一个计数变量

%>

计数变量count的当前值为:<%=count%>

 

  访问该页面后,将会在客户端浏览器中输出以下内容:

 

计数变量count的当前值为:1

 

  通过查看HTML源代码,将会看到以下内容:

 

计数变量count的当前值为:1

 

  因为服务器不会对注释的内容进行处理,所以可以通过该注释来暂时地删除某一行代码。例如下面的代码。

  【例2-18】使用单行注释暂时删除一行代码:

 

<%

String name = "YXQ";

//name = "YXQ2015";

%>

用户名:<%=name%>

 

  包含上述代码的JSP文件被执行后,将输出如下结果:

 

用户名:YXQ

 

  ②   多行注释。

  多行注释是通过"/*"与"*/"符号进行标记的,它们必须成对出现,在它们之间输入的注释内容可以换行。注释格式如下:

 

/*

注释内容1

注释内容2

*/

 

  为了程序界面的美观,开发员习惯上在每行的注释内容前面加入一个"*"号,构成如下所示的注释格式:

 

/*

 * 注释内容1

 * 注释内容2

*/

 

  与单行注释一样,在"/*"与"*/"之间被注释的所有内容,即使是JSP表达式或其他的脚本程序,服务器都不会做任何处理,并且多行注释的开始标记和结束标记可以不在同一个脚本程序中同时出现。

  【例2-19】在JSP文件中包含以下代码:

 

<%@ page

contentType="text/html;charset=UTF-8"%>

<%

  String state = "0";

  /* if(state.equals("0")) {   //equals()方法用来判断两个对象是否相等

      state = "版主";

%>

      将变量state赋值为"版主"。<br>

<%

    }

  */

%>

变量state的值为:<%=state%>

 

  包含上述代码的JSP文件被执行后,将输出如图2-9所示的结果。

  若去掉代码中的"/*"和"*/"符号,则将输出如图2-10所示的结果。

 

       图2-9  多行注释(一)                          图2-10  多行注释(二)

  ③   文档注释。

  该种注释会被Javadoc文档工具在生成文档时读取,文档是对代码结构和功能的描述。

  注释格式如下:

 

/**

  提示信息l

  提示信息2

*/

 

  该注释方法与上面介绍的多行注释很相似,但细心的读者会发现,它是以"/**"符号作为注释的开始标记,而不是"/*"。与多行注释一样,对于被注释的所有内容,服务器都不会做任何处理。

  【例2-20】在Eclipse开发工具中,向创建的JSP文件输入下面的代码:

 

<%!

         int

i = 0;

         /**

                  @作者:YXQ

                  @功能:该方法用来实现一个简单的计数器

         */

         synchronized

void add() {

                  i ;

         }

%>

<% add(); %>

当前访问次数:<%=i%>

 

  将鼠标指针移动到<% add(); %>代码上,将出现如图2-11所示的提示信息。

 

图2-11  提示文档注释

 

2.3 

JSP程序开发模式

2.3.1 

单纯的JSP编程

  在该模式下,通过应用JSP中的脚本标志,可直接在JSP页面中实现各种功能。虽然这种模式很容易实现,但是,其缺点也非常明显。因为将大部分的Java代码与HTML代码混淆在一起,会给程序的维护和调试带来很多困难,而且难于理清完整的程序结构。

  这就好比规划管理一个大的企业,如果将负责不同任务的所有员工都安排在一起工作,势必会造成公司秩序混乱、不易管理等许多的隐患。所以说,单纯的JSP页面编程模式是无法应用到大型、中型甚至小型的JSP Web应用程序开发中的。

2.3.2 

JSP JavaBean编程

  该模式是JSP程序开发经典设计模式之一,适合小型或中型网站的开发。

  利用JavaBean技术,可以很容易地完成一些业务逻辑上的操作,例如数据库的连接、用户登录与注销等。JavaBean是一个遵循了一定规则的Java类,在程序的开发中,将要进行的业务逻辑封装到这个类中,在JSP页面中,通过动作标签来调用这个类,从而执行这个业务逻辑。此时的JSP除了负责部分流程的控制外,大部分用来进行页面的显示,而JavaBean则负责业务逻辑的处理。可以看出,该模式具有一个比较清晰的程序结构,在JSP技术的起步阶段,JSP JavaBean设计模式曾被广泛应用。

  图2-12表示了该模式对客户端的请求进行处理的过程,相关的说明如下。

  (1)    用户通过客户端浏览器请求服务器。

  (2)    服务器接收用户请求后调用JSP页面。

  (3)    在JSP页面中调用JavaBean。

  (4)    在JavaBean中连接及操作数据库,或实现其他业务逻辑。

  (5)    JavaBean将执行的结果返回JSP页面。

  (6)    服务器读取JSP页面中的内容(将页面中的静态与动态内容相结合)。

  (7)    服务器将终的结果返回给客户端浏览器进行显示。

 

图2-12  JSP JavaBean设计模式

2.3.3 

JSP JavaBean Servlet编程

  JSP JavaBean设计模式虽然已经对网站的业务逻辑和显示页面进行了分离,但这种模式下的JSP不但要进行程序中大部分的流程控制,而且还要负责页面的显示,所以仍然不是一种理想的设计模式。

  在JSP JavaBean设计模式的基础上加入Servlet来实现程序中的控制层,是一个很好的选择。在这种模式中,由Servlet来执行业务逻辑并负责程序的流程控制,JavaBean组件实现业务逻辑,充当着模型的角色,JSP用于页面的显示。可以看出,这种模式使得程序中的层次关系更明显,各组件的分工也非常明确。图2-13表示了该模式对客户端的请求进行处理的过程。

 

图2-13  JSP JavaBean Servlet设计模式

  图2-13所示的模式中,各步骤的说明如下。

  (1)    用户通过客户端浏览器请求服务器。

  (2)    服务器接收用户请求后调用Servlet。

  (3)    Servlet根据用户请求调用JavaBean处理业务。

  (4)    在JavaBean中连接及操作数据库,或实现其他业务逻辑。

  (5)    JavaBean将结果返回Servlet,在Servlet中将结果保存到请求对象中。

  (6)    由Servlet转发请求到JSP页面。

  (7)    服务器读取JSP页面中的内容(将页面中的静态内容与动态内容结合)。

  (8)    服务器将终的结果返回给客户端浏览器进行显示。

  但JSP JavaBean Servlet模式同样也存在缺点。该模式遵循了MVC设计模式,MVC只是一个抽象的设计概念,它将待开发的应用程序分解为三个独立的部分:模型(Model)、视图(View)和控制器(Controller)。虽然用来实现MVC设计模式的技术可能都是相同的,但各公司都有自己的MVC架构。也就是说,这些公司用来实现自己的MVC架构所应用的技术可能都是JSP、Servlet与JavaBean,但它们的流程及设计却是不同的,所以工程师需要花更多的时间去了解。从项目开发的观点上来说,因为需要设计MVC各对象之间的数据交换格式与方法,所以会需要花费更多的时间在系统的设计上。

  使用JSP JavaBean Servlet模式进行项目开发时,可以选择一个实现了MVC模式的现成的框架,在此框架下进行开发,能够大大节省开发时间,会取得事半功倍的效果。目前,已有很多可以使用的现成的MVC框架,例如Struts框架。

2.3.4 

MVC模式

  MVC(Model-View-Controller,模型-视图-控制器)是一种程序设计概念,它同时适用于简单的和复杂的程序。使用该模式,可将待开发的应用程序分解为3个独立的部分:模型、视图和控制器。

  提出这种设计模式主要是因为应用程序中用来完成任务的代码(模型,也称为"业务逻辑")通常是程序中相对稳定的部分,并且会被重复使用,而程序与用户进行交互的页面(视图),却是经常改变的。如果因需要更新页面而不得不对业务逻辑代码进行改动,或者要在不同的模块中应用到相同的功能时重复地编写业务逻辑代码,不仅会降低整体程序开发的进程,而且会使程序变得难以维护。因此,将业务逻辑代码与外观呈现分离,将会更容易地根据需求的改变来改进程序。MVC模式的模型如图2-14所示。

 

图2-14  MVC模式的模型

  Model(模型):MVC模式中的Model(模型)指的是业务逻辑的代码,是应用程序中真正用来完成任务的部分。

  View(视图):视图实际上就是程序与用户进行交互的界面,用户可以看到它的存在。视图可以具备一定的功能,并应遵守对其所做的约束。在视图中,不应包含对数据处理的代码,即业务逻辑代码。

  Controller(控制器):控制器主要用于控制用户请求并做出响应。它根据用户的请求,选择模型或修改模型,并决定返回怎样的视图。

2.4  运行JSP时常见的出错信息及处理

  (1)   页面显示500错误,错误信息为:

 

An error occurred at line: 6 in the

generated java file

Syntax error on token ";", import

expected after this token

 

  错误原因见如下代码:

 

<%@ page langue="java"

import="java.utli.*; java.text,*"

 pageEncoding="GBK">

 

  此处,import中的分隔符应该是逗号,不能用分号。

 

  (2)   页面显示500错误,错误信息:

 

org.apache.jasper.JasperException: Unable

to compile class for JSP:

An error occurred at line: 6 in the

generated Java file

Syntax error on tokens, delete these tokens

 

  此类信息都是页面的编写出现了语法错误。

  例如,指令中出现了错误字符,或者使用了错误的属性名,或者有错误的属性值。

  (3)   页面显示500错误,错误信息:

 

org.apache.jasper.JasperException:

/index.jsp(1,1) Unterminated &lt;

%@ page tag

 

  该信息告诉用户:指令标签有错误。

  (4)   页面显示中文为乱码。例如:

 

???????JSP??---?????

 

  原因见如下代码:

 

<%@ page language="java"

contentType="text/html, charset=GBK" import="java.util.*, java.text.*

" pageEncoding="GBK"%>

 

  这里,contentType="text/html, charset=GBK"分隔符用的是逗号,而此处只能用分号。

  (5)   错误:ClassNotFoundException。代表类没有被找到的异常。

  原因:通常是出现在JDBC连接代码中,对应的驱动JAR包没有导入,或sqljdbc.jar对应的Class.forName(类名)中的类名写错了。

  (6)   错误信息:主机TCP/IP连接失败。

  原因:SQL Server配置管理器中,未将对应的SQL Server服务的TCP/IP协议启用。或SQL Server服务器没有开启服务;或连接字符串中的localhost写错了;或启用的服务是开发版的SQL Server,即启用了SQL Express服务;或端口号写成了localhost:8080。

  (7)   出错信息:数据库连接失败。

  ①   检查JAR包导入。

  ②   检查连接字符串和驱动类字符串(要避免使用SQL Server 2000的连接字符串),例如"databasename=数据库名"写成了"datebasename=数据库名",或"localhost:1433"写成了"localhost:8080"。

2.5  实训二:简单JSP页面的运行及调试

  本实训只包含一个index.jsp页面。在该页面中,首先获取当前用户的访问时间,然后再对获取的时间进行分析,后根据分析结果向页面中输出指定的信息。图2-15所示为实例的运行结果。

 

图2-15  实例的运行结果

  这是一个动态的Web应用,因为程序会根据当前用户的访问时间来显示对应的消息,但这仍然是事先人为地编写出各种情况,然后由计算机来根据条件进行判断和选择。

  (1)   创建一个名为SecondJSP的Web项目。

  (2)   创建了项目后,在目录下新建一个index.jsp页面文件,并对该文件进行如下编码:

 

<%@ page

contentType="text/html;charset=UTF-8"%>

<%@ page

import="java.util.Date,java.text.*"%>

 

<%

//获取当前日期

Date nowday = new Date();

 

//获取日期中的小时

int hour = nowday.getHours();

 

//定义和使用日期格式化对象

SimpleDateFormat format = new

SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String time = format.format(nowday);

%>

<html>

<head>

  <title>第二个JSP应用</title>

</head>

<body>

<center>

<table width="300"

border="1">

  <tr height="30">

    <td align="center">温馨提示!</td>

  </tr>

  <tr height="80">

    <td align="center">现在时间为:<%=time%></td>

  </tr>

  <tr height="70">

    <td align="center">

    <!-- 以下为嵌入到HTML中的Java代码,用来生成动态的内容 -->

<%

    if(hour>=24 && hour<5)

      out.print("现在是凌晨!时间还很早,再睡会吧!");

    else if(hour>=5 && hour<10)

      out.print("早上好!新的一天即将开始,您准备好了吗?");

    else if(hour>=10 && hour<13)

      out.print("午休时间!正午好时光!");

    else if(hour>=13 && hour<18)

      out.print("下午继续努力工作吧!");

    else if(hour>=18 && hour<21)

      out.print("晚上好!自由时间!");

    else if(hour>=21 && hour<24)

      out.print("已经是深夜,注意休息!");

%>

    </td>

  </tr>

</table>

</center>

</body>

</html>

 

  从上述代码中可以很直观地看出,JSP页面是由HTML代码、JSP元素和嵌入到HTML代码中的Java代码构成的。当用户请求该页面时,服务器就加载该页面,并且会执行页面中的JSP元素和Java代码。后将执行的结果与HTML代码一起返回给客户端,由客户端浏览器进行显示。

2.6  本 章 小 结

  本章首先介绍了HTML语言中文件的结构、基本结构中所包含的元素和对应的元素属性等相关知识;对JSP语法知识进行了基本的讲解;给出了JSP运行调试时常见的出错信息及处理意见;后通过实训,强化练习了JSP页面运行及调试的具体过程。

 

 

练习与提高(二)

1.选择题

  (1)    标记<%   %>中的内容是(    )。

  A.script脚本                         B.JSP程序片段    

  C.JSP声明                                 D.JSP表达式

  (2)    下列不属于表单组件的是(    )。

  A.选项列表                              B.表格         

  C.按钮                               D.文本域

  (3)    在HTML标记中的注释方式是(    )。

  A.<!-- 注释内容 -->                B.//注释内容

  C./* 注释内容 */                D./** 注释内容 **/

  (4)    JSP隐藏注释(    )。

  A.浏览器端可见、服务器端可见       

  B.浏览器端不可见、服务器端可见

  C.浏览器端可见、服务器端不可见     

  D.浏览器端不可见、服务器端不可见

  (5)    在定义表格时,用于对表格进行行设置的标记是(    )。

  A.<td>                                    B.<th>         

  C.<tr>                                            D.<tb>

  (6)    能在浏览器的地址栏中看到提交数据的表单的提交方式是(    )。

  A.submit                                     B.get       

  C.post                                    D.out

2.填空题

  (1)    在JSP中,函数的定义必须放在             中,关键字             用于从函数中进行返回。

  (2)    <th>和<td>标记的             属性可用于设置跨行单元格,             属性可用于设置跨列单元格。

  (3)                 是一切网页实现的基础。

  (4)    表单标记中的             属性用于指定处理表单数据程序的URL地址。

3.简答题

  (1)    JSP文件中包含哪几种注释,它们之间的区别是什么?

  (2)    一个JSP页面可由哪些元素组成?

4.实训题

  (1)    编写HTML文件,实现3秒钟自动跳转到哈尔滨金融学院网站的首页。

  (2)    制作如图2-16所示的注册页面。

 

图2-16  注册页面

  (3)    制作如图2-17所示的网页设计大赛登记表。

 

图2-17  网页设计大赛登记表页面


在线阅读/听书/购买/PDF下载地址:

在线阅读地址:JSP编程技术在线阅读

在线听书地址:JSP编程技术在线收听

在线购买地址:JSP编程技术在线购买


原文赏析:

暂无原文赏析,正在全力查找中!


其它内容:

编辑推荐

本书将JSP知识与实用案例有机地结合起来,做到知识与案例相辅相成,这既有助于学生理解知识点,也能够突出重点、难点。此外,每章配有实训练习,可以锻炼学生的项目设计和编写代码能力;实训强调实用,它使知识讲解更加全面、系统,同时,也有助于指导学生实践。每章*后附有精心编写的"练习与提高",有助于学生对知识点的理解和巩固,也可以检验学生对知识的掌握程度。

  本书共包括9章:第1章为JSP概述;第2章介绍JSP基础知识;第3章介绍JSP中的指令与动作;第4章介绍JSP的内置对象;第5章介绍JavaBean技术;第6章介绍JSP中数据库的使用;第7章介绍Servlet技术;第8章介绍表达式语言;第9章为综合应用实训。

  本书所有例题和相关代码都已经调试通过,提供资源下载。对于每章的练习与提高,均给出了参考答案。同时,制作了相关的多媒体课件,提供给教师做参考。

  本书适合作为普通高等学校计算机及相关专业"Web程序设计"、"Java Web应用基础"、"JSP程序设计"、"动态网站制作"、"JSP开发与Web应用"等课程的教材;同时,也适合JSP初学者及网站开发人员参考。


书摘插图


前言

前    言

  随着网络技术的发展,Web应用程序开发空前活跃,其中尤其以Java领域的发展为迅速,JSP(Java Server Pages)就是以Java语言为基础的Web应用程序开发技术。

  JSP是由Sun公司开发的,也是动态网页制作技术中比较优秀的解决方案。JSP不仅拥有与Java语言一样的面向对象性、安全性、跨平台性、多线程等优点,还拥有Servlet的稳定性,并且可以使用Servlet提供的API、Java Bean以及其他框架技术,能够做到页面设计与后台代码分离,提高了工作效率。目前,无论是高等学校的计算机专业还是IT培训学校,都已经将JSP作为教学内容之一,这对于培养学生的计算机编程能力具有很重要的意义。

  本书将JSP知识与实用案例有机地结合起来,做到知识与案例相辅相成,这既有助于学生理解知识点,也能够突出重点、难点。此外,每章配有实训练习,可以锻炼学生的项目设计和编写代码能力;实训强调实用,它使知识讲解更加全面、系统,同时,也有助于指导学生实践。每章后附有精心编写的"练习与提高",有助于学生对知识点的理解和巩固,也可以检验学生对知识的掌握程度。  本书共包括9章:第1章为JSP概述;第2章介绍JSP基础知识;第3章介绍JSP中的指令与动作;第4章介绍JSP的内置对象;第5章介绍JavaBean技术;第6章介绍JSP中数据库的使用;第7章介绍Servlet技术;第8章介绍表达式语言;第9章为综合应用实训。

  本书所有例题和相关代码都已经调试通过,提供资源下载。对于每章的练习与提高,均给出了参考答案。同时,制作了相关的多媒体课件,提供给教师做参考。

  本书适合作为普通高等学校计算机及相关专业"Web程序设计"、"Java Web应用基础"、"JSP程序设计"、"动态网站制作"、"JSP开发与Web应用"等课程的教材;同时,也适合JSP初学者及网站开发人员参考。  本课程属于综合性的课程,在学习本课程之前,读者应具备Java程序设计、数据库原理、计算机网络、静态网页制作等课程的基础。因考虑到有些院校未开设静态网页制作课程,所以本书对必须用到的HTML语言知识点在第2章中做了介绍;开设过相关课程的教师在教学过程中可以略过。

  本书由徐宏伟、刘明刚、高鑫担任主编,张玉芬、李占宣、张剑飞、陈善利担任副主编,李岩担任主审。其中第1章、第2章由高鑫编写;第3章、第4章由张玉芬编写;第5章、第6章由徐宏伟编写;第7章、第8章由刘明刚编写;第9章由李占宣、张剑飞、陈善利编写。全书由徐宏伟、刘明刚审阅定稿。

  在本书的编写过程中,虽然我们力争精益求精,但书中难免存在疏漏和不足之处,希望广大读者和同行批评指正。  编  者



书籍真实打分

  • 故事情节:9分

  • 人物塑造:6分

  • 主题深度:6分

  • 文字风格:9分

  • 语言运用:3分

  • 文笔流畅:8分

  • 思想传递:8分

  • 知识深度:3分

  • 知识广度:9分

  • 实用性:6分

  • 章节划分:3分

  • 结构布局:7分

  • 新颖与独特:4分

  • 情感共鸣:9分

  • 引人入胜:6分

  • 现实相关:6分

  • 沉浸感:9分

  • 事实准确性:3分

  • 文化贡献:8分


网站评分

  • 书籍多样性:7分

  • 书籍信息完全性:8分

  • 网站更新速度:6分

  • 使用便利性:7分

  • 书籍清晰度:7分

  • 书籍格式兼容性:5分

  • 是否包含广告:4分

  • 加载速度:4分

  • 安全性:6分

  • 稳定性:4分

  • 搜索功能:4分

  • 下载便捷性:5分


下载点评

  • 排版满分(266+)
  • 值得购买(65+)
  • 无盗版(487+)
  • 已买(116+)
  • 速度快(379+)
  • 引人入胜(470+)
  • 愉快的找书体验(317+)
  • 小说多(176+)

下载评价

  • 网友 仰***兰:

    喜欢!很棒!!超级推荐!

  • 网友 扈***洁:

    还不错啊,挺好

  • 网友 苍***如:

    什么格式都有的呀。

  • 网友 詹***萍:

    好评的,这是自己一直选择的下载书的网站

  • 网友 訾***雰:

    下载速度很快,我选择的是epub格式

  • 网友 郗***兰:

    网站体验不错

  • 网友 方***旋:

    真的很好,里面很多小说都能搜到,但就是收费的太多了

  • 网友 焦***山:

    不错。。。。。

  • 网友 汪***豪:

    太棒了,我想要azw3的都有呀!!!

  • 网友 相***儿:

    你要的这里都能找到哦!!!

  • 网友 隗***杉:

    挺好的,还好看!支持!快下载吧!

  • 网友 谢***灵:

    推荐,啥格式都有


随机推荐