zoukankan      html  css  js  c++  java
  • JSP入门

    JSP简介

    所谓JSP就是在网页文件中嵌入Java代码或JSP定义的一些标记。JSP是建立在Servlet上的,在执行时JSP容器会先将JSP文件转换成Servlet文件以及class 文件,然后再执行。所以说JSP实际上也是Servlet。JSP容器也是Servlet容器。

    JSP语法

    JSP页面由元素和模板数据组成,模板数据不必理会,这些内容将直接发到客户端,JSP容器不会处理,例如HTML内容。

    JSP元素分为指令元素、脚本元素和动作元素三种。

    指令元素

    指令元素用于为转换阶段提供整个JSP页面的相关信息,不会产生任何的输出到当前的输出流中。指令元素有三种分别是:page、include和taglib。语法形式如下所示:

    <%@ directive (attr="value")* %>
    XML语法格式
    <jsp:directive.page attr1="value1" attrl="value2".. />

    page指令

    page指令的作用范围是整个JSP页面,无论放到哪里都可以,好的习惯应该放到JSP页面的顶部。page指令有13个属性:

    • language="scriptingLanguage"

      用于指定脚本元素使用的脚本语言,默认java,就目前来说也仅支持java

    • extends="className"

      用于指定JSP页面转换后的Servlet类从哪一个类继承,通常不需要使用,JSP容器会自动提供。需要注意的是该值时完整的限定类名

    • import="importList"

      用于指定脚本环境中可以使用的Java类。例如:

          <%@ page import="java.util.Vector, java.io.*" %>
      //或者
          <%@ page import="java.util.Vector" %>
          <%@ page import="java.io.*"  %>

      page指令中只有import属性可以重复设置。默认导入列表是:java.lang.*,java.servlet.*,java.servlet.jsp.*和javax.servlet.http.*。

    • session="true|false"

      用于指定JSP页面中是否可以使用session对象,默认true

    • buffer="none|sizekb"

      用于指定out对象的缓冲区大小,若设为none,表示没有缓冲区,所有输出通过ServletResponse的PrintWriter对象写出。单位为kb,默认8kb。

    • autoFlush="true|false"

      用于指定当缓冲区满的时候,缓存是否自动刷新,若设为false,当缓冲区满时会抛出一个异常。默认true

    • isThreadSafe="true|false"

      用于指定对JSP页面的访问是否是线程安全的。默认true。此属性不推荐使用

    • info="info_text"

      用于指定页面的相关信息,该信息可以通过Servlet接口的getServletInfo()方法得到。

    • errorPage="error_url"

      用于指定当JSP页面发生异常时,将转向哪一个错误处理页面。需要注意的是,若一个页面通过使用该属性定义了错误页面,那么在web.xml文件中定义的任何错误页面将不会被访问。

    • isErrorPage="true|false"

      用于指定当前JSP页面是否是另一个JSP页面的错误处理页面,默认false。

    • contentType="ctinfo"

      指定用于响应的JSP页面的MIME类型和字符编码。例如:

      <%@ page contentType="text/htmll charset=gb2312" %>
    • pageEncoding="peinfo"

      用于设置JSP页面使用的字符编码,若设置了该属性,则使用该属性指定的字符集,若无,则使用contentType属性指定的字符集,如果两个都没有指定,则使用字符集"ISO-8859-1"

    • isELIgnored="true|false"

        用于定义在JSP页面中是否执行或忽略EL表达式。默认值依赖于web.xml文件。

    include指令

    include指令用于在JSP页面中静态的包含一个文件,该文件可以使JPS文件,HTML文件、文本文件或者一段Java代码。需要注意的是包含的文件最好不要包含<html><body>等标签,这会影响到原JSP文件中同样的标签。源文件与被包含文件可以彼此访问定义的变量和方法,因此包含时需要格外小心。include指令语法如下:

    <%@ include file="relativeURLsper" %>
    xml语法格式
    <jsp:directive.include file="relativeURLspec" />

    示例:

     1 <%@ page language="java" import="java.util.*" pageEncoding="GB18030" %>
     2 <%@ page contentType="text/html; charset=gb2312" %>
     3 <html>
     4   <head>
     5     <title>My JSP 'MyJsp.jsp' starting page</title> </head>
     6   <body>
     7    现在时间是:
     8     <%@ include file="date.jsp" %>
     9   </body>
    10 </html>
    11           date.jsp
    12 <%
    13     out.println(new java.util.Date().toLocaleString());
    14 %>

     taglib指令

    taglib指令允许页面使用用户定制的标签。语法格式如下:

    <%@ taglib (uri="tagLibraryURL" | tagdir="tagDir") prefix="tagPrefix" %>
    xml语法格式
    <jsp:directive.taglib (uri="tagLibraryURL" | tagdir="tagDir") prefix="tagPrefix" />
    • uri

      该属性唯一的标识和前缀相关的标签库描述符,可以是绝对或者相对的URI。这个URI用于定位标签库描述符的位置

    • tagdir

      该属性指示前缀将被用于标识安装在/WEB-INF/tags/目录或者子目录下的标签文件

    • prefix

      定义一个prefix:tagname形式的字符串前缀,用于区分多个自定义标签。

    脚本元素

    脚本元素包含三个部分:声明、表达式和脚本段

    声明

    声明脚本元素用于声明在JSP页面的脚本语言中使用的变量和方法。声明必须是完整的声明语句,遵照java语言的语法。声明不会再当前输出流中产生任何输出。

    声明语法:

    <%! declaration(s) %>
    xml语法格式的声明
    <jsp:declaration>declaration(s)</jsp:declaration>

    声明示例:

    <%! int i; %>
    <%! int j =0; %>
    <%! public String f(int i) {if (i<3) return "3" ;} %>

    可以再一个声明中声明多个变量和方法,也可以使用多个声明。在声明变量的时候要注意不要忘记变量后面的分号,声明只在当前JSP页面有效。另外,使用声明声明的变量,在JSP容器转化JSP页面为Servlet类时,将作为该类的实例变量(类成员变量)或者类变量(类静态成员变量),在多用户并发访问时,这将导致线程安全的问题。

    脚本段

    脚本段是在请求处理期间要执行的java代码段。脚本段可以产生输出,并将输出发送到客户端,也可以是流程控制语句。语法如下:

    <% scriptlet %>
    xml语法格式
    <jsp:scriplet> scriplet</jsp:scriplet>

    在脚本段中声明的变量为局部变量,在后面的脚本段中可以使用该变量。脚本段中的变量时线程安全的。

    表达式

    表达式脚本元素是Java语言中完整的表达式,在请求处理时计算这些表达式,计算的结果将被转成字符串,插入到当前的输出流中。语法如下:

    <%= expression %>
    xml语法格式
    <jsp:expression> expression</jsp:expression>

    要注意,在书写表达式时,一定不要再表达式后面添加任何的标点符号。

    动作元素请见下一个博文。

  • 相关阅读:
    JavaScript(一)
    数据库(二)
    分布式系统框架Spring+Redis+SSO视频课程
    3、尚硅谷_SSM高级整合_使用ajax操作实现删除的功能
    3、尚硅谷_SSM高级整合_使用ajax操作实现修改员工的功能
    3、尚硅谷_SSM高级整合_使用ajax操作实现增加员工的功能
    2、尚硅谷_SSM高级整合_使用ajax操作实现页面的查询功能
    2、尚硅谷_SSM高级整合_创建Maven项目.avi
    尚硅谷maven视频教程笔记
    mybatis视频教程2-动态参数
  • 原文地址:https://www.cnblogs.com/freeabyss/p/3197639.html
Copyright © 2011-2022 走看看