- 浏览: 14264 次
- 性别:
- 来自: 深圳
最近访客 更多访客>>
最新评论
-
Aether:
Here is include a jsp file!
Thi ...
JSP拾遗(五)——jsp文件包含指令
第二节中,我们通过JSP编译成的java源文件对比出了<% %> <%! %>的区别。一个jsp文件会被解释编译成对应的java类,而<%!%>里面声明的变量或方法都将成为对应java类的成员方法,<% %>里面的代码段将会直接放置到jspService()方法中执行。因此,我们可以在<% %>的代码段中使用jspService()方法中预定义的几个常用对象,第三节我们专门介绍了这几个常用的对象。
除了<% %>和<%! %>标签外,jsp中还可以使用的元素有:<%= %>表达式、<%-- --%>注释和<%@ page %>、<%@include %>、 <%@taglib %>编译指令,以及jsp:useBean、jsp:setProperty 、jsp:getProperty 、jsp:include、jsp:forward、jsp:plugin、jsp:fallback等操作指令。本节及下节中详细介绍这些页面标签。
还记得我们的测试应用吗?它在tomcat的webapps目录下,对应目录结构是:
webapps / test
/MyJsp.jsp
/WEB-INF
/ web.xml
MyJsp.jsp将会被tomcat解释成MyJsp_jsp.java文件,并编译成MyJsp_java.class文件,放置在tomcat的work目录下,对应的路径是: work\Catalina\localhost\test\org\apache\jsp目录。我们将在MyJsp.jsp里面来验证上述jsp元素的作用。
<%= expression %>
在jsp中,输出expression 表达式的值。注意<%=必须写在一起,中间不能有空格。先看一下示例: 修改MyJsp.jsp内容如下:
<html> <body> This is my first JSP! Now time is: <%=new java.util.Date() %> </body> </html>
在TOMCAT的work目录找到对应的MyJsp_jsp.java文件,查看_jspService()方法对于的代码:
out.write("<html>\r\n"); out.write(" <body>\r\n"); out.write(" This is my first JSP! Now time is: "); out.print(new java.util.Date() ); out.write("\r\n"); out.write(" </body>\r\n"); out.write("</html>\r\n");
表达式new java.util.Date()直接被out对象的print()方法所输出。由于print()方法接受一切对象Object和基本类型,因此<%= %>里面可以是任意的取值表达式,甚至是一个方法的调用。
<%-- --%>
jsp隐藏注释。与html中的注释<!-- -->相比较,这里的注释内容将不会被显示到客户端的html中。
先看示例:
<html> <body> This is my first JSP! Now time is: <%=new java.util.Date() %> <!-- This is a html comment --> <%-- This is a jsp hidden comment --%> </body> </html>
对应的源代码:
out.write("<html>\r\n"); out.write(" <body>\r\n"); out.write(" This is my first JSP! Now time is: "); out.print(new java.util.Date() ); out.write("\r\n"); out.write(" <!-- This is a html comment -->\r\n"); out.write(" "); out.write("\r\n"); out.write(" </body>\r\n"); out.write("</html>");
从源码里可以看出,HTML的注释将被原样地打印到客户端HTML代码中去,而jsp注释则不会被输出。因此jsp注释里面你可以输入你任何想输入的处理流程,而不担心被别人通过客户端HTML源代码窥视,因为jsp注释只是为开发者服务。
<%@ page %>
page指令用来定义jsp的页面属性。具体可配置参数如:
<%@ page language="java" extends="className"" import=importList"" session="true|false" buffer=none|size"" autoFlush="true|false" isThreadSafe="true|false" info="infoText" errorPage="errorPageURL" isErrorPage="true|false" contentType=" " %>
language=”scriptingLanguage”: 设定描述语言,默认值是”java”,而且也是目前唯一有效的设定值。如果一个月前不是Oracle而是Miscrosoft收购了sun,这里可能还将会有个c#的选项。
extends=”className”:设定产生出来的class所以继承的类。前文的源码中科研看到,默认继承的类是HttpJspBase,除非你认为自己可以优化tomcat的源码,否则不要去指定它。
import=”importList” :导入jsp程序所要用到的类的列表。这是唯一可以多次指定的属性。很明显,这里import的类,转换为java源码后将成为类头的import语句。
session="true|false":定义页面是否要用到session。默认是true.当页面加上<%@ page session=”false” %>后,_jspService()方法里将会去除这里缺少了session的声明和赋值。在jsp代码段中直接调用session将会提示变量未声明的错误。因此,session=”false”的意思是禁用了session这个变量,但session技术并没有被禁用,你仍然可以使用request.getSession()来获取并使用session.
buffer="none|size": jsp所需缓存量的大小,单位是KB.默认不得小于8KB.
autoFlush="true":定义jsp所用的buffer满时,是否自动将内容输出到客户端,默认是true。如果指为false,当内容超出时,将会产生overflow的exception。特别要注意的是,当buffer设为none的时候,autoFlush不能被设成false。
isThreadSafe="true|false": 设置线程安全。默认为true,表示以多线程方式出来客户端的请求。当设置为false时,将以单线程方式执行客户的请求,这在页面请求量过多是将是一场灾难,因为必须在前一个请求处理完毕后才能处理后一个请求。
info="infoText":设置jsp程序说明,这个一般不会去设置。
errorPage="errorPageURL":设置发生异常时的转向页面。
isErrorPage="true|false":是否异常页面,默认是false。如果设定为true,则会在解释后的java类里面声明一个exception对象:
Throwable exception = (Throwable) request.getAttribute(“javax.servlet.jsp.jspException”);
因此在错误页面中可以直接使用exception对象。
contentType=”contentType” 设置jsp的文件及编码格式,如contentType=”text/html; charset=utf-8”,作用同response.setContentType(“contentType”),但必须在传回任何结果之前调用它。
发表评论
-
Hadoop从零开始(一)——环境准备
2012-07-12 23:17 1510一、Linux虚拟机安装 Hadoop要运行在Uni ... -
JSP拾遗(十四)——单点登录
2009-08-03 09:58 0todo -
JSP拾遗(十三)——文件上传
2009-08-01 19:53 0TODO -
JSP拾遗(十二)——分页查询
2009-08-01 19:52 0TODO -
JSP拾遗(十一)——注册验证
2009-08-01 19:52 0TODO -
JSP拾遗(十)——权限控制
2009-08-01 19:51 0TODO -
JSP拾遗(九)——中文乱码
2009-08-01 19:48 0TODO -
JSP拾遗(八)——Listener
2009-08-01 19:44 2052Javax.servlet中定义了三类监听器:ServletC ... -
JSP拾遗(七)——Filter
2009-08-01 18:48 1022一个过滤器必须要实现javax.servlet.Filter, ... -
JSP拾遗(六)——Servlet
2009-08-01 18:42 960在典型的J2EE中,我们的应用是通过应用服务器(如TOMCAT ... -
JSP拾遗(五)——jsp文件包含指令
2009-07-12 19:36 2195<%@include file=”fileName” ... -
JSP拾遗(三)——jsp内置对象
2009-07-08 22:40 1230在看本章介绍的jsp ... -
JSP拾遗(二)——从jsp到servlet
2009-06-16 22:08 1798无代码无真相。这里我们来看看,一个简单的jsp页面, ... -
JSP拾遗(一)——初识JSP
2009-06-16 21:53 1173我的java编程学习,即是从jsp开始。 什么是jsp ...
相关推荐
【标签】"jsp网络编程——源文件(06——09)" 的标签进一步强调了主题的焦点,即JSP的网络编程实践,尤其关注的是第6至9章的学习材料。标签可以帮助用户快速定位到特定的学习资源,便于他们在JSP的学习路径上找到...
### JSP核心技术——JSP引擎内幕 #### 一、JSP引擎的工作原理 JSP(Java Server Pages)是一种基于Java的服务器端脚本技术,它允许开发者将动态内容嵌入到HTML网页中。JSP的核心功能是通过JSP引擎来实现的。JSP...
【标题】"jsp网络编程——源文件(12——13)"主要涵盖了JSP(Java Server Pages)技术在网络编程中的应用,这部分内容通常包括了第十二章和第十三章的知识点。JSP是Java平台上的动态网页技术,它允许开发者在HTML或...
在本教程的"jsp网络编程——源文件(01——05)"中,我们将逐步学习JSP的基本概念、语法结构以及常用功能。 **章节概览** 1. **chap01:JSP基础** - JSP的起源与发展 - JSP与HTML、Servlet的关系 - JSP基本结构...
**JSP程序设计——交友网站** 本项目是一个基于JSP技术构建的交友网站,它源自于张跃平的JSP程序设计课程中的实例,并经过个人的深入修改和扩展,增加了更多的功能,使得整个系统更加完善且可以直接运行。下面将...
《jsp程序设计——图灵奖》是一本专为学习Java Server Pages(JSP)技术而编写的书籍,尤其适合编程初学者。这本书以其深入浅出的讲解方式,为读者揭示了JSP编程的核心概念和实战技巧,使得学习过程更为轻松易懂。...
"JSP网络编程——多媒体(1——3)"这一主题,显然关注的是如何利用JSP技术处理和展示多媒体内容,如图像、音频、视频等。下面我们将深入探讨这个主题,了解相关知识点。 1. **JSP基本概念**: JSP是由Sun ...
4. JSP动作标签:如`<jsp:forward>`, `<jsp:include>`等,实现页面跳转和内容包含。 5. EL(Expression Language):简化了对JavaBeans属性的访问。 6. JSTL(JavaServer Pages Standard Tag Library):提供了一...
在JavaServer Pages (JSP)技术中,自定义标签是一种扩展JSP功能的重要方式,它允许开发者创建可重用的代码块,以提高代码的可维护性和可读性。自定义标签通过标记库(Tag Library)和标记描述文件(TLD, Tag Library...
【标题】"jsp网络编程——源文件(10——11)"主要涵盖了JSP(Java Server Pages)技术在网络编程中的应用,这是Java Web开发的重要组成部分。这两个章节可能包括了第10章和第11章的学习内容,涉及到JSP的基础语法、...
【JSP实例开发——购物车】是一个典型的网上商城系统中的重要组成部分,主要涉及网页动态编程技术JSP(Java Server Pages)以及购物车功能的实现。在这个实例中,我们将深入探讨如何利用JSP来构建一个简单但功能齐全...
【JSP源码——分页 QQ菜单 jsp标签_noka3.9.zip】是一个包含JSP编程中的分页和自定义标签实现的源代码集合。这个压缩包主要展示了如何在JSP应用程序中创建一个类似QQ菜单的交互式界面,并利用JSP自定义标签来简化...
【jsp小游戏——猜数字相加大小】是一款基于JavaServer Pages(JSP)技术开发的简单游戏,旨在帮助用户更好地理解和掌握JSP的基本用法。在这个游戏中,系统会随机生成两个数字,玩家需要猜测这两个数字相加的结果是...
【标题】"用JSP写的——企业人力资源系统"是一个基于Java服务器页面(JSP)技术构建的企业级应用,主要用于管理企业内部的人力资源信息。这个系统涵盖了人力资源管理的核心功能,如员工信息管理、招聘管理、培训发展...
它们可以被JSP页面通过Java表达式或JSP标签引用,实现数据的展示和交互。 四、数据库连接与操作 在选课系统中,通常需要存储学生信息、课程信息、选课记录等数据,这需要数据库支持。Java提供了JDBC(Java Database...
【JSP毕业设计——JSP考试管理系统】是一个基于Java服务器页面技术(JSP)的项目,主要用于实现教育机构或学校中的在线考试管理功能。这个系统包括了完整的源代码和相关论文,为学习JSP和Web开发的学生提供了一个...
【标题】"jsp毕业设计——jsp报名系统"指的是一个基于JSP技术的毕业设计项目,主要功能是实现一个在线报名系统。这样的系统通常用于教育、活动报名等场景,让用户能够方便快捷地完成报名流程。 【描述】"jsp毕业...
在“jsp网络编程——多媒体文件(7)”这个主题中,我们将深入探讨如何在Java Server Pages(JSP)中处理多媒体文件,这对于任何想要构建动态、交互式网站的开发者来说都是至关重要的。JSP是一种服务器端脚本语言,...
在这个场景中,"JSP动态树——javascript" 提供了一个利用JSP和JavaScript实现的交互式树形结构,特别适用于展示层级关系的数据。 1. **JSP基础**: JSP是Java平台的一部分,它允许开发者通过Java编程语言来控制页面...
【JSP毕业设计——jsp毕业选题系统】是一个基于Java Server Pages(JSP)技术的毕业设计项目,旨在帮助学生在完成学业时选择并管理他们的毕业课题。这个项目的核心是利用JSP和Java来实现一个在线选题系统,提供用户...