栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JSP入门

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSP入门

1. 概念:
        * Java Server Pages: java服务器端页面
            * 可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码
            * 用于简化书写!!!
    2. 原理
        * JSP本质上就是一个Servlet。第一次访问jsp页面的时候,Tomcat会帮我们把jsp页面翻译成为一个Java源文件。并且对它进行翻译为.class字节码程序。我们打开Java源文件不难发现其里面的内容是:

         我们跟踪源代码发现,HttpJspBase类,它直接地继承了HttpServlet类。也就是说。jsp翻译出来的Java类,它间接地继承了HttpServlet类,也就是说,翻译出来的是一个Servlet程序。


 总结:通过翻译的Java源代码我们就可以得到结果:jsp就是Servlet程序。

        大家可以去观察翻译出来的Servlet程序的源代码,不难发现,其底层实现,也是通过输出流,把html页面数据回传给客户端。

JSP头部的page指令
        jsp的page指令可以修改jsp页面的一些重要的属性,或者行为。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

i.  language属性                          表示jsp翻译后是什么语言。暂时只支持Java。
ii. contenType属性                       表示jsp返回的数据类型是什么,也是源码中                                                                                      response.setContentType()参数值
iii.pageEncoding属性                   表示当前jsp页面本身的字符集
iv.import属性                                跟Java源代码中一样,用于导包、导类

============================以下两个属性给out输出流使用=====================
v. autoflush属性                            设置当out输出缓冲流区满了之后,是否自动刷新缓冲区。默认                                                         值是true。
vi.buffer属性                                 设置out缓冲区的大小。默认是8kb

=========================================================================
vii.errorPage属性                         设置当jsp页面运行时出错,自动跳转去的错误页面路径。

viii. isErrorPage 属性                   设置当前jsp页面是否是错误信息页面。默认是false。如果是true                                                       可以获取异常信息。
ix. session属性                             设置访问当前jsp页面,是否会创建HttpSession对象。默认是true
x. extends属性                              设置jsp翻译出来的Java类默认继承谁。

    

3. JSP的脚本:JSP定义Java代码的方式
        1. <%  代码 %>:代码脚本:定义的java代码,在service方法中。service方法中可以定义什么,该脚本中就可以定义什么。可以定义局部变量或者调用方法,但不能定义方法。
        2. <%! 代码 %>:定义的java代码,在jsp转换后的java类的成员位置。称作声明脚本 ,其中写的内容将来会直接翻译在Servlet类中,因为我们可以在类中定义方法和属性以及全局变量,所以我们可以在<%!%>中声明方法、属性、全局变量。一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。在JSP文件中,必须先声明这些变量和方法然后才能使用它们。

  1. <%! int num = 1;%>

  2. <%System.out.println(num);%>

  3. //输出1

        3. <%= 表达式 %>:表达式脚本,定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么。
           由于表达式脚本翻译的内容都在_jspService()方法中,所以_jspService()方法中的对象都恶意直接使用。
           表达式脚本中的表达式不能以分号结束。

        4.<%@%>
这表示是指令,主要用来提供整个JSP 网页相关的信息,并且用来设定JSP网页的相关属性,
例如:网页的编码方式、语法、信息等。
目前有三种指令:page、include 和taglib,每一种指令都有各自的属性。
page 指令是最复杂的JSP指令,它的主要功能为设定整个JSP 网页的属性和相关功能。
include 指令表示:在JSP 编译时插入一个包含文本或代码的文件,这个包含的过程是静态的,
而包含的文件可以是JSP 网页、HTML 网页、文本文件,或是一段Java 程序。
taglib 指令能够让用户自定义新的标签。

//声明脚本语言的种类,目前只支持JAVA语言。默认为JAVA。
<%@ page language="java" %>
        

5.<%-- --%>和
        是显式注释 
        <%-- --%>是隐式注释 
在JSP中如果用
        则在浏览器源代码中看得到 
       <%-- --%>则在浏览器源代码中看不到

这里注意一点,如果是这两个注释用在java代码上,会有隐性的坑:

        这种注释是静态注释,只影响前端的代码,后端的代码还是会执行;

        <%-- --%>这种注释是动态注释,前后端的代码都会被屏蔽

相当于

        用来注释html或者xml的
        <%-- --%>用来注释java代码的

一般禁止用 包含java代码
 

JSP的三种注释:
i.        html注释
        <--   这是html注释   -->
        html注释会被翻译到Java源代码中。在_jspService方法里,以out.write输出到客户端。

ii.        java注释
        //单行Java注释
       

iii.        jsp注释
        <%-- 这是jsp注释  --%>
        jsp注释可以注释掉jsp页面中所有代码。

    4. JSP的九大内置对象:
        * 在jsp页面中不需要获取和创建,可以直接使用的对象
        *是指Tomcat在翻译jsp页面成为Servlet源代码后,内部提供的九大内置对象。
            * request                请求对象
            * response             响应对象
            *pageContext         jsp的上下文对象
            *session                 会话对象
            *application            ServletContext对象
            *config                    ServletConfig对象
            * out:字符输出流对象。可以将数据输出到页面上。和response.getWriter()类似
                * response.getWriter()和out.write()的区别:
                    * 在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。
                    * response.getWriter()数据输出永远在out.write()之前
             *page                     指向当前的jsp对象
             *exception              异常对象

jsp四大域对象:

 

 

 jsp静态包含:

 

jsp动态包含:
           动态包含的 底层原理:

 

 jsp请求转发:

<%--
      是请求转发标签,它的功能是请求转发
        page属性设置请求转发的路径
--%>
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1025095.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号