你的位置:首页 > Java教程

[Java教程]JavaWeb之JSP基础小结


1.概述

  JSP文件是通过三大指令,九大对象以及JSP表达式等与HTML语句结合形成的一个文件,其本质为Servlet简单来说,即Java代码+HTML语句。

2.运行原理

  每个JSP页面被访问时,即被JSP引擎翻译为一个Servlet源程序,该源程序再被编译成Servlet的class类文件。之后的执行流程与普通Servlet的执行一致。Servlet引擎将class类文件装载并翻译执行。

3.九大对象

  JSP有9个内置对象,不需要声明就可以使用。

  (1)request:实际就是HTTPServletRequest。

  (2)response:实际就是HTTPServletResponse。

  (3)pageContext:代表当前JSP页面,几乎包含了当前JSP页面的所以信息,也可以从该对象中获取其它八个对象。

  (4)session:代表浏览器和服务器的一次会话,是HttpSession的一个对象。

  (5)out:可以直接通过该对象的方法在页面输出文字信息或者HTML代码。

  (6)application:代表当前WEB应用,是ServletContext对象。

  (7)exception:在声明了<%@page isErrorPage="true"%>后可以通过该对象输出异常信息。 

  (8)config:当前JSP对应的Servlet的ServletConfig对象,若要访问当前JSP的配置参数,需要映射访问才可以。

  (9)page:指向当前Jsp对应的Servlet对象的引用 ,但是为object类型。

   其中最为常用也最为重要的四个对象按作用域范围如下:

    pageContext:作用域为当前JSP页面。通过<%@ include file=""%>引入的文件中的变量等当前页面也可以访问。但是通过pageContext.include("file")引入文件的变量和参数并不能直接在当前页面使用和修改,该方法的实质是将file中的内容原封不动地添加在当前页面,可以理解为将HTML页面直接拼接在该位置。

    request:作用范围在请求转发的过程中一直有效。

    session:作用域为浏览器和服务器的一次会话。直观表现在浏览器的一次打开与关闭。应用案例如购物网站中购物车的实现。

    application:当前应用装载在服务器中时有效。该应用从服务器卸载或者重新装载,以及服务器关闭等都会导致该对象失效。应用案例如网站统计访问人数。

  和属性相关的方法:

    Object getAttribute(String name)获取指定的属性

    Enumerration getAttributeNames()获取所有属性组成的Enumeration对象

    removeAttribute(String name)移除指定的属性

    setAttribute(String name, Object o)设置属性

 

4.三大指令

  (1)page:声明页面信息或导入内容


    ① 导入文件所需的jar包。外部添加的jar包一般存放在Web项目下 WEB-INF\lib、

<%@ page import="java.util.*"%>

    ② 关闭session,session默认打开。

<%@ pagesession="false" %>

    ③ 当前页面出错则跳转到"file"页面。并且该跳转方式为请求转发。

<%@ page errorPage="file"%>

    ④ 上文的"file"页面,可以对页面错误做处理或说明,可以配合exception对象使用。

<%@ page isErrorPage="true"%>

    ⑤ 当前JSP页面的字符编码(JSP文件编码)

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

    ⑥ 当前JSP页面的响应类型(服务器发送给浏览器的内容编码)

<%@ page contentType="text/html; charset=utf-8"%>

    ⑦ 是否使用EL表达式,通常为false

<%@ page isELInored="false" %>

    ⑧ 指定JSP页面的信息,可以使用getServletInfo()方法获取到该字符串

<%@page info="this JSP info" %>

  (2)include指令:将其它文件包含进来与当前页面进行合并。这类文件通常包括文本、JSP或其他格式的文件。

    ① 静态引入:通知JSP引擎在翻译JSP页面时,将其他源文件合并到当前JSP页面转换成的Servlet源文件中。两个源文件合并为一个Servlet源文件。"file"为相对路径。

<%@ include page="file"%>

    ②动态引入:该句被执行时程序通过请求转发跳转到"file",执行当中的内容之后再返回执行当前页面的剩余部分,实际是两个Servlet源文件。

<jsp:include page="file"></jsp:include>

  (3) taglib: 能够让用户根据需求自定义新的标签,便于功能的实现,但因此也导致了代码易读性不高。

5.其它

  (1) JSP表达式:可以直接将表达式中的内容显示在浏览器中

<%= "Hello World!" %>

  (2) 声明函数

<%!   pulic void function(){      out.println("Hello World!");  }%>

  (3)注释

   

 <!-- 客户端注释,客户端查看源可以看到 -->

 <%-- 服务端注释,客户端查看不到 --%>