首页系统velocity注释(Velocity模板中的注释)

velocity注释(Velocity模板中的注释)

编程之家2024-02-05109次浏览

一、jquery怎么使用velocity

Velocity的基本用法<?xml:namespace prefix= o ns="urn:schemas-microsoft-com:office:office"/>

velocity注释(Velocity模板中的注释)

Velocity概述

Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。

Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。 Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。

一、基本语法

1、"#"用来标识Velocity的脚本语句,包括#set、#if、#else、#end、#foreach、#end、#include、#parse、#macro等;

如:

velocity注释(Velocity模板中的注释)

#if($info.imgs)

<img src="$info.imgs" border=0>

#else

<img src="noPhoto.jpg">

#end

2、"$"用来标识一个对象(或理解为变量);如:$i、$msg、$TagUtil.options(...)等。

velocity注释(Velocity模板中的注释)

3、"{}"用来明确标识Velocity变量;

比如在页面中,页面中有一个$someonename,此时,Velocity将把someonename作为变量名,若我们程序是想在someone这个变量的后面紧接着显示name字符,则上面的标签应该改成${someone}name。

4、"!"用来强制把不存在的变量显示为空白。

如当页面中包含$msg,如果msg对象有值,将显示msg的值,如果不存在msg对象同,则在页面中将显示$msg字符。这是我们不希望的,为了把不存在的变量或变量值为null的对象显示为空白,则只需要在变量名前加一个“!”号即可。

如:$!msg

二、在EasyJWeb中的最佳实践

理论上你可以在EasyjWeb模板使用所有Velocity的脚本及功能,但我们不推荐你在界面模板中使用过多过复杂的脚本表达方式,在万不得已的情况下,不要在界面模板中加入任何复杂的逻辑,更不要在界面模板中加入变量声明、逻辑运算符等等。

1、$!obj直接返回对象结果。

如:在html标签中显示java对象msg的值。<p>$!msg</p>

在html标签中显示经过HtmlUtil对象处理过后的msg对象的值<p>$!HtmlUtil.doSomething($!msg)</p>

2、#if($!obj)#else#end判断语句

如:在EasyJWeb各种开源应用中,我们经常看到的用于弹出提示信息msg的例子。

#if($msg)

<script>

alert('$!msg');

</script>

#end

上面的脚本表示当对象msg对象存在时,输出<script>等后面的内容。

3、#foreach($info in$list)$info.someList#end循环读取集合list中的对象,并作相应的处理。

如:EasyJF开源论坛系统中论(0.3)坛首页显示热门主题的html界面模板脚本:

#foreach($info in$hotList1)

<a rel="external nofollow" href="/bbsdoc.ejf?easyJWebCommand=show&&cid=$!info.cid"

target="_blank">$!info.title</a><br>

#end

上面的脚本表示循环遍历hotList1集合中的对象,并输出对象的相关内容。

4、#macro(macroName)#end脚本函数(宏)调用,不推荐在界面模板中大量使用。 Velocity中的宏我们可以理解为函数。①宏的定义#macro(宏的名称$参数1$参数2…)语句体(即函数体)#end

②宏的调用#宏的名称($参数1$参数2…)

说明:参数之间用空格隔开。

如:在使用EasyJWeb Tools快速生成的添删改查示例中,可以点击列表的标题栏进行升降排序显示,这是我们在EasyJWeb应用中经常看到的一个排序状态显示的模板内容。

函数(宏)定义,一般放在最前面

#macro(orderPic$type)

#if($orderField.equals($type))

<img src="${orderType}.gif">

#end

#end

具体的调用如:<font color="#FFFFFF">头衔#orderPic("title")</font>

5、包含文件#inclue("模板文件名")或#parse("模板文件名")

主要用于处理具有相同内容的页面,比如每个网站的顶部或尾部内容。

如:#parse("/blog/top.html")或#include("/blog/top.html")

区别:

1若包含的文件中有Velocity脚本标签,将会进一步解析,而include将原样

显示。

2#parse只能指定单个对象。而#include可以有多个

示范代码:

#include("one.gif","two.txt","three.htm")

#parse("parsefoo.vm")

三、关于#set的使用

在万不得已的时候,不要在页面视图自己声明Velocity脚本变量,也就是尽量少使用#set。有时候我们需要在页面中显示序号,而程序对象中又没有包含这个序号属性同,可以自己定义。如在一个循环体系中,如下所示:

#set($i=0)

#foreach($info in$list)

序号:$i

#set($i=$i+1)

#end

四、Velocity脚本语法摘要

声明:#set($var=XXX)

变量引用,字面字符串,属性引用,方法引用,字面数字,数组列表。

#set($monkey=$bill)## variable reference

#set($monkey.Friend="monica")## string

#set($monkey.Blame=$whitehouse.Leak)## property reference

#set($monkey.Plan=$spindoctor.weave($web))## method reference

#set($monkey.Number= 123)##number

#set($monkey.Say= ["Not",$my,"fault"])## ArrayList

算术运算符

#set($foo=$bar+ 3)#set($foo=$bar- 4)#set($foo=$bar* 6)#set($foo=$bar/ 2)

2、注释:

单行## XXX

多行#* xxx

xxxx

xxxxxxxxxxxx*#

References引用的类型

3、变量 Variables

以"$"开头,第一个字符必须为字母。character followed by a VTL Identifier.(a.. z or A.. Z).

变量可以包含的字符有以下内容:

alphabetic(a.. z, A.. Z)

numeric(0.. 9)

hyphen("-")

underscore("_")

4、Properties

$Identifier.Identifier

$user.name

hashtable user中的的name值.类似:user.get("name")

5、Methods

object user.getName()=$user.getName()

6、Formal Reference Notation

用{}把变量名跟字符串分开

#set($user="csy"}

${user}name

返回csyname

$username

$!username

$与$!的区别

当找不到username的时候,$username返回字符串"$username",而$!username返回空字符串""

7、双引号与引号

#set($var="helo")

test"$var"返回testhello

test'$var'返回test'$var'

可以通过设置 stringliterals.interpolate=false改变默认处理方式

8、条件语句

#if($foo)

<strong>Velocity!</strong>

#end

#if($foo)

#elseif()

#else

#end

当$foo为null或为Boolean对象的false值执行.

9、逻辑运算符:==&&||!

10、循环语句#foreach($var in$arrays)//集合包含下面三种Vector, a Hashtable or an Array

#end

#foreach($product in$allProducts)

<li>$product</li>

#end

#foreach($key in$allProducts.keySet())

<li>Key:$key-> Value:$allProducts.get($key)</li>

#end

#foreach($customer in$customerList)

<tr><td>$velocityCount</td><td>$customer.Name</td></tr>

#end

语句的嵌套#foreach($element in$list)## inner foreach内循环#foreach($element in$list) This is$element.$velocityCount<br>inner<br>#end## inner foreach内循环结束## outer foreach This is$element.$velocityCount<br>outer<br>#end

11、velocityCount变量在配置文件中定义

# Default name of the loop counter

# variable reference.

directive.foreach.counter.name= velocityCount

# Default starting value of the loop

# counter variable reference.

directive.foreach.counter.initial.value= 1

12、包含文件

#include("one.gif","two.txt","three.htm")

13、Parse导入脚本

#parse("me.vm")

14、#stop停止执行并返回

停止执行模板引擎并返回,把它应用于debug是很有帮助的。

15、定义宏Velocimacros,相当于函数支持包含功能

#macro( d)

<tr><td></td></tr>

#end

调用

#d()

16、带参数的宏

#macro( tablerows$color$somelist)

#foreach($something in$somelist)

<tr><td bgcolor=$color>$something</td></tr>

#end

#end

17、Range Operator

#foreach($foo in [1..5])

18、转义字符

如果reference被定义,两个’\’意味着输出一个’\’,如果未被定义,刚按原样输出。#set($email="foo")$email\$email\\$email\\\$email

输出: foo$email....

二、Tomcat与JavaWeb开发技术详解的目录

第1篇 Java Web开发技术详解

依据SUN的Java Servlet规范和JSP规范,深入介绍了开发Java Web应用的各种技术。

第1章 Web运作原理探析 3

利用Java套接字(Socket)实现了一个简单的基于HTTP协议的客户程序和服务器程序。

1.1 Web的概念 3

1.2 HTML简介 4

1.3 URL简介 7

1.4 HTTP协议简介 7

1.4.1 HTTP请求格式 9

1.4.2 HTTP响应格式 11

1.4.3正文部分的MIME类型 13

1.5用Java套接字创建HTTP客户与服务器程序 14

1.5.1演示异构系统之间用HTTP协议通信 17

1.5.2演示对网页中的超级链接的处理过程 19

1.5.3演示对网页中的图片的处理过程 20

1.6 Web发展历程 21

1.6.1发布静态HTML文档 21

1.6.2发布静态多媒体信息 22

1.6.3提供浏览器端与用户的动态交互功能 22

1.6.4提供服务器端与用户的动态交互功能 24

1.6.5发布Web应用 29

1.6.6发布Web服务 30

1.6.7 Web 2.0:全民共建的Web 32

1.7处理HTTP请求参数及HTML表单 33

1.8客户端向服务器端上传文件 36

1.9小结 41

1.10思考题 42

第2章 Tomcat简介 45

Tomcat除了能够充当运行Servlet的容器,还提供了作为Web服务器的一些实用功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。Tomcat已成为目前开发企业JavaWeb应用的最佳Servlet容器选择之一。

2.1 Tomcat概述 46

2.2 Tomcat作为Servlet容器的基本功能 47

2.3 Tomcat的组成结构 48

2.4 Tomcat的工作模式 50

2.5 Tomcat的版本 52

2.6安装和配置Tomcat所需的资源 53

2.7安装Tomcat 55

2.8启动Tomcat并测试Tomcat的安装 57

2.9 Tomcat的运行脚本 58

2.10小结 59

2.11思考题 60

第3章第一个JavaWeb应用 63

以一个简单的helloapp应用为例,让初学者迅速获得开发JavaWeb应用的实际经验。

3.1 JavaWeb应用简介 63

3.2创建JavaWeb应用 64

3.2.1 JavaWeb应用的目录结构 64

3.2.2创建HTML文件 65

3.2.3创建Servlet类 66

3.2.4创建JSP文件 67

3.2.5创建web.xml文件 68

3.3在Tomcat中发布JavaWeb应用 70

3.3.1 Tomcat的目录结构 70

3.3.2按照默认方式发布JavaWeb应用 71

3.3.3 Web组件的URL 72

3.3.4配置Tomcat的元素 75

3.3.5配置Tomcat的虚拟主机 78

3.4创建、配置和使用自定义JSP标签 80

3.5用批处理文件或ANT编译范例 84

3.6小结 85

3.7思考题 86

第4章 Servlet技术(上) 89

要想精通Servlet编程,不仅要了解Servlet自身的用法,还要了解容器为它提供的十八般武器的用法。

4.1 Servlet API 90

4.1.1 Servlet接口 90

4.1.2 GenericServlet抽象类 91

4.1.3 HttpServlet抽象类 93

4.1.4 ServletRequest接口 96

4.1.5 HttpServletRequest接口 97

4.1.6 ServletResponse接口 100

4.1.7 HttpServletResponse接口 101

4.1.8 ServletConfig接口 104

4.1.9 ServletContext接口 105

4.2 JavaWeb应用的生命周期 108

4.2.1启动阶段 108

4.2.2运行时阶段 109

4.2.3终止阶段 109

4.2.4用Tomcat的管理平台管理Web应用的生命周期 109

4.3 Servlet的生命周期 111

4.3.1初始化阶段 111

4.3.2运行时阶段 112

4.3.3销毁阶段 112

4.3.4演示Servlet的生命周期的范例 113

4.4 ServletContext与Web应用范围 115

4.4.1在Web应用范围内存放共享数据的范例 116

4.4.2使用ServletContextListener监听器 119

4.5 Servlet的服务方法抛出异常 121

4.6防止页面被客户端缓存 122

4.7小结 123

4.8思考题 124

第5章 Servlet技术(下) 129

进一步介绍Servlet的一些高级用法。

5.1下载文件 129

5.2上传文件 130

5.3动态生成图像 136

5.4读写Cookie 139

5.5访问Web应用的工作目录 145

5.6转发和包含 147

5.6.1请求转发 148

5.6.2包含 152

5.6.3请求范围 154

5.7重定向 155

5.8访问Servlet容器内的其他Web应用 158

5.9避免并发问题 160

5.9.1合理决定在Servlet中定义的变量的作用域类型 162

5.9.2使用Java同步机制对多线程同步 164

5.9.3被废弃的SingleThreadModel接口 165

5.10小结 166

5.11思考题 169

第6章 JSP技术 171

包括JSP的运行机制和语法、JSP包含其他Web组件的方法、把请求转发给其他Web组件的方法,以及JSP的异常处理。

6.1比较HTML、Servlet和JSP 171

6.1.1静态HTML文件 171

6.1.2用Servlet动态生成HTML页面 171

6.1.3用JSP动态生成HTML页面 173

6.2 JSP语法 177

6.2.1 JSP指令(Directive) 178

6.2.2 JSP声明 180

6.2.3 Java程序片段(Scriptlet) 181

6.2.4 Java表达式 182

6.2.5隐含对象 184

6.3 JSP的生命周期 185

6.4请求转发 188

6.5包含 190

6.5.1静态包含 190

6.5.2动态包含 192

6.5.3混合使用静态包含和动态包含 194

6.6 JSP异常处理 200

6.7再谈发布JSP 202

6.8预编译JSP 203

6.9 PageContext抽象类 204

6.10 JSP技术的发展趋势 206

6.11小结 207

6.12思考题 207

第7章 bookstore应用简介 211

介绍bookstore应用的软件结构、各个JSP网页的功能,以及部分Web组件的实现。

7.1 bookstore应用的软件结构 211

7.1.1 Web服务器层 211

7.1.2数据库层 212

7.2浏览bookstore应用的JSP网页 212

7.3 JavaBean和实用类 217

7.3.1实体类 218

7.3.2购物车的实现 219

7.4发布bookstore应用 222

7.5小结 223

第8章访问数据库 225

介绍通过JDBC API访问数据库、在Tomcat中配置数据源,以及在Web应用中通过数据源连接数据库的方法。

8.1安装和配置MySQL数据库 225

8.2 JDBC简介 228

8.2.1 java.sql包中的接口和类 230

8.2.2编写访问数据库程序的步骤 234

8.2.3事务处理 236

8.3通过JDBC API访问数据库的JSP范例程序 237

8.4 bookstore应用通过JDBC API访问数据库 239

8.5数据源(DataSource)简介 243

8.6配置数据源 244

8.6.1在context.xml中加入元素 244

8.6.2在web.xml中加入元素 245

8.7程序中访问数据源 246

8.7.1通过数据源连接数据库的JSP范例程序 246

8.7.2 bookstore应用通过数据源连接数据库 248

8.8处理中文编码 251

8.9分页显示批量数据 252

8.10小结 256

8.11思考题 257

第9章 HTTP会话的使用与管理 259

介绍如何通过会话来实现服务器对客户的状态的跟踪。

9.1会话简介 259

9.2 HttpSession的生命周期及会话范围 263

9.3使用会话的JSP范例程序 265

9.4使用会话的Servlet范例程序 269

9.5通过重写URL来跟踪会话 273

9.6会话的持久化 277

9.6.1标准会话管理器StandardManager 279

9.6.2持久化会话管理器PersistentManager 280

9.7会话的监听 284

9.7.1用HttpSessionListener统计在线用户人数 289

9.7.2用HttpSessionBindingListener统计在线用户人数 291

9.8小结 294

9.9思考题 295

第10章 JSP访问JavaBean 299

介绍JavaBean的概念和创建方法, JSP访问JavaBean的语法,JavaBean在Web应用中的4种存在范围,如何在bookstore应用中运用JavaBean。

10.1 JavaBean简介 299

10.2 JSP访问JavaBean的语法 300

10.3 JavaBean的范围 302

10.3.1 JavaBean在页面(page)范围内 302

10.3.2 JavaBean在请求(request)范围内 305

10.3.3 JavaBean在会话(session)范围内 306

10.3.4 JavaBean在Web应用(application)范围内 307

10.4在bookstore应用中访问JavaBean 308

10.4.1访问BookDB类 308

10.4.2访问ShoppingCart类 309

10.5小结 313

10.6思考题 314

第11章开发JavaMail Web应用 317

介绍了一个JavaMail Web应用,通过它,客户可以访问邮件服务器上的邮件账号、收发邮件和管理邮件夹。

11.1 E-mail协议简介 317

11.1.1 SMTP简单邮件传输协议 317

11.1.2 POP3邮局协议 318

11.1.3接收邮件的新协议IMAP 318

11.2 JavaMail API简介 319

11.3建立JavaMail应用程序的开发环境 321

11.3.1获得JavaMail API的类库 321

11.3.2安装和配置邮件服务器 321

11.4创建JavaMail应用程序 324

11.5 JavaMail Web应用简介 328

11.6 JavaMail Web应用的程序结构 328

11.6.1重新封装Message数据 329

11.6.2用于保存邮件账号信息的JavaBean 332

11.6.3定义所有JSP文件的相同内容 334

11.6.4登录IMAP服务器上的邮件账号 336

11.6.5管理邮件夹 339

11.6.6查看邮件夹中的邮件信息 342

11.6.7查看邮件内容 345

11.6.8创建和发送邮件 346

11.6.9退出邮件系统 348

11.7在Tomcat中配置邮件会话(Mail Session) 349

11.7.1在context.xml中配置Mail Session资源 349

11.7.2在web.xml中加入对JNDI Mail Session资源的引用 350

11.7.3在javamail应用中获取JNDI Mail Session资源 350

11.8发布和运行javamail应用 352

11.9小结 352

11.10思考题 353

第12章 EL表达式语言 355

EL(Expression Language)表达式语言是在JSP 2.0版本中引入的新特性,它用于JSP文件中的数据访问。

12.1基本语法 355

12.1.1访问对象的属性及数组的元素 356

12.1.2 EL运算符 356

12.1.3隐含对象 357

12.1.4命名变量 359

12.2使用EL表达式的JSP范例 360

12.2.1关于基本语法的例子 360

12.2.2读取HTML表单数据的例子 362

12.2.3访问命名变量的例子 363

12.3定义和使用EL函数 363

12.4小结 366

12.5思考题 367

第13章自定义JSP标签 369

结合具体的范例,进一步介绍自定义标签的创建过程,以及它在JSP文件中的使用方法。

13.1自定义JSP标签简介 369

13.2 JSP Tag API 370

13.2.1 JspTag接口 370

13.2.2 Tag接口 371

13.2.3 IterationTag接口 373

13.2.4 BodyTag接口 374

13.2.5 TagSupport类和BodyTagSupport类 376

13.3创建和使用message标签(访问标签属性) 380

13.3.1创建message标签的处理类MessageTag 382

13.3.2创建标签库描述文件 385

13.3.3在Web应用中使用标签 388

13.3.4发布支持中、英文版本的helloapp应用 390

13.4创建和使用iterate标签(重复执行标签主体) 391

13.5创建和使用greet标签(访问标签主体内容) 395

13.6小结 399

13.7思考题 400

第14章采用模板设计网上书店应用 403

以bookstore应用为例,介绍如何通过自定义JSP标签来为网站设计模板,从而使所有在客户端展示的网页都通过模板来生成。

14.1如何设计网站的模板 403

14.2创建负责流程控制的Servlet 404

14.3创建模板标签和模板JSP文件 406

14.3.1标签和其处理类 408

14.3.2标签和处理类 411

14.3.3标签和处理类 413

14.3.4标签和处理类 417

14.4修改JSP文件 419

14.5发布采用模板设计的bookstore应用 420

14.6小结 423

第15章 JSTL Core标签库 425

本章对JSTL做了概要介绍,并且着重介绍了JSTL中的Core标签库的用法。

15.1使用第三方提供的标签库的步骤 425

15.2 JSTL标签库简介 426

15.3一般用途的标签 427

15.3.1标签 427

15.3.2标签 428

15.3.3标签 430

15.3.4标签 430

15.4条件标签 431

15.4.1标签 431

15.4.2、和标签 432

15.5迭代标签 433

15.5.1标签 433

15.5.2标签 437

15.6 URL相关的标签 437

15.6.1标签 437

15.6.2标签 438

15.6.3标签 440

15.7小结 440

15.8思考题 441

第16章 JSTL I18N标签库 443

I18N标签库主要用于编写国际化的Web应用,本章对I18N标签库进行了详细介绍。

16.1国际化的概念 443

16.2 Java对I18N的支持 444

16.2.1 Locale类 444

16.2.2 ResourceBundle类 448

16.2.3 MessageFormat类和复合消息 449

16.3国际化标签 452

16.3.1标签 452

16.3.2标签 453

16.3.3标签 453

16.3.4标签 454

16.3.5标签 455

16.3.6标签 455

16.4创建国际化的Web应用 456

16.4.1创建支持国际化的网页 456

16.4.2创建资源文件 459

16.5格式化标签 460

16.5.1标签 460

16.5.2标签 461

16.5.3标签 461

16.5.4标签 462

16.5.5标签 463

16.5.6标签 465

16.6小结 465

16.7思考题 466

第17章 JSTL SQL标签库 469

在JSP中直接通过Java程序代码来访问数据库,会降低JSP页面的可读性和可维护性,为了解决这一问题,可以在JSP中通过JSTL SQL标签库中的标签来访问数据库。

17.1标签 469

17.2标签 470

17.2.1设置数据源 470

17.2.2设置select查询语句 470

17.2.3控制实际取出的记录 471

17.2.4访问查询结果 471

17.2.5使用标签的范例 472

17.3标签 474

17.4标签 475

17.5标签 475

17.6标签 476

17.7小结 478

17.8思考题 478

第18章 JSTL Functions标签库 481

介绍Functions标签库中常用的16个函数的用法。

18.1 fn:contains函数 481

18.2 fn:containsIgnoreCase函数 481

18.3 fn:startsWith函数 482

18.4 fn:endsWith函数 482

18.5 fn:indexOf函数 482

18.6 fn:replace函数 483

18.7 fn:substring函数 483

18.8 fn:substringBefore函数 483

18.9 fn:substringAfter函数 484

18.10 fn:split函数 484

18.11 fn:join函数 485

18.12 fn:toLowerCase函数 485

18.13 fn:toUpperCase函数 485

18.14 fn:trim函数 486

18.15 fn:escapeXml函数 486

18.16 fn:length函数 487

18.17小结 488

18.18思考题 489

第19章简单标签和标签文件 491

为了简化开发标签的过程,JSP 2.0引入了一种新的标签扩展机制,称为“简单标签扩展”。

19.1实现SimpleTag接口 491

19.1.1创建和使用简单标签 493

19.1.2创建和使用带属性和标签主体的简单标签 494

19.1.3创建和使用带动态属性的简单标签 495

19.2使用标签文件 497

19.2.1标签文件的隐含对象 500

19.2.2标签文件的指令 501

19.2.3标签文件的和动作元素 503

19.2.4创建和使用带属性和标签主体的display标签文件 503

19.2.5创建和使用带属性和标签主体的welcome标签文件 505

19.2.6创建和使用带变量的precode标签文件 506

19.3小结 507

19.4思考题 507

第20章过滤器 509

如果在多个Web组件中编写完成同样操作的程序代码,显然会导致重复编码,从而降低开发效率和软件的可维护性,为了解决上述问题,过滤器应运而生。

20.1过滤器简介 509

20.2创建过滤器 510

20.3发布过滤器 513

20.4串联过滤器 518

20.4.1包装设计模式简介 519

20.4.2 ServletOutputStream的包装类 521

20.4.3 HttpServletResponse的包装类 524

20.4.4创建对响应结果进行字符串替换的过滤器 525

20.4.5 ReplaceTextFilter过滤器工作的UML时序图 527

20.4.6发布和运行包含ReplaceTextFilter过滤器的Web应用 528

20.5小结 531

20.6思考题 532

第21章在Web应用中访问EJB组件 535

首先介绍JavaEE的体系结构;然后以bookstore应用为例,介绍开发EJB组件的过程;最后讲解如何在JBoss服务器上发布JavaEE应用。

21.1 JavaEE体系结构简介 535

21.2安装和配置JBoss服务器 537

21.3创建EJB组件 538

21.3.1编写Remote接口 539

21.3.2编写Home接口 539

21.3.3编写Enterprise Java Bean

类 540

21.4在Web应用中访问EJB组件 543

21.5发布JavaEE应用 544

21.5.1在JBoss上发布EJB组件 545

21.5.2在JBoss上发布Web应用 547

21.5.3在JBoss上发布JavaEE应用 549

21.6小结 550

21.7思考题 551

第22章在Web应用中访问Web服务 553

介绍利用AXIS来创建SOAP服务和SOAP客户程序的方法,还介绍了在bookstore应用中访问SOAP服务的方法。

22.1 SOAP简介 553

22.2建立Apache AXIS环境 555

22.3在Tomcat上发布

Apache-AXIS Web应用 556

22.4创建SOAP服务 557

22.4.1创建提供SOAP服务的Java类 557

22.4.2创建SOAP服务的发布描述符文件 557

22.5管理SOAP服务 558

22.5.1发布SOAP服务 558

22.5.2删除SOAP服务 559

22.6创建和运行SOAP客户程序 560

22.7发布JWS服务 563

22.8在bookstore应用中访问SOAP服务 563

22.8.1创建BookDB服务类及

BookDBDelegate代理类 564

22.8.2发布bookdbservice服务和bookstore应用 573

22.9小结 574

22.10思考题 575

第23章 Web应用的MVC设计模式 577

首先介绍了MVC设计模式的结构和优点;接着介绍了SUN公司提出的在Java Web开发领域的两种设计模式:JSP Model1和JSP Molde2;然后介绍了Struts实现MVC的机制;最后以helloapp应用为例,简要介绍了在Web应用中使用Struts 2.0的方法。

23.1 MVC设计模式简介 577

23.2 JSP Model 1和

JSP Model 2 579

23.3 Struts概述 581

23.3.1 Struts实现MVC的机制 581

23.3.2 Struts的工作流程 582

23.4创建采用Struts的Web应用 583

23.4.1建立Struts的环境 583

23.4.2创建视图 584

23.4.3创建模型 585

23.4.4创建Action类 585

23.4.5创建web.xml文件和struts.xml文件 586

23.5运行helloapp应用 587

23.5.1服务器端装载login.htm的流程 587

23.5.2用户验证的流程 587

23.6小结 589

23.7思考题 589

第2篇 Tomcat配置及第三方实用软件的用法

介绍Tomcat服务器的基本配置和高级配置,从而为Java Web应用创建高效的运行环境;介绍在Java Web应用中运用第三方提供的实用软件(如Velocity和Log4J)的方法。

第24章 Tomcat的控制平台和管理平台 593

Tomcat提供了基于Web方式的管理平台和控制平台,用户通过浏览器,就可以很方便地配置Tomcat服务器,还可以管理运行在Tomcat服务器上的Web应用,如发布、启动、停止或删除Web应用,以及查看Web应用状态。

24.1访问Tomcat的控制平台和管理平台 593

24.2 Tomcat的控制平台 595

24.2.1 Tomcat控制平台的功能 595

24.2.2配置元素 597

24.3 Tomcat的管理平台 598

24.4小结 600

第25章安全域 601

主要介绍如何通过Tomcat提供的安全域来保护Web应用的资源。

25.1安全域概述 601

25.2为Web资源设置安全约束 602

25.2.1在web.xml中加入元素 603

25.2.2在web.xml中加入元素 605

25.2.3在web.xml中加入元素 608

25.3内存域 608

25.4 JDBC域 610

25.4.1用户数据库的结构 610

25.4.2在MySQL中创建和配置用户数据库 611

25.4.3配置元素 611

25.5 DataSource域 612

25.6在Web应用中访问用户信息 614

25.7小结 614

25.8思考题 615

第26章 Tomcat与其他HTTP服务器集成 617

首先讨论Tomcat与HTTP服务器集成的一般原理,然后介绍Tomcat与Apache服务器及IIS集成的详细步骤,最后介绍把由多个Tomcat服务器构成的集群系统与Apache服务器集成的方法。

26.1 Tomcat与HTTP服务器集成的原理 617

26.1.1 JK插件 618

26.1.2 AJP协议 618

26.2在Windows下Tomcat与

Apache服务器集成 618

26.3在Linux下Tomcat与Apache

服务器集成 621

26.4 Tomcat与IIS服务器集成 623

26.4.1准备相关文件 624

26.4.2编辑注册表 624

26.4.3在IIS中加入“jakarta”虚拟目录 626

26.4.4把JK插件作为ISAPI筛选器加入到IIS中 627

26.4.5测试配置 628

26.5 Tomcat集群 628

26.5.1配置集群系统的负载平衡器 629

26.5.2配置集群管理器 631

26.6小结 635

26.7思考题 636

第27章在Tomcat中配置SSI 637

首先介绍了SSI的概念及SSI指令的用法,然后介绍了在Tomcat中配置SSI的方法。

27.1 SSI简介 637

27.1.1#echo指令 638

27.1.2#include指令 640

27.1.3#flastmod指令 641

27.1.4#fsize指令 641

27.1.5#exec指令 641

27.1.6#config指令 641

27.1.7#if、#elif、#else和#endif指令 643

27.2在Tomcat中配置对SSI的支持 643

27.3小结 645

27.4思考题 645

第28章 Tomcat阀 647

介绍Tomcat阀的种类,还将详细介绍各种Tomcat阀的功能和使用方法。

28.1 Tomcat阀简介 647

28.2客户访问日志阀 648

28.3远程地址过滤器 650

28.4远程主机过滤器 651

28.5客户请求记录器 652

28.6小结 653

28.7思考题 653

第29章在Tomcat中配置SSL 655

SSL(Server Socket Layer)协议,旨在达到在开放网络(Internet)上安全、保密地传输信息的目的,这种协议在Web上获得了广泛的应用。

29.1 SSL简介 655

29.1.1加密通信 656

29.1.2安全证书 656

29.1.3 SSL握手 657

29.2在Tomcat中使用SSL 658

29.2.1准备安全证书 658

29.2.2配置SSL连接器 659

29.2.3访问支持SSL的Web站点 660

29.3小结 661

29.4思考题 662

第30章用ANT工具管理Web应用 663

介绍了ANT的安装和配置,并以bookstore应用为例,介绍了ANT的使用方法。

30.1安装配置ANT 663

30.2创建build.xml文件 663

30.3运行ANT 668

30.4小结 669

30.5思考题 669

第31章使用Log4J进行日志操作 671

首先介绍Log4J的组成,接着介绍如何在程序中使用Log4J,最后介绍如何在Web应用中通过Log4J生成日志。

31.1 Log4J简介 671

31.1.1 Logger组件 672

31.1.2 Appender组件 673

31.1.3 Layout组件 673

31.1.4 Logger组件的继承性 674

31.2 Log4J的基本使用方法 675

31.2.1定义配置文件 675

31.2.2在程序中使用Log4J 677

31.3在helloapp应用中使用Log4J 680

31.3.1创建用于配置Log4J环境的Servlet 680

31.3.2在login.jsp中输出日志 681

31.3.3发布和运行使用Log4J的helloapp应用 681

31.4小结 683

31.5思考题 683

第32章 Velocity模板语言 685

首先通过一个简单的Velocity例子来讲解创建基于Velocity的Web应用的步骤,然后详细介绍Velocity模板语言的各个要素。

32.1安装Velocity 685

32.2 Velocity的简单例子 685

32.2.1创建Velocity模板 685

32.2.2创建扩展VelocityServlet的Servlet类 686

32.2.3发布和运行基于Velocity的Web应用 688

32.3注释 689

32.4引用 689

32.4.1变量引用 689

32.4.2属性引用 690

32.4.3方法引用 692

32.4.4正式引用符 693

32.4.5安静引用符 693

32.4.6转义符 694

32.4.7大小写替换 694

32.5指令 695

32.5.1#set指令 695

32.5.2字面字符串 696

32.5.3#if指令 697

32.5.4比较运算 697

32.5.5#foreach循环指令 698

32.5.6#include指令 700

32.5.7#parse指令 700

32.5.8#macro指令 701

32.5.9转义VTL指令 702

32.5.10 VTL的格式 702

32.6其他特征 703

32.6.1数学运算 703

32.6.2范围操作符 703

32.6.3字符串的连接 704

32.7小结 705

32.8思考题 705

第33章创建嵌入式Tomcat服务器 707

介绍如何把Tomcat嵌入到Java应用程序中,以及在程序中配置Tomcat的组件,并控制Tomcat服务器的启动和关闭。

33.1将Tomcat嵌入到Java应用中 707

33.2创建嵌入了Tomcat的

Java示范程序 708

33.3运行嵌入式Tomcat

服务器 711

33.4小结 713

附录A server.xml文件 715

对server.xml文件的一些常用的元素进行了介绍。

A.1配置Server元素 716

A.2配置Service元素 717

A.3配置Engine元素 717

A.4配置Host元素 718

A.5配置Context元素 718

A.6配置Connector元素 719

附录B web.xml文件 721

介绍了Web应用的配置文件web.xml文件。

B.1配置过滤器 723

B.2配置Servlet 724

B.3配置Servlet映射 725

B.4配置Session 725

B.5配置Welcome文件清单 725

B.6配置Tag Library 726

B.7配置资源引用 726

B.8配置安全约束 727

B.9配置安全验证登录界面 727

B.10配置对安全验证角色的引用 728

附录C XML简介 729

XML,即可扩展标记语言(Extensible Markup Language),是一种可以用来创建自定义标记的标记语言。

C.1 SGML、HTML与XML的比较 729

C.2 DTD文档类型定义 730

C.3有效XML文档以及简化格式的XML文档 731

C.4 XML中的常用术语 732

C.4.1 URL、URN和URI 733

C.4.2 XML命名空间 733

附录D书中涉及软件获取途径 735

为了便于读者在本地机器上搭建运行范例的环境,列出了书中涉及的软件的获取途径。

……

gpu服务器报价(gpu服务器报价一般是多少)activesync 4.5(Microsoft ActiveSync4.5安装正在配置)