JSP的三大指令、四大作用域、六大标签、九大内置对象

JSP(Java Server Page)

jsp本质就是一个servlet
将 Java 与 HTML 相结合
Jsp执行过程

  1. 客户端发出Request (请求);
  2. JSP Container 将JSP 转译成Servlet 的源代码;
  3. 将产生的Servlet 的源代码经过编译后,并加载到内存执行;
  4. 进入Servlet的执行过程;

jsp基本元素:

  • 注释元素
  • 模板元素
  • 指令元素
  • 脚本元素 (九大内建对象)
  • 动作元素

jsp的注释:
Jsp文件中包含四种注释:

  • 客户端显示的注释 :<!– 注释内容 -->
  • <%-- comment --%> //JSP编译器会忽略
  • <% /** 多行注释 **/ %> //查看.java文件可以看到
  • <% //单行注释 %> //查看.java文件可以看到

三大指令

三种指令:

  • page指令:设置jsp页面属性,导入包、设定字符集、设定错误页面、设定MIME类型和字符编码。
  • include指令:包含其他页面使用,插入多个外部文件(JSP、HTML、Java程序、文本)
  • taglib指令:引用jsp标签库使用,用来指明JSP页面内使用的JSP标签库,taglib指令有两个属性,uri为类库的地址,prefix为标签的前缀
    <%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <%@include file="base.html" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <!--  导入 jstl那句话  prefix 是前缀  uri 该标签库的地址 -->

page指令:

1.language属性:设置当前页面中编写JSP脚本使用的语言,默认值为java。
<%@page language=“java”%>

2.contentType属性:设置页面响应的MIME类型,通常被设置为text/html。
<%@page contentType=“text/html”%>

还可以设置JSP字符的编码:<%@page contentType=“text/html;charset=gb2312”%>

3.import属性:类似于Java中的import语句,用来向JSP文件中导入需要用到的包。

                      在page指令中可多次使用该属性来导入多个包。例如:

                      <%@page  import="java.util.*" %>
                     <%@page import="java.text.*"%>


                     或者通过逗号间隔,来导入多个包。
                     <%@page import="java.util.*,java.text.*"%>

在JSP中已经默认导入了以下的包。

java.lang.*

java.servlet.*

java.servlet.jsp.*

java.servlet.http.*

4.extends属性:

5.session属性:该属性默认为ture,表示当前页面支持session。

6.buffer属性:(缓冲)

7.autoFlush属性:

8.isThreadSafe属性:

9.info属性:该属性可设置为任意字符串,如当前页面的作者或其他有关的页面信息。可通过Servlet.getServletInfo()方法来设置的字符串。例如:

<%@page info=“This is index.jsp!”%>
<%=this.getServletInfo()%>

访问页面后,显示如下结果: This is index.jsp!

10.errorPage属性和isErrorPage属性:

例如:若当前应用下包含index.jsp和error.jsp文件。

在index.jsp页面中进行数据类型的转换操作,其代码如下。

<%@page contentType="text/html;charset=utf-8" errorPage="error.jsp"%>
<%
String name="YXQ";
Integer.parseInt(name); //将字符串转化为int型
%>

上述代码将一个非数字格式的字符串转化为int型,因此将发生异常,最终进入errorPage属性指定的error.jsp页面显示错误信息。

在error.jsp页面中需要将isErrorPage属性设为true,然后才能调用exception对象输出错误信息。

error.jsp页面的代码如下。

<%page contentType="text/html;charset=gb2312" isErrorPage="true"%>
出现错误!错误如下:<br>
<%=exception.getMessage()%>

include指令:
<%@include file=“文件的绝对路径或相对路径”%>
使用include指令引用外部文件,可以减少代码的冗余。(如:页面公用)

<%@page contentType="text/html;charset=utf-8"%>
<table>
<tr><td colspan="2"><%include file="top.jsp"%></td></tr>
<tr>
<td><%@include file="side.jsp"%></td>
<td>内容显示</td>
</tr>
<tr><td colspan="2"><%@include file="top.jsp"%></tr>
</table>

taglib指令:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <!--  导入 jstl那句话  prefix 是前缀  uri 该标签库的地址 -->

后面使用标签用c开头,即:<c:


四大作用域:

JSP作用域

JSP页面中的对象,包括用户创建的和JSP内置对象都有一个范围属性。

  • Application——具有应用程序作用域的对象,在应用程序存活期间均可用。
  • Session——具有会话作用域的对象,在会话的存活期间可用。
  • Request——具有请求作用域的对象,在所有处理同一个请求的页面内部内都可以访问。
  • Page——具有页面作用域的对象,在当前页内可用

方法:setAttribute(String name,Object attribute)

       getAttribute(String  name)

作用域范围从大到小:

Application作用域:范围最大 ,他在所有的应用程序中都有效,也就是当服务器开始到服务器结束这段时间,application作用域中存储的数据都是有效的,同样可以通过setAttribute赋值和getAttribute取值。

                           可以被不同页面、不同用户共享

                            可以通过Allication内置对象或ServletContext

                          访问Allication作用域对象

Session作用域:范围仅次于Application作用域,他在当前会话中有效。当一个台电脑上的同一浏览器对服务器进行多次访问时,在这多次访问之间传递的信息就是session作用域的范围。它从浏览器发出第一个HTTP请求即可认为会话开始,但是会话结束的时间是不确定的,因为在浏览器关闭时并不会通知服务器,一般Tomcat设置的默认时间为120分钟,也可以通过setMaxInactiveInterval(int)方法进行设置,或是通过invalidate()方法强制结束当前会话。

                         可以被同一客户端的请求访问

                         可以通过Session内置对象访问Session作用域对象

Request作用域:范围小于Session作用域,他在当前请求中有效,request可以通过setAttribute()方法实现页面中的信息传递,也可以通过forward()方法进行页面间的跳转,需要注意的是request是转发不是重定向,转发相对于浏览器来说是透明的,也就是无论页面如何跳转,地址栏上显示的依旧是最初的地址。

                        可以被forward()方法转向页面或者include()包含页面访问

                       可以通过request内置对象访问request作用域对象

page作用域:范围最小,他只在当前页面有效,也就是用户请求的页面有效,当当前页面关闭或转到其他页面时,page对象将在响应回馈给客户端后释放。

                  只能被创建对象的页面访问

                   只能通过pageContext内置对象访问page作用域对象

六大标签:

                伪指令标签:<%@      %>

                注释标签:<%--    --%>

                声明标签:<%!       %>

               动作标签:<jsp:action  Name/>

                脚本标签:<%      %>

               表达式标签:<%=      %>

九大内置对象: applicatin、config 、exception、out、page、pageContext、request、response、session

  • request:请求对象,  类型:httpServletRequest
  • response:响应对象  类型:httpServletResponse
  • session:表示一次会话,在服务器端记录用户状信息的技术
  • application:标识web应用上下文,类型:ServletContext,详情就看Servlet中的ServletContext的使用
  • exception 表示发生异常对象,类型 Throwable,在上面我们介绍page指令中的一个errorPage属性时就有说到他
  • page:page对象代表当前JSP页面,是当前JSP编译后的Servlet类的对象。相当于this。
  • config:标识Servlet配置,类型:ServletConfig,api跟Servlet中的ServletConfig对象是一样的,能获取该servlet的一些配置信息,能够获取ServletContext
  • out:输出响应体 类型:JspWriter
  • pageContext:表示 jsp页面上下文(jsp管理者) 类型:PageContext

注意:标记了颜色的对象就是JSP独有的,其他的都是Servlet中的老东西。


推荐链接:https://www.cnblogs.com/zhangyinhua/p/7637399.html#_label2
JavaBean:https://blog.csdn.net/chenchunlin526/article/details/69939337

发布了81 篇原创文章 · 获赞 25 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_43090158/article/details/98968600
今日推荐