JSP的一些零碎的东西

207 阅读3分钟

JSP的基础语法

  1. <% %> 中间可以写Java代码
  2. <%-- --%> 中间可以写注释 JSP注释:不能在客户端显示
    <!-- --> 中间可以写注释 HTML注释:可以在看客户端显示 jsp注释的快捷键:ctrl+/
  3. <%= %> "=" 代表 out.println()

指令

  1. page指令:页面指令,用来定义JSP页面的全局属性,该配置会作用于整个JSP页面。page指令用来指定所使用的脚本语言、导入指定的类及软件包等。
  • 这是没加page指令的JSP
<%=new java.util.Date()%>
  • 这是加了page指令的JSP
<%@ page import="java.util.*"%> 
<%=new Date()%>
  1. include指令:文件加载指令,用于在JSP文件中插入一个包含文本或代码的文件。它把文件插入后与原来的JSP文件合并成一个新的JSP页面。还需要注意的是,如果被插入的文件发生了变化,则包含这个文件的JSP文件需要被重新编译。 这个被经常用来作为一个网页的顶部固定栏或者底部固定栏,不是很常用。
  2. taglib指令:用来引用标签库并设置标签库的前缀。这个指令允许JSP页面使用用户自定义的标签,它也可以为标签库命名,标签在这个库中定义。
形式:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:out value="这是一个taglib标签!"/>
<%-- prefix用来指定该标签库所使用的前缀。--%>
<%--  uri用来指定标签文件或标签库的存放位置。 --%>

JSP的声明

  1. <%! %> 中间可以声明全局变量、静态代码块和方法
<%! 
    static{
        static {
        System.out.println("这是一个静态代码块");
      }
      private int i = 10;// 全局变量
      public void study(){
        System.out.println("这是一个方法");
      }
    }
%>
  1. 注意: 实际上,JSP页面最终会编译成Servlet类,而在容器中只会存在一个Servlet类的实例。在JSP中声明的变量时成员变量,它只在创建Servlet实例时被初始化一次,此后该变量一直保存,直到Servlet实例被销毁掉
  2. 举个小例子
<!--JSP声明语句  -->
<%!
    public int a;//声明整型变量a

    public void printStr() { //声明方法printStr
        System.out.println("This is a method");
    }
%>
<%
    out.println("a=" + a); //输出a值
    a++;//a自增
    out.println("a=" + a);
%>
<br>
<%
    printStr();//调用printStr()方法
%>

image.png

JSP的动作元素

  1. < jsp:include > 提供了一种在JSP页面中包含页面的方式,既可以包含静态文件,也可以包含动态文件
<%-- index.jsp --%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>

  <%="hello"%>

  </body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>jsp:include</title>
</head>
<body>
<h1>标题</h1>
<jsp:include page="index.jsp"></jsp:include>>

</body>
</html>

image.png 2. < jsp:forward > 用于页面重定向的动作元素,它的作用是停止当前页面的执行,而将客户端请求转交给另一个JSP页面。此操作是在服务器端进行的,不会引起客户端二次请求,因此浏览器的地址不会发生改变。

<%-- index.jsp --%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>

  <%="hello"%>

  </body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>jsp:include</title>
</head>
<body>
<h1>标题</h1>
<jsp:forword page="index.jsp"></jsp:include>>
</body>
</html>

image.png 3. < jsp:param > 一种提供参数的附属动作元素,它以“名-值”对的形式为其它动作元素提供附加信息,一般与< jsp:include >、< jsp:forward >和< jsp:plugin >联合使用。

  1. < jsp:plugin > 动作元素可以将服务器端的JavaBean和Applet下载到客户端执行。
  2. < jsp:useBean > 动作元素用来装载一个将在JSP页面中使用的JavaBean。这个功能非常有用,它充分发挥了Java组件重用的优势,同时也提高了JSP使用的方便性。
  3. < jsp:setProperty > 获取Bean实例之后,就可以用这个动作元素来设置和修改Bean中的属性值。
  4. < jsp:getProperty > 动作元素用来提取Bean中的属性值,并将其转换成字符串,然后输出。

九大内置对象

  1. PageContext 存东西 (保存的数据只在一个页面中有效)
  2. Request 存东西 (保存的数据只在一次请求中有效,请求转发会携带这个数据)
  3. Response
  4. Session 存东西 (保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器)
  5. Application 【ServletContext】 存东西 (保存的数据只在服务器中有效,从打开服务器到关闭服务器)
  6. config 【ServletConfig
  7. out
  8. page ,不用了解
  9. exception

request:客户端向服务器发送请求,产生的数据,用户看完就没用了,比如:新闻

session:客户端向服务器发送请求,产生的数据,用户用完一会还有用,比如:购物车;

application:客户端向服务器发送请求,产生的数据,一个用户用完了,其他用户还可能使用,比如:聊天数据;

其中,pageContext、Request、Session、Application都能存东西,但是它们的作用域不同,从低到高排序:ageContext-->Request-->Session-->Application