• Jsp入门--语法格式(<% %>)、指令(page、include、taglib)


    JSP脚本

    1. <% java代码 %>

         方法内部的代码都可以写在个位置

    <%  String s1 = "hello jsp";    %>

    2. <%=java代码  %>

        把java代码运行的结果在页面显示,  要求java代码是一个表达式

    <%=s1 %>

    3. <%! java代码   %>   使用很少

           对属性的声明,方法的声明

    4、jsp的注释 <%-- ... --%>

    JSP是特殊的Servlet

       JSP是一种特殊的Servlet,当JSP页面首次被访问时,容器(Tomcat)会先把JSP编译成Servlet,然后再去执行Servlet。所以JSP其实就是一个Servlet!

    JSP真身存放目录

      JSP生成的Servlet存放在${CATALANA}/work目录下,我经常开玩笑的说,它是JSP的“真身”。我们打开看看其中的内容,了解一下JSP的“真身”。

      你会发现,在JSP中的静态信息(例如<html>等)在“真身”中都是使用out.write()完成打印!这些静态信息都是作为字符串输出给了客户端。

      JSP的整篇内容都会放到名为_jspService的方法中!

    JSP指令

    语法: 语法格式:  <%@ 指令名  属性名1=值1   属性名2 = 值2....  %>
    1. page指令:  对jsp页面一些设置
    2. include指令: 包含其他jsp页面
    3. taglib指令: 引入标签库  (往后)

    page指令

    page指令是最为常用的指定,也是属性最多的属性!

    page指令没有必须属性,都是可选属性。例如<%@page %>,没有给出任何属性也是可以的!

    在JSP页面中,任何指令都可以重复出现!

    默认创建的jsp: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

    属性:

    1、 language:  jsp支持的编程语言: 值只能是java

    2、 pageEncoding: 设置jsp的编码:指定当前JSP页面的编码!这个编码是给服务器看的

    3、 Content-type:   contentType属性与response.setContentType()方法的作用相同!

      它会完成两项工作,一是设置响应字符流的编码,二是设置content-type响应头。

    注意: 

    1. 如果只设置pageEncoding没有设置contentType, contentType默认使用的pageEncoding
    2. 如果只设置contentType没有设置pageEncoding, pageEncoding默认使用的contentType

    4、  import, 导包

      a) Import=”包.类,包.类2,....”

      b) 使用多个page指令, 每一个page指令包含一个import

    5、  errorPage与isErroePage

      errorPage=”错误页面的url”, 当jsp出现错误, Tomcat根据的errorPage属性,找到对应的设置的错误页面给客户端

    <%@ page  errorPage = "./error.jsp"%>

      错误页面: 添加一个属性: isErrorPage:  boolean,  默认值false,  不是错误页面   True; 是错误页面

    <%@ page  isErrorPage = "true" %>

    可在xml中统一设置xml,错误页面

     只需要在页面头部添加isErrorPage:就可在页面中出现错误后返回相应页面

    6、  autoFlush  是否自动刷新, 默认true, 自动刷新, buffer,设置缓冲区大小, 默认8KB

    7、  isELIgnored  是否忽略EL表达式(EL表达式不起作用) 默认false,不忽略   True.忽略,

    其他属性:

    •  info:JSP说明性信息;
    •  isThreadSafe:默认为false,为true时,JSP生成的Servlet会去实现一个过时的标记接口SingleThreadModel,这时JSP就只能处理单线程的访问;
    •  session:默认为true,表示当前JSP页面可以使用session对象,如果为false表示当前JSP页面不能使用session对象;
    •  extends:指定当前JSP页面生成的Servlet的父类;

    include指令

      include指令表示静态包含!即目的是把多个JSP合并成一个JSP文件!

    语法:<%@include file =  "包含页面的路径" %>

    底层只是将被包含的页面复制过去

    注意:  被包含的页面, 只需要写内部,不需要写HTML头部

    Taglib 指令

      导入第三方的标签库

    语法:<%@ taglib  prefix="前缀"  uri="标签的url"  %>

    Jsp动作标签

    语法:   jsp: 标签名前缀, 区分与HTML的标签
            <jsp:标签名 属性名=值  >       
    • <jsp:include> 
    • <jsp:forward> 
    • <jsp:param>

    1、<jsp:include>标签的作用是用来包含其它JSP页面的

    2、<jsp:forward  page=”转发的资源路径”>  请求转发,

       对request.getRequestDispatcher("/top.jsp").forward(request,response);的简写

    3、在<jsp:include>和<jsp:forward>标签中使用<jsp:param>子标签

    <jsp:include page="./demo4.jsp">
            <jsp:param value="zhangsan" name="name1"/>
            <jsp:param value="21" name="age"/>
    </jsp:include>
    dome4.jsp页面中

    //获取参数
      out.print(request.getParameter("name1"));
      out.print(request.getParameter("age"));

    <%@ include%>  与  <jsp:include> 的区别

      <%@ include  file=”” %>  静态包含, 

        如果ajsp使用静态包含b.jsp, 生成java代码时, 只有a.jsp对应的java代码, 没有.b.jsp对应的java代码,

      只是在a.jsp中把b.jsp中的代码赋值粘贴到a.jsp

      <jsp:include  page=”动态包含页面的路径” >: 

        动态包含, a.jsp 动态包含b.jsp  a.jsp生成一个java类, b.jsp生成java类, 

      a.jsp中java类只是调用了b.jsp中的方法  _jspService()

  • 相关阅读:
    [转]SQL Server中的执行引擎入门
    [转]C# 导入导出Excel通用类(SamWang)
    【转】TSQL查询进阶—理解SQL Server中的锁
    [转载]使用分页方式读取超大文件的性能试验
    【总结】读《WEB三层架构的束缚》后的感想
    【转】jQuery使用 $.post提交json数据
    【原创】关于索引的总结
    【转】.net 匿名函数的变化
    【转】List<T>的Sort,Find,Exists等的使用
    【转】Http中Get/Post请求区别
  • 原文地址:https://www.cnblogs.com/64Byte/p/12871429.html
Copyright © 2020-2023  润新知