JSP复习(一)

JSP 语法

JSP(Java Server Pages)页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。 本质:java + html == jsp == servlet

jsp注释

<%-- 这是 jsp 注释 --%>

关于jsp注释、java注释、html注释的区别:

jsp注释:仅jsp文件中可见

java注释:jsp、java文件中可见

html注释:jsp、java、html文件中都可见

jsp指令

page指令:

语法:<%@page 属性1="值1" ... 属性n="值n" %>

<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>

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

<%@page import="com.lsy.*" %>

属性说明: 1) import:指定引用的外部类文件,是page指令中,唯一可多次设置的属性; 2) pageEncoding: 设置jsp页面本身的编码 3) contentType: 告诉浏览器以何种编码显示jsp页面中的内容; 4) language: 指定jsp页面采用的脚本语言,由于jsp目前只支持java,所以默认值即是java,故可省; 5) session: 设置当前页面是否参与session会话,默认为true,值为false时session将被禁用; 6) errorPage: 指定错误处理页面。当页面出现异常错误时,指定的errorPage将会捕获错误信息; 7) isErrorPage: 设置页面是否为错误处理页面,默认值为false.值为true时,页面将可存取exception对象,并通过该对象取得从发生错误的网页传出的信息。

include指令:引入其他jsp页面

<%@include file="other.jsp" %> taglib指令: 引入标签库

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

jsp 小脚本

<%

//此处写 java 代码

%>

jsp表达式

<%= "JSP is short for Java Server Pages" %>

<%= 1+2 %>

<%= "hello".length() %>

jsp声明

声明servlet类的成员属性和方法

<%!

int global = 10;

%>

EL 表达式

从 JSP 2.0开始,EL(Expression Language)表达式是作为标准支持的,JSP 中可以直接使用,无需引入额外的jar包。

目的

简化 JSP 输出表达式(<%= %>)

基本语法

${ EL 表达式 }

EL 表达式支持的操作符

点操作符:通过点操作符访问对象的属性;eg: ${user.name}、${user.my.name}

[]操作符:

同点操作符,也可访问对象的属性,eg:${user["name"]};

当存取的属性中含有特殊字符时,必须用[];eg: ${user["my-id"]},中括号中单引号也可以。

动态取值时,必须用[];eg:${user[index]},index是变量,所以无引号。

算术型:+ - * /、div %、mod -(取反)

EL运算符中的“+”的操作数可以是数字或者可以转换为数字的字符串: ${1+'1'}输出 2。

关系型:> gt、 >= ge、 < lt 、<= le、 == eq、 != ne

逻辑型:&& and、|| or、! not

条件表达式:A ? B : C

判空(null)操作符:empty

EL 11大隐式(内置)对象

范围对象:pageScope、requestScope、sessionScope、applicationScope

在不指定范围的情况下,EL会依此从pageContext -> request -> session -> application 中查找;如 EL在解析${user} 时,首先会从pageContext中查找 user,没有则继续在request中查找user......

请求参数

param(单个参数)

paramValues(数组,多个同名参数)

请求头:header、headerValues

初始化参数:initParam

cookie

${cookie.mycookie.name} 获得mycookie的名称

${cookie.mycookie.value} 获得mycookie的值

JSP隐式对象:pageContext(JSP和EL的公共对象,为EL访问JSP对象提供了桥梁)

${pageContext.page}获取page 对象${pageContext.request}获取request 对象${pageContext.response}获取response 对象${pageContext.session}获取session 对象${pageContext.out}获取out 对象${pageContext.exception}获取exception 对象${pageContext.servletContext}获取servletContext 对象

注意事项

EL表达式操作的对象不存在时,返回空值而不是null。

比如request 对象有 getContextPath()方法,程序中可以通过${request.contextPath} 调用此方法获取到路径值,具体到request有没有contextPath这个属性,并不重要,因为EL是将contextPath首字母大写后,在首部加上get构造出getContextPath()方法来获取值的。所以当用EL操作对象属性时,属性一定要提供相关的getter方法。

JSTL

JSTL(Jsp Standard Tag Library),即 JSP的标准标签库,作用是简化 JSP 编程。使用前,需引入下面的依赖。

tomcat 9

org.apache.taglibs

taglibs-standard-impl

1.2.5

org.apache.taglibs

taglibs-standard-spec

1.2.5

核心标签库

set、out、remove

注意:JSTL标签中的属性值,只能是字符串或EL表达式;标签中定义的变量,只能通过EL表达式引用。

if

hello,${name}

choose...when...otherwise

成绩优秀

成绩良好

不及格

forEach、forTokens

${hy }

${item }

redirect 重定向到新的路径

import 引入页面, param: 给页面传参

全卤面都有哪26种卤子(全卤面条做法大全)
天猫苏宁商品保价期限是多久?怎么理解价保30天?