daily 2017 6 4 jsp el - wtdig/study GitHub Wiki

一、jsp

详情链接:http://note.youdao.com/noteshare?id=95fef99c1008c36c19a41a9e28942eeb

1、错误页面,当程序出错时,可以跳转到错误页面,在jsp中引入errorPage标签,例如:errorPage="errorPageo1.jsp"

一般在项目开发中,会将所有的错误页面统一分配:在web-inf/web.xml中进行错误页面配置

<error-page>

错误码

<error-code>500</error-code>

跳转的错误页面路径

<location>/jsp/errorpage01.jsp</location>

</error-page>


2、taglib

通过JSP的taglib指令把封装的Java代码的标签先进入到JSP页面:

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

在taglib指令中的属性:

uri:是当前标签对应的Java代码封装之后的名称空间,唯一

prefix:它是当前在页面上可以使用的标签的前缀


3、jsp的9大内置对象

JSP的内置对象9个:

这9个内置对象,可以在JSP翻译之后的对应的Java源代码的service方法中找到:

HttpServletRequest request 请求---容器对象

HttpServletResponse response 响应

HttpSession session session 容器对象(会话内使用)

ServletContext application 表示当前项目对象(全局的)---容器对象

ServletConfig config 专门获取当前这个Servlet(jsp)的配置信息

Object page = this 它表示的是当前那个JSP页面对象(翻译之后就是一个Servlet程序,这个page本身就是一个Servlet,但是由于在翻译之后赋值给了Object类型,导致不能使用使用Servlet中的功能)。后期把它当作(jsp)第四个容器使用。------不建议使用

PageContext pageContext 它表示的是当前jsp页面的上下文。它的主要功能之一就是可以获取到JSP页面上的其他八个内置对象。

Throwable exception 主要是表示当前JSP页面上的异常信息的----必须该页面标记了是错误页面。

JspWriter out 它相应于我们在Servlet中使用的response.getWrite

域对象的范围

page:代表当前(当前的jsp,或者servlet)数据范围,保存数据到当前页面。数据只能在当前页面使用。

其他的页面或者是servlet是不能够取出page中的数据的。

page > request > session > ServletContext(application)

page:最小只是自己可以使用

request:一次请求可以使用

session:一次回话可以使用

application:整个项目运行过程中可以使用

常用request。

二、el

EL 全名为Expression Language。表达式语言。

EL主要作用:

获取数据:最常用的是从4个域对象获取数据(page,request,session,application(servletContext))。

EL表达式主要用于替换JSP页面中的脚本表达式<%= %>,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象, 访问javabean的属性、访问list集合、访问map集合、访问数组)

主要替换<%= %>

执行运算:

利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null}

获取web开发常用对象

EL 表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。

调用Java方法

EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。

获取数据----重各个域对象中

EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。

替代掉<%= %>

(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)

如果数据是null,把null输出给用户,用户不会理解null是什么意思。所以使用el表达式输出的空字符。

域对象是可以省略的。省略的时候,会自动从page,request,session,application去查询数据。

el的中括号和点的区别:

如果属性或者key出现了特殊字符。使用对象.属性名的时候,就会找不到数据。可以使用[]进行替代 把属性或者key放到中括号中加上双引号 引起来,可以取出数据。

⚠️ **GitHub.com Fallback** ⚠️