zoukankan      html  css  js  c++  java
  • JavaWeb——JSP,JSP指令,注释


    什么是JSP?

    JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。

    JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。
     
    JSP(Java Server Pages)是指:

    • 在HTML中嵌入Java脚本代码

    • 由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本代码

    • 然后生成的整个页面信息返回给客户端

    这里写图片描述

    JSP原理:

    浏览器向服务器发请求,不管访问的是什么资源,其实都是在访问Servlet,所以当访问一个jsp页面时,其实也是在访问一个Servlet,服务器在执行jsp的时候,首先把jsp翻译成一个Servlet,所以我们访问jsp时,其实不是在访问jsp,而是在访问jsp翻译过后的那个Servlet。

    JSP页面中的java代码服务器是如何执行的?

    在jsp中编写的java代码会被翻译到_jspService方法中去,当执行_jspService方法处理请求时,就会执行在jsp编写的java代码了,所以Jsp页面中的java代码服务器是通过调用_jspService方法处理请求时执行的。
      

    Web服务器在调用jsp时,会给jsp提供一些什么java对象?

    查看_jspService方法可以看到,Web服务器在调用jsp时,会给Jsp提供如下的8个java对象:

    • PageContext pageContext;
    • HttpSession session;
    • ServletContext application;
    • ServletConfig config;
    • JspWriter out;
    • Object page = this;
    • HttpServletRequest request,
    • HttpServletResponse response

    JSP执行过程

    Web容器处理JSP文件请求需要经过3个阶段:

    • 翻译阶段
    • 编译阶段
    • 执行阶段
      这里写图片描述

    JSP页面的元素包括:

    • 静态内容:HTML静态文本
    • 指令:以<%@ 开始,以%> 结束。 导包,导库,导入其他文件。 比如<%@ include file=” ” %>
    • 表达式:<% = Java表达式 %> (页面上显示的信息)

    • 小脚本:<% Java代码 %> (嵌入Java代码,声明变量等)

    • 声明:<% ! 方法%> (定义方法,声明方法,在其他地方引用或调用)

    • 注释:<%– 注释,但客户端不能查看到 –%>

    JSP模版元素

    JSP页面中的HTML内容称之为JSP模版元素。

    JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观。

    JSP脚本片段:

    JSP脚本片断(scriptlet)用于在JSP页面中编写多行Java代码

        <% 
                多行java代码 
        %>
      在<% %>中可以定义变量、编写语句,不能定义方法。

    JSP指令:

    JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。

     在JSP 2.0规范中共定义了三个指令:

    • page指令
    • Include指令
    • taglib指令

    JSP指令的基本语法格式:<%@ 指令 属性名=”值” %>


    什么是Page指令?

    Page指令:(设置脚本语言,导包,编码格式)

    • 通过设置内部的多个属性来定义整个页面的属性。

    语法:<%@ page 属性1 = “属性值”,属性2 = “属性值” %>

    Page指令常用属性:

    • Language:指定JSP页面使用的脚本语言。 默认:Java。

    • import:通过该属性来引用脚本语言中使用到的类文件。 默认值:无。

    • pageEncoding:用来指定JSP页面所采用的编码方式。

    page指令的import属性

    在Jsp页面中,Jsp引擎会自动导入下面的包

    • java.lang.*
    • javax.servlet.*
    • javax.servlet.jsp.*
    • javax.servlet.http.*

    可以在一条page指令的import属性中引入多个类或包,其中的每个包或类之间使用逗号(,)分隔。

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

    或者:

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

    page指令的include指令

    在JSP中对于包含有两种语句形式:

    • @include指令
    • <jsp:include>指令

    @include可以包含任意的文件,当然,只是把文件的内容包含进来。

    include指令用于引入其它JSP页面,如果使用include指令引入了其它JSP页面,那么JSP引擎将把这两个JSP翻译成一个servlet。所以include指令引入通常也称之为静态引入。

    语法:<%@ include file=”relativeURL”%>,其中的file属性用于指定被引入文件的路径。路径以“/”开头,表示代表当前web应用。

    include指令细节注意问题:

    • 被引入的文件必须遵循JSP语法。

    • 被引入的文件可以使用任意的扩展名,即使其扩展名是html,JSP引擎也会按照处理jsp页面的方式处理它里面的内容,为了见明知意,JSP规范建议使用.jspf(JSP fragments(片段))作为静态引入文件的扩展名。

    • 由于使用include指令将会涉及到2个JSP页面,并会把2个JSP翻译成一个servlet,所以这2个JSP页面的指令不能冲突(除了pageEncoding和导包除外)。

    总结@include指令:
    使用@include可以包含任意的内容,文件的后缀是什么都无所谓。这种把别的文件内容包含到自身页面的@include语句就叫作静态包含,作用只是把别的页面内容包含进来,属于静态包含。


    JSP中的注释

    作用:

    合理、详细的注释有利于代码后期的维护和阅读。

    注释类别:

    在JSP文件的编写过程中,共有三种注释方法:

    HTML注释:<!– html 注释 –> 缺点:不安全,加大网络传输负担。
    JSP注释:<%– JSP 注释 –%> 前台不显示,减轻了网络传输负担。

  • 相关阅读:
    [HNOI2010]CITY 城市建设

    [HNOI2011]数学作业
    [NOI2012]美食节
    [HEOI2014]大工程
    [HEOI2013]ALO(待更)
    [HEOI2016/TJOI2016]序列
    贪食蛇(未完待续)
    [HEOI2016/TJOI2016]字符串
    bzoj 2437[Noi2011]兔兔与蛋蛋 黑白染色二分图+博弈+匈牙利新姿势
  • 原文地址:https://www.cnblogs.com/aixing/p/13327718.html
Copyright © 2011-2022 走看看