JSP基础

1.本质:

JSP本质上是一个Servlet,它会由JSP引擎翻译为.java源文件,再由JDK编译为.class字节码文件。

(1)通过查找翻译后的.java源文件,发现它继承了HttpServlet。

(2)在全局的web.xml文件中,可以找到对应的注册和映射信息。

(3)翻译后的.java源文件,能找到对应Servlet生命周期方法。

(4)因为本质上是一个Servlet,所以只能通过Servlet容器来访问。

2.翻译的时机

在第一次访问JSP时进行翻译和编译。

3.基本语法

(1)JSP模板元素:指 html 标签元素

(2)JSP表达式:<%= %>,里面的值相当于方法参数,不能加分号。

(3)JSP脚本片段:<% %>,可以在其中写Java代码,会被翻译为_jspService()方法中。

(4)JSP指令:<%@ 指令名 属性名=属性值%>

    <1><%@taglib %> 导入第三方标签库

    <2><%@page %>:定义于当前页面相关的一些属性

        contentType属性:用来设置浏览器响应消息头的信息。设置 Content-Type 响应报头,标明即将发送到客户程序的文档的 MIME 类型以及浏览器对响应内容的解码字符集。

        pageEncoding属性:用于设置当前JSP页面翻译成.java源文件的“解码”字符集;设置JSP页面翻译成Servlet源文件时使用的字符集。

        import属性:导入JSP页面中Java类所在的包

        errorPage属性:指定错误显示页面

        isErrorPage属性:能否用于错误页面的显示

        session属性:

        isELIgnored属性:

    <3><%@include %> 静态包含,会共同翻译成一个.java文件,将另一个JSP页面包含到当前JSP页面。

(5)注释:<%--   --%>

(6)JSP标签

    <1><jsp:include page=""></jsp:include>,动态包含,包含进来的JSP页面也会翻译为一个.java源文件

    <2><jsp:forward page=""></jsp:forward>,在JSP页面上进行转发

    <3><jsp:useBean id="initDate" class="java.util.Date" scope="page"></jsp:useBean>,在JSP页面中创建对象并保存到对应范围的域对象中。

4.JSP隐含对象

(1)不需要创建就可以使用

(2)九大隐含对象:pageContext,request,session,application,response,config,out,exception,page

(3)其中request,response对象由Servlet容器来创建,并作为参数,传入到_jspService()方法中,其他隐含对象在_jspService()定义并赋值的。

(4)域对象:

    <1>能够在自身的属性域中保存数据或获取数据的对象。

    <2>有效范围:

        pageContext:当前JSP页面范围

        request:同一个请求。服务器端转发。

        session:同一个会话。默认从浏览器打开都关闭。

        application:当前web应用。从生到死。

    <3>对象本身的作用:

        pageContext:当前JSP页面的上下文,可以通过这个对象获取其他八个隐藏对象。

        config:代表当前JSP对应servlet的配置信息。

        out:负责将数据输出到浏览器

        exception:代表当前页面捕获到的异常信息

        page:this,代表当期JSP对应的servelt类对象

原文地址:https://www.cnblogs.com/solverpeng/p/5623383.html