11.《JavaEE 学习笔记》JSP组成元素

JSP 的组成元素:

JSP页面就是带有JSP元素的常规Web页面,它由静态内容和动态内容构成。其中,静态内容指HTML元素,动态内容(JSP元素)包括指令元素、脚本元素、动作元素、注释等内容。

1、指令元素

指令元素主要用于为转换阶段提供JSP页面的相关信息,指令不会产生任何输出到当前的输出流中,它指定了有关页面本身的信息,这些信息在请求之间一直保持不变。指令元素语法为<%@ directive{attr="value"}%>。指令元素有三种:page、include、taglib。

1.1 page

该指令用于整个页面,定义与页面相关的属性,它是JSP页面和容器的通信员,一般放在JSP页面的第一行。与page相关的属性如下:

  • buffer
  • 指定out对象使用缓冲区的大小
  • autoFlush
  • 控制out对象的 缓存区
  • contentType
  • 指定当前JSP页面的MIME类型和字符编码
  • errorPage
  • 指定当JSP页面发生异常时需要转向的错误处理页面
  • isErrorPage
  • 指定当前页面是否可以作为另一个JSP页面的错误处理页面
  • extends
  • 指定servlet从哪一个类继承
  • import
  • 导入要使用的Java类
  • info
  • 定义JSP页面的描述信息
  • isThreadSafe
  • 指定对JSP页面的访问是否为线程安全
  • language
  • 定义JSP页面所用的脚本语言,默认是Java
  • session
  • 指定JSP页面是否使用session
  • isELIgnored
  • 指定是否执行EL表达式
  • isScriptingEnabled
  • 确定脚本元素能否被使用

(1)page指令属性:import

import属性用来引入JSP文件需要使用的类。

<%@page import="com.company.project.model.po.BookPo"%>
<%@page import="com.company.project.biz.impl.BooksBizImpl"%>

可以使用逗号同时引入多个包,也可以在一个JSP文件中多次使用import。

(2)page指令属性:pageEncoding

pageEncoding属性用来设置JSP文件的页面编码格式。

<%@page pageEncoding=“utf-8"%>

(3)page指令属性:session

session属性用来设置JSP页面是否生成session对象。

<%@page session="false"%>

(4)page指令属性:errorPage

errorPage属性设置JSP页面的错误页面。当JSP中发生异常或错误却没有被处理时,容器将请求转发到错误页面.

<%@page errorPage="error.jsp"%>

(5)page指令属性: isErrorPage

isErrorPage属性指定当前页面是否可以作为另一个JSP页面的错误处理页面.

<%@page isErrorPage="true"%>

在error.jsp翻译生成的Java类中的_jspService方法中将生成exception内置对象

注意:即使一个页面没有设置isErrorPage=“true”,也可以作为错误页面使用,区别在是否有内置对象exception内置对象产生。

1.2 include

    该指令用于在JSP页面中包含一个文件,该文件可以是JSP页面、HTML网页、文本文件或一段Java代码。

        <%@ include file="相对于当前文件的" %>
<%@include file="/page/common/basePath.jsp" %>

1.3 taglib

    该指令允许页面使用用户定制的标签。

        <%@taglib prefix="前缀" uri="具有唯一标识和前缀相关的标签描述符地址" %>

2. JSP 内置对象

JSP文件中可以直接使用一些名字固定的对象,称为内置对象。内置对象由容器根据规范声明、创建,共有9个内置对象。其中exception对象在特定情况会创建。

(1)内置对象request

request是HttpServletRequest类型的对象,可以在JSP中直接通过request调用HttpServletRequest接口中的任何方法。

(2)内置对象response

response是HttpServletResponse类型的对象,可以在JSP中直接通过response调用HttpServletResponse接口中的任何方法。

(3)内置对象session

session是HttpSession类型的对象,可以在JSP中通过session调用HttpSession接口中的任何方法

(4)内置对象application

applicaton是ServletContext类型的对象,可以在JSP中通过application调用ServletContext接口中的任何方法。

(5)内置对象out

out是JspWriter类型的对象,可以在JSP中调用JspWriter的方法向客户端输出内容。然而,由于<%=%>可以更为便捷地进行输出,因此在JSP文件中往往不使用out对象进行输出。

(6)内置对象config

config是ServletConfig类型的对象,在JSP中可以使用config来调用ServletConfig接口中的任何方法。在web.xml中可以像配置Servlet那样配置JSP。使用配置的url-pattern访问JSP。

(7)内置对象exception

exception是一个Throwable类型的对象,默认情况下不会生成这个内置对象,当JSP页面被指令<%@page isErrorPage=“true”%>指定为可以是错误页面时,才会有exception这个内置对象。

(8)内置对象page

page指代当前类的对象,即this。

(9)内置对象pageContext

pageContext是所有内置对象中最重要的内置对象,是JSP的上下文对象。

pageContext是javax.servlet.jsp.PageContext类的对象。

很多内置对象通过pageContext对象获取。

3、脚本元素

使用JSP脚本元素可以将Java代码嵌入到JSP页面里,这些Java代码将出现在由当前JSP页面生成的Servelt中,使JSP将静态内容与动态内容分离出来。脚本元素包含表达式、脚本和声明等。
1)表达式
表达式是对数据的表示,系统将其作为一个值进行计算。

<%= expression%>
    例如<%= user.getName()%>在将JSP转换成Servlet后,使用out.print()将表达式的值输出。所以如果表达式是调用一个方法的话,那方法必须要有返回值,而且在方法的后面不能有分号。

2)脚本 脚本是在<% ... %>里嵌入的Java代码,这里的Java代码与一般的Java代码没有什么区别,所以每一条语句同样要以分号“;”结束,这和表达式是不同的。

<%  code  %>

3)声明

声明就是允许用户定义Servlet中的变量、方法。

<%! code %>

4、注释

(1):HTML的注释。在客户端查看源代码时能看到的注释

(2)<%-- ... --%>:JSP注释。在客户端查看源代码时无法看到的注释。

(3)JSP脚本中注释:在客户端查看源代码时能看到的注释 <% //单行注释 %> <% /*多行注释 */ %>

5、JSP标准动作

(1)标准动作:forward

forward动作:在JSP页面中进行请求转发

<jsp:forward page=“loginsuccess.jsp">
</jsp:forward>

(2)标准动作:include

include动作:在JSP页面中,进行动态包含

<jsp:include page=“top.jsp">
</jsp:include>

include标准动作与include指令都是实现包含其他页面的功能,但是include标准动作的属性是page,实现动态包含,发生在请求阶段;而include指令的属性是file,实现静态包含,发生在翻译阶段。

(3)标准动作:param

param动作往往作为子动作使用,为forward和include动作传递参数

<jsp:forward page="perInfo.jsp">
    <jsp:param name="userName" value="张三"/>
 </jsp:forward>
<jsp:include page="changePw.jsp">   
  <jsp:param name="userName" value="张三"/>
</jsp:include>

6、JavaBean

JavaBean是用Java语言描述的软件组件模型,实际上是一个Java SE的类。

我们往往使用JavaBean封装数据,在比较简单的应用中,也可以使用JavaBean封装业务逻辑,这些类遵循一定的编码规范:

  • 必须是public类 ;
  • 必须有一个无参的public的构造方法;
  • 返回属性的方法为getXxxx()格式 ;
  • 设置属性的方法为setXxx(形式参数)格式。

JavaBean相关标准动作:

(1)useBean

语法:<jsp:useBean id=“” class=“” scope=“”>

useBean标准动作用来使用JavaBean对象,JavaBean对象是某一范围(用scope指定)的属性。 Java Bean对象名字用id指定,类型用class指定。如果对应范围没有该属性,则调用class指定类的无参构造方法,创建一个该类的对象,并将该对象存储为scope的一个属性,属性名为id。 其中scope有四种:page、request、session、application,分别为PageContext范围、HttpServletRequest范围、HttpSession范围、ServletContext范围。如果不指定scope的值,默认为page范围。

<jsp:useBean id="firend" class="com.company.project.model.po.UserPo" scope="">

(2)setProperty

语法:<jsp:setProperty name=“” property=“” param|value=“”/>

<jsp:setUserName name="firend" property="userName" value="张三"/>

(3)getProperty

语法:<jsp:getProperty name=”” property=””/>

<jsp:getProperty name="firend" property="userName"/>

每日心语:

要得到必须要付出
要付出你还要学会坚持
如果你觉得真的很难
那你就放弃
但放弃你就不要抱怨

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.什么是JSP (1)jsp全称是Java Server Pages,它和Servlet技术一样都是sun公司定...
    yjaal阅读 9,114评论 5 99
  • Servlet不支持HTML语法,生成网页需要通过response输出流输出,导致生成页面的代码非常复杂.JSP支...
    罗志贇阅读 3,831评论 0 50
  • 一、JSP JSP全名Java Server Page,运行在服务器端的页面,。有了JSP我们可以在JSP页面上,...
    RinP阅读 2,118评论 0 0
  • 1.脚本元素 1.JSP页面 JSP页面尽管从结构上看起来类似于HTML页面,但它实际上是作为Servlet运行的...
    山山而川_1970s阅读 3,339评论 0 1
  • JSP页面语速可分为脚本元素、指令元素与动作元素三种类型 脚本元素:嵌入到jsp页面中的Java代码 指令元素:控...
    正经龙阅读 3,892评论 0 0

友情链接更多精彩内容