JSP基本语法与内置对象

  • 指令:在页面转换时执行,是向容器提供的关于JSP页面的总体信息
  1. page指令:通知容器关于JSP页面的总体特性,如页面输出的内容类型和使用的字符集等,格式如:<%@ page contentType="text/html;charset = gb2312" %>
  2. include指令:告诉容器把另一个文件(HTMLJSP等)的内容包含到当前页面中,格式如:<%@ include file="copyright.html" %>
  3. taglib指令:指定在JSP页面中使用标准标签或自定义标签的前缀与标签库的URI。格式如:<%@ taglib prefix="test" uri="taglib.tld" %>
  • JSP 中9大内置对象:request,response,session,application,out,pageContext,config,page,exception
  • JSP 中有四大作用域对象:pageContext,request,session,application
  • JSP页面生命周期的三个方法
  1. public void jspInit()
  2. public void _jspService(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
  3. public void jspDestroy()
  • pageContext变量

pageContextjavax.servlet.jsp.PageContext类型的隐含变量,对应于页面上下文对象。它有下面三个作用:

  1. 存储隐含对象的引用 sessionapplicationconfigout这些隐含变量是调用pageContext对象的相应方法得到的。
  2. 提供了在不同作用域内获取或设置属性的方便的方法。
  3. 提供了forward()方法和include()方法实现将请求转发到另一个资源和将一个资源的输出包含到当前页面中的功能

                      public void include(String relativeURL)

                      public void forward(String relativeURL)

例如,从Servlet中将请求转发到另一个资源,我们需要写下面两行:

RequestDispatcher view = request.getRequestDispatcher("other.jsp");

view.forward(request, response);

JSP页面中,通过使用pageContext变量仅需一行就可以完成上述功能:

pageContext.forward("other.jsp");

  • config变量

configjavax.servlet.ServletConfig类型的隐含变量。也可以为JSP页面传递一组初始化参数

<servlet>

    <servlet-name>InitTestServlet</servlet-name>

    <jsp-file>/initTest.jsp</jsp-file>

    <init-param>

        <param-name>email</param-name>

        <param-value>smith@yahoo.com.cn</param-value>

    </init-param>

</servlet>

<servlet-mapping>

      <servlet-name>InitTestServlet</servlet-name>

      <url-pattern>/InitTest</url-pattern>

</servlet-mapping >

<html> <body>

Servlet Name = <%=config.getServletName()%><br>

Email Address = <%=config.getInitParameter("email")%>

</body> </html>

  • JSP页面的生命周期包括哪几个阶段?
  • 理解作用域对象
  1. 应用作用域
  2. 会话作用域
  3. 请求作用域
  4. 页面作用域

对应的Servlet

JSP对象

作用范围

ServletContext

application

整个web应用程序

HttpSession

session

一个用户会话范围

ServletRequest

request

请求和请求转发

PageContext

pageContext

当前页面转换单元

转换阶段---->编译阶段---->初始化阶段(创建实例)---->执行阶段---->销毁阶段

  • JSP语法元素有哪些?使用时应注意什么问题?

JSP页面元素

简要说明

标签语法

脚本元素

声明

声明变量与定义方法

<%!Java声明%>

小脚本

执行业务逻辑的Java代码

<%Java代码%>

表达式

用于在JSP页面输出表达式的值

<%=表达式%>

指令

页面转换时向容器发出的指令

<%@指令%>

动作

向容器提供请求时的指令

<jsp: 动作名/>

EL表达式

JSP 2.0 引进的表达式语言

${applicationScope.email}

注释

用于文档注释

<%--任何文本--%>

模板文本

静态HTML标签和文本

HTML规则

使用时的注意事项:

  1. 表达式不能以分号结束,非法的:<%=count;%>
  2.  百分号和等号之间不能有空格<%=count%>
  3. 使用指令时,大小写不能混用,属性值要用引号括起来,等号与值之间不能有空格
  • JSP指令和动作有哪些?有什么区别?
  1. JSP指令:page指令,include指令,taglib指令
  2. JSP动作:include动作(<jsp:include>包含标签),useBean动作,getProperty动作,setProperty动作,param动作(<jsp:param>参数标签),forward动作(<jsp:forward>转发标签),plugin动作

 

JSP指令

JSP动作

语法格式

<%@include file=“ ”%>

<jsp:include page=“ ”>

发生作用时间

页面转换时

请求期间

包含内容

文件的实际内容(源代码)

页面输出(结果)

转换成Servlet

主页面和包含页面转换为一个servlet

主页面和包含页面分别转换为独立的servlet

编译时间

较慢,资源必须被解析

较快

执行时间

稍快

较慢,每次资源必须被解析

使用方式

页面内容不经常变化

页面经常变化时

  • page指令有哪些常用的属性,这些属性的功能是什么?

属性

作用

language=“ScriptLanguage

指定JSP Container用什么语言来编译,目前只支持Java语言。默认为Java

extends=“className

定义此JSP网页产生的Servlet是继承哪个

import=“importList

定义此JSP网页要使用哪些Java API

session=“true|false

决定此页面是否使用session对象。默认为true

buffer=“none|size in kb”

决定输出流(Input Stream)是否有缓冲区。默认为8kb

autoFlush=“true|false

决定输出流的缓冲区慢了后是否需要自动清除,缓冲区慢了后会产生异常错误(Exception)。默认为true

isThreadSafe=“true|false

是否支持线程。默认为true

errorPage=“url

如果此页面发生异常,网页会重新指向一个url

isErrorPage=“true|false

表示此网页是否为错误页面。默认为false

contentType=“text/html:charset=gb2312”

表示MIME类型和JSP的编码方式

pageEncoding=“ISO-8859-1”

编码方式

isELIgnored=“true|false

表示是否支持JSP页面中EL表达式。true则忽略,反之false则支持。默认为false

  • JSP标准动作:
  1. <jsp:include page="copyright.jsp"/>
  2. <jsp:forward page="other.jsp"/>
  3. <jsp:useBean id="xx" class="xx">
  4. <jsp:setProperty name=" " property=" " value=" "/>
  5. <jsp:getProperty name=" " property=" " /> 
  6. <jsp:plugin id=" " name=" " class=" "/>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值