JSP学习(1)----page指令,include指令,taglib指令

一、简介

JSP全名为Java Server Pages,Java服务器页面。根本是简化的Servlet

servlet进行请求逻辑处理,使用JSP进行页面展现。

特点: 本质是servlet

            跨平台,一次编写处处运行

            健壮性,安全性

运行原理:

             浏览器发起请求,请求JSP,请求被Tomcat服务器接收,执行jspServlet,将jsp文件转义为对应的Java文件,也就是Servlet文件,然后执行转义后的文件。

JSP的三种注释:

                      1. 前端语言注释:<!--  注释    -->

                                                 会被转义,会被发送到浏览器,不会被浏览器执行

                      2.  Java语言注释:<%    //注释

                                                      %>

                                                  会被转义,不会被servlet执行

                       3. JSP注释:   <%--         --%>

                                                   不会转义

二、JSP的语法和指令

JSP的指令

作用:设定整个JSP页面范围内都有效的相关信息,被服务器解释并执行,不会产生任何内容输出到网页。

语法格式:<%@  指令名   属性1="属性值1"   属性2="属性值2"  。。。%>

1. page指令

作用:配置jsp文件转义时的相关参数

例:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"  contentType="text/html;chartset=utf-8"%>

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

language属性 设置JSP页面使用的语言   session JSP页面是否使用HTTP的session会话对象,默认为true
extends属性 转义的Java文件要继承的java类   buffer out输出对象使用的缓冲区大小,默认8KB
import 转义的Java文件需导入的类包,多个包用逗号隔开   autoFlush 页面缓存满时,是否自动刷新缓存,默认为true
pageEncoding jsp文件的编码格式   isErrorPage  
contentType 响应时的编码格式   errorPage jsp运行出现错误时跳转的页面

 

 

 

 

2. JSP的局部代码块:

在一个JSP页面中,可以包括指令标识、HTML代码、JavaScript代码、嵌入的java代码、注释、JSP动作标识等,要给一个标记使转义时可以分清Java代码和其他代码

特点:局部代码块中声明的Java代码会被原样转义到jsp对应的servlet文件的_JspService方法中,声明的变量是局部变量。

格式: <%     局部代码块  %>

缺点:书写麻烦,阅读困难

<html>
    <head>
        <title>jsp基本语法学习</title>
        <meta charset="utf-8"/>
    </head>
    <body>
        <h3>jsp基本语法学习</h3>
        <hr>
        <% //声明Java代码
             int a=2;
             if(a>3)
             {
           %>
                      <b>jsp学习简单吗?</b>
           
             <%  }else{   %>
                                 <i>jsp中写Java难受</i>
                      <%  }  %>
    </body>
</html>

 3. JSP的全局代码块:

特点:声明的Java代码作为全局代码转义到对应的servlet类中,局部代码调用全局代码

格式: <%!       全局代码      %>

  <!-- 全局代码块 -->
             <%! 
                   public void test(){
                      System.out.println("我是全局代码块声明");
                   }
            %>
            <%  System.out.println("局部代码块调研全局方法");
                 test(); 
             %>

4. JSP的脚本段语句: 

特点:帮助我们快速获取变量或方法的返回值作为数据响应给浏览器

格式:<%=  变量名或方法名    %>     (转义为:  out.print(  变量名或方法名 );  )

注意:不要使用分号

  <!-- JSP的脚本段语句 -->
             <%!  String str="String变量str"; %>
             <i> 脚本段语句获取方法返回值:<%= str %></i>

转义后: 

     out.write(" \t  \t  <!-- JSP的脚本段语句 -->\r\n");
      out.write(" \t  \t  ");
      out.write("\r\n");
      out.write(" \t  \t  <i>脚本段语句获取方法返回值:");
      out.print(str ); 

5.JSP的静态引入(include指令)

使用:     <%@include file="include.jsp" %>    //要引入的jsp文件的相对路径

特点:将当前jsp文件和引入的jsp文件转义成一个Java文件使用,在网页中显示合并后的效果。

注意:引入的jsp文件不会被单独转义成Java(servlet)文件。

           当前文件和静态引入的文件不能使用同名变量。

6.JSP的动态引入

使用:     <jsp:include page="includeActive.jsp"></jsp:include>      //要引入文件的相对路径

特点:会将引入的jsp文件单独转译,在当前文件转译后的Java中调用引入的jsp文件的转译文件,网页中显示合并后的效果。

注意:当前文件中和引入的文件中允许同名变量。

      out.write("\t <!-- jsp的动态引入 -->\r\n");
      out.write("\t ");
      org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "includeActive.jsp", out, false);
      out.write("\r\n");

7.jsp的转发标签

使用:   <jsp:forward page="forward.jsp"></jsp:forward>       //要转发文件的相对路径

特点:一次请求,地址栏信息不改变。

注意:两个标签中间除了写  <jsp:param value="aa" name="str"/> 不会报错,其他字符都会报错。

           <jsp:param value="aa" name="str"/>

             name属性为附带数据的键名,value为附带的数据内容。会以?形式拼接在转发路径的后面。
 

 //在转发的页面中取出携带的数据
  <body>
         我是转发页面,       <%=request.getParameter("str") %><br>
  </body>


7. taglib指令

发布了19 篇原创文章 · 获赞 0 · 访问量 579

猜你喜欢

转载自blog.csdn.net/qq_44617005/article/details/103459228