JSP基础语法

# web/index.jsp
# 页面显示当前时间

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>

  
    
  
  
    <%
        //获取日期对象
        Date date = new Date();
        //设置日期时间格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //获取当前系统日期
        String today = sdf.format(date);
    %>
    

<%=today%>

指令标识

指令标识用于设定JSP页面范围内有效的相关信息,可被服务器解释并执行,不会产生任何内容输出到网页。指令标识对客户端浏览器是不可见的。

<%@ 指令名称 属性="值"... %>
  • 指令名:page、include、taglib
  • 属性:多属性可用逗号或空格分隔
  • 值:属性值

page指令

page指令用于定义整个JSP页面的相关属性,其属性在JSP被服务器解析成Servlet时会转换为响应的java代码。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>

page指令属性

  • language 设置JSP页面使用的语言
<%@ page language="java" %>
  • extends 设置JSP页面继承的java类,影响服务器性能优化。
  • import 设置JSP导入的类库
<%@ page import="java.util.*" %>
  • pageEncoding 定义JSP页面编码格式,即指定文件编码。
<%@ page pageEncoding="GB18030" %>
  • contentType 设置JSP页面的MIME类型和字符编码,浏览器据此显示页面内容。
<%@ page contentType="text/html;charset=UTF-8" %>

JSP页面默认编码格式为ISO-8859-1,不支持中文,中文支持需设置为UTF-8GBK

  • session 设置JSP页面是否使用内置的HTTP中Session会话对象,默认true。
<%@ page session="false" %>
  • buffer 设置JSP内置out输出对象所使用的缓冲区大小,默认8KB(单位仅能使用KB),建议设置8的倍数。
<%@ page buffer="128kb" %>
  • autoFlush 设置JSP页面缓存溢出时,是否自动刷新缓存,默认true不刷新,设置false式缓存被填满将抛出异常。
<%@ page autoFlush="false" %>
  • isErrorPage
    设置将当前JSP页面设置成错误处理页面来处理另一个JSP页面的错误,即异常处理。
<%@ page isErrorPage="true" %>
  • errorPage
    设置处理当前JSP页面异常错误的另一个JSP页面,指定的JSP错误处理页面必须设置isErrorPage="true"。
<%@ page errorPage="http://127.0.0.1/error.jsp" %>

若设置errorPage那么web.xml中定义的任何错误页面都将被忽略,而优先使用该属性定义的错误处理页面。

include 指令

include文件包含指令可在一个JSP页面中包含另一个JSP页面,include是静态包含即被包含文件中所有内容都会被原样包含到该JSP页面中,及时被包含文件中有JSP代码,在包含时也不会被编译执行。

使用include指令最终生成一个文件,在包含于被包含文件中,不能使用相同名称的变量。

<%@ include file="path" %>

taglib指令

taglib指令标识声明该页面中所使用的标签库,同时引用标签库,并制定标签的前缀。

JSP页面引用标签库后,即可通过前缀来引用标签库中的标签。

<%@ taglib prefix="tagPrefix" uri="tagURI" %>

JSP页面中引用JSTL中核心标签库

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

脚本标识

JSP页面中脚本标识使用最为频繁,它能方便、灵活地生成页面动态内容,特别是Scriptlet脚本程序。

JSP脚本标识包含JSP表达式(Expression)、声明标识符(Declaration)、脚本程序(Scriptlet)。

表达式

用于向页面中输出信息

<%= 表达式 %>

声明标识

用于在JSP页面中定义全局变量或方法,通过声明标识定义的变量和方法可被整个JSP页面访问。

服务器执行JSP页面时,会将JSP页面转换为Servlet类,该类中会把使用JSP声明标识定义的变量和方法转换为类的成员变量和方法。

<%! 声明变量或方法的代码 %>

<%!
int number = 0;//声明全局变量
int count(){//声明全局方法
  number++;
  return number;
}
%>

代码片段

所谓代码片段就是在JSP页面中嵌入的Java代码或脚本代码。代码片段将在页面请求的处理期间被执行,通过java代码可定义变量或是流程控制语句;而通过脚本代码可应用JSP的内置对象在页面输出内容、处理请求和响应、访问Session会话等。

<% java代码或脚本代码 %>

九九乘法表

<%
String str = "";
for(int i=1; i<=9; i++){
  for(int j=1; j<=i; j++){
    str += j + "x" + i + "=" + j*i + " ";
  }
}
%>

由于HTML注释对JSP嵌入的代码不起作用,可利用它们组合构成动态的HTML注释文本。


动作标识

包含文件标识


用于向当前页面中包含其他文件,被包含文件可是动态也可是静态。




  

include指令和动作标识之间的异同点

include指令通过file属性指定被包含的文件,file属性不支持任何表达式。

动作标识通过page属性指定被包含的文件,page属性支持JSP表达式。

include 指令将包含的文件内容原封不动的插入包含页中,然后JSP编译器在将合成后的文件最终编译成一个java文件。

动作标识包含文件时,当该表示被执行时,程序会将请求转发(注意是转发而非请求重定向)到被包含的页面,并将执行结果输出到浏览器,然后返回包含页继续执行后续代码。因为服务器执行的是多个文件,所以JSP编译器会分别对浙西而文件进行编译。

include指令包含文件时,由于被包含的文件最终会生成一个文件,所以在被包含文件、包含文件中不能有重名的变量或方法。

动作标识包含文件时,由于每个文件是单独编译的,所以在被包含文件和包含文件中重名的变量和方法是不相冲突的。

请求转发标识


请求转发动作标识可将请求转发到其他Web资源,如JSP页面、HTML页面、Servlet等。

执行请求转发后,当前页面将不再被执行,而是去执行该标识指定的目标页面。




  

传递参数标识


传递参数标识可作为其他标识的子标识,用于为其他标识传递参数。


实现在请求转发到update.jsp页面的同时传递参数userId


  

你可能感兴趣的:(JSP基础语法)