zoukankan      html  css  js  c++  java
  • Jsp语法、指令及动作元素

    一、JSP的语法

      

    1、JSP的模板元素:(先写HTML)

       就是JSP中的那些HTML标记

       作用:页面布局和美化

    2、JSP的Java脚本表达式:

       作用:输出数据到页面上

       语法:<%=表达式%>(实际上就是调用输出流打印到页面上)

    3、JSP中的Java脚本片段:(实际开发中,应做到JSP中不能出现一行Java脚本片段)

       作用:书写Java代码逻辑

       语法:<%
             语句1;
             语句2;
          %>

            语句为Java语句

       原理:其中的语句会原封不动的被服务器翻译到对应的Servlet的service方法中。

    4、JSP的声明:(了解其原理)

       作用:定义类的成员

       语法:<%!
             Java代码
          %>

    5、JSP的注释:

       作用:注释Java脚本代码

       语法:<%--这是注释--%>

       Jsp注释在客户端查看源文件无法看到,而Html注释在客户端可以看到

    二、JSP的指令:给JSP引擎用的(服务器用的)

    基本的语法格式:<%@ 指令名称 属性1="值1" 属性2="值2" ....%>
    作用:告诉服务器,该如何处理JSP中除了指令之外的内容的。

    1. page
      作用:定义JSP页面的各种属性
      属性: language:指示JSP页面中使用脚本语言。默认值java,目前只支持java。

          extends:指示JSP对应的Servlet类的父类。不要修改。

          *import:导入JSP中的Java脚本使用到的类或包。(如同Java中的import语句)
                JSP引擎自动导入以下包中的类:
                          javax.servlet.*
                          javax.servlet.http.*
                          javax.servlet.jsp.*
               注意:一个import属性可以导入多个包,用逗号分隔。

          *sessioin:指示JSP页面是否创建HttpSession对象。默认值是true,创建

          *buffer:指示JSP用的输出流的缓存大小.默认值是8Kb。

          autoFlush:自动刷新输出流的缓存。

          isThreadSafe:指示页面是否是线程安全的(过时的)。默认是true。
                 true:不安全的。
                 false:安全的。指示JSP对应的Servlet实现SingleThreadModel接口。

          *errorPage:指示当前页面出错后转向(转发)的页面。
                目标页面如果以"/"(当前应用)就是绝对路径。

                配置全局错误提示页面:
                在web.xml中,两种花方式:
                <error-page>
                    <exception-type>java.lang.Exception</exception-type>
                    <location>/error.jsp</location>
                </error-page>

                以及
                <error-page>
                    <error-code>404</error-code>
                    <location>/404.jsp</location>
                </error-page>

                
          *isErrorPage:指示当前页面是否产生Exception对象。

          *contentType:指定当前页面的MIME类型。作用与Servlet中的response.setContentType()作用完全一致

          *pageEncoding:通知引擎读取JSP时采用的编码(因为要翻译)
                  还有contentType属性的作用。

          *isELIgnored:是否忽略EL表达式。${1+1}。默认值是false。

    page指令最简单的使用方式:<%@ page pageEncoding="UTF-8"%>

    2. include静态包含,开发中能用静的不用动的)


    作用:包含其他的组件。

    语法:<%@include file=""%>file指定要包含的目标组件。路径如果以"/"(当前应用)就是绝对路径。

    原理:把目标组件的内容加到源组件中,输出结果。容器不必先生成被包含jsp页面或servlet的class文件,而是直接将内容添加到源组件中


    动态包含

    采用动作元素:<jsp:include page=""/>路径如果以"/"(当前应用)就是绝对路径。

    原理:先生成被包含jsp页面或servlet的class文件,再添加到源组件中

    3. taglib

    作用:引入外部的标签

    语法:<%@taglib uri="标签名称空间" prefix="前缀"%>

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

    三、JSP常用的动作元素

    <jsp:include/> 包含

    <jsp:forward/>  请求转发

    <jsp:param/>:在包含和转发时,利用该标签传递请求参数

    JSP中操作JavaBean的动作元素:

    1. jsp:useBean

      作用:用于在指定域范围内查找指定名称的JavaBean对象,找到了就直接使用;没有找到,创建一个,并放到指定的域范围内。

      属性:
        id:必须的。JavaBean的名称

        class:JavaBean的完整类名

        scope:域范围。默认是page范围。可选值:page request session application

      注意:如果该标签有主体内容,只在创建新对象时才会执行。


    2. jsp:setProperty(必须先使用useBean)

      作用:调用JavaBean的setter方法。还能自动类型转换,仅限基本类型

      属性:
        property:必须的。属性名称。比如setName,名称是name。
             可以使用通配符*。使用前提是请求参数的名称与属性的名称完全一致。

        name:必须的。哪个对象的?即jsp:useBean中的id的取值。

        value:属性的取值。支持直接量;支持表达式(<%=表达式%>)。

        param:请求参数名


    3. jsp:getProperty(必须先使用useBean)

      作用:调用JavaBean的getter方法。

      property:必须的。属性的名称。比如getName,名称是name。

      name:必须的。哪个对象的?即jsp:useBean中的id的取值。

  • 相关阅读:
    巴洛克式和哥特式的区别
    推荐阅读书籍,是时候再行动起来了。
    AtCoder ABC 159F Knapsack for All Segments
    AtCoder ABC 159E Dividing Chocolate
    AtCoder ABC 158F Removing Robots
    AtCoder ABC 158E Divisible Substring
    AtCoder ABC 157F Yakiniku Optimization Problem
    AtCoder ABC 157E Simple String Queries
    AtCoder ABC 157D Friend Suggestions
    AtCoder ABC 156F Modularness
  • 原文地址:https://www.cnblogs.com/z941030/p/4764951.html
Copyright © 2011-2022 走看看