`
Aether
  • 浏览: 14264 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

JSP拾遗(四)——jsp页面标签

    博客分类:
  • Java
阅读更多

    第二节中,我们通过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”),但必须在传回任何结果之前调用它。

分享到:
评论

相关推荐

    jsp网络编程——源文件(06——09)

    【标签】"jsp网络编程——源文件(06——09)" 的标签进一步强调了主题的焦点,即JSP的网络编程实践,尤其关注的是第6至9章的学习材料。标签可以帮助用户快速定位到特定的学习资源,便于他们在JSP的学习路径上找到...

    JSP核心技术——JSP引擎内幕(2010).pdf

    ### JSP核心技术——JSP引擎内幕 #### 一、JSP引擎的工作原理 JSP(Java Server Pages)是一种基于Java的服务器端脚本技术,它允许开发者将动态内容嵌入到HTML网页中。JSP的核心功能是通过JSP引擎来实现的。JSP...

    jsp网络编程——源文件(12——13)

    【标题】"jsp网络编程——源文件(12——13)"主要涵盖了JSP(Java Server Pages)技术在网络编程中的应用,这部分内容通常包括了第十二章和第十三章的知识点。JSP是Java平台上的动态网页技术,它允许开发者在HTML或...

    jsp网络编程——源文件(01——05)

    在本教程的"jsp网络编程——源文件(01——05)"中,我们将逐步学习JSP的基本概念、语法结构以及常用功能。 **章节概览** 1. **chap01:JSP基础** - JSP的起源与发展 - JSP与HTML、Servlet的关系 - JSP基本结构...

    Jsp程序设计——交友网站

    **JSP程序设计——交友网站** 本项目是一个基于JSP技术构建的交友网站,它源自于张跃平的JSP程序设计课程中的实例,并经过个人的深入修改和扩展,增加了更多的功能,使得整个系统更加完善且可以直接运行。下面将...

    jsp程序设计——图灵奖

    《jsp程序设计——图灵奖》是一本专为学习Java Server Pages(JSP)技术而编写的书籍,尤其适合编程初学者。这本书以其深入浅出的讲解方式,为读者揭示了JSP编程的核心概念和实战技巧,使得学习过程更为轻松易懂。...

    JSP网络编程——多媒体(1——3)

    "JSP网络编程——多媒体(1——3)"这一主题,显然关注的是如何利用JSP技术处理和展示多媒体内容,如图像、音频、视频等。下面我们将深入探讨这个主题,了解相关知识点。 1. **JSP基本概念**: JSP是由Sun ...

    jsp开发案例——租房系统jsp列子

    4. JSP动作标签:如`&lt;jsp:forward&gt;`, `&lt;jsp:include&gt;`等,实现页面跳转和内容包含。 5. EL(Expression Language):简化了对JavaBeans属性的访问。 6. JSTL(JavaServer Pages Standard Tag Library):提供了一...

    JSP扩展——自定义标签

    在JavaServer Pages (JSP)技术中,自定义标签是一种扩展JSP功能的重要方式,它允许开发者创建可重用的代码块,以提高代码的可维护性和可读性。自定义标签通过标记库(Tag Library)和标记描述文件(TLD, Tag Library...

    jsp网络编程——源文件(10——11)

    【标题】"jsp网络编程——源文件(10——11)"主要涵盖了JSP(Java Server Pages)技术在网络编程中的应用,这是Java Web开发的重要组成部分。这两个章节可能包括了第10章和第11章的学习内容,涉及到JSP的基础语法、...

    jsp实例开发——购物车

    【JSP实例开发——购物车】是一个典型的网上商城系统中的重要组成部分,主要涉及网页动态编程技术JSP(Java Server Pages)以及购物车功能的实现。在这个实例中,我们将深入探讨如何利用JSP来构建一个简单但功能齐全...

    JSP源码——分页 QQ菜单 jsp标签_noka3.9.zip

    【JSP源码——分页 QQ菜单 jsp标签_noka3.9.zip】是一个包含JSP编程中的分页和自定义标签实现的源代码集合。这个压缩包主要展示了如何在JSP应用程序中创建一个类似QQ菜单的交互式界面,并利用JSP自定义标签来简化...

    jsp小游戏——猜数字相加大小

    【jsp小游戏——猜数字相加大小】是一款基于JavaServer Pages(JSP)技术开发的简单游戏,旨在帮助用户更好地理解和掌握JSP的基本用法。在这个游戏中,系统会随机生成两个数字,玩家需要猜测这两个数字相加的结果是...

    用JSP写的——企业人力资源系统

    【标题】"用JSP写的——企业人力资源系统"是一个基于Java服务器页面(JSP)技术构建的企业级应用,主要用于管理企业内部的人力资源信息。这个系统涵盖了人力资源管理的核心功能,如员工信息管理、招聘管理、培训发展...

    JSP毕业设计——JSP网上选课系统.zip

    它们可以被JSP页面通过Java表达式或JSP标签引用,实现数据的展示和交互。 四、数据库连接与操作 在选课系统中,通常需要存储学生信息、课程信息、选课记录等数据,这需要数据库支持。Java提供了JDBC(Java Database...

    jsp毕业设计——JSP考试管理系统(源代码+论文).zip

    【JSP毕业设计——JSP考试管理系统】是一个基于Java服务器页面技术(JSP)的项目,主要用于实现教育机构或学校中的在线考试管理功能。这个系统包括了完整的源代码和相关论文,为学习JSP和Web开发的学生提供了一个...

    jsp毕业设计——jsp报名系统.zip

    【标题】"jsp毕业设计——jsp报名系统"指的是一个基于JSP技术的毕业设计项目,主要功能是实现一个在线报名系统。这样的系统通常用于教育、活动报名等场景,让用户能够方便快捷地完成报名流程。 【描述】"jsp毕业...

    jsp网络编程——多媒体文件(7)

    在“jsp网络编程——多媒体文件(7)”这个主题中,我们将深入探讨如何在Java Server Pages(JSP)中处理多媒体文件,这对于任何想要构建动态、交互式网站的开发者来说都是至关重要的。JSP是一种服务器端脚本语言,...

    JSP动态树——javascript

    在这个场景中,"JSP动态树——javascript" 提供了一个利用JSP和JavaScript实现的交互式树形结构,特别适用于展示层级关系的数据。 1. **JSP基础**: JSP是Java平台的一部分,它允许开发者通过Java编程语言来控制页面...

    JSP毕业设计——jsp毕业选题系统.zip

    【JSP毕业设计——jsp毕业选题系统】是一个基于Java Server Pages(JSP)技术的毕业设计项目,旨在帮助学生在完成学业时选择并管理他们的毕业课题。这个项目的核心是利用JSP和Java来实现一个在线选题系统,提供用户...

Global site tag (gtag.js) - Google Analytics