JavaWeb进阶
一.内置对象
1.定义
a1.JSP内置对象也可以称之为隐含对象。
a2.在使用JSP内置对象时,不需要先定义这些对象,直接在JSP页面的脚本(Java程序片和Java表达式)中使用的对象。
1.1JSP中的内置对象
9大的对象分别为: request、response、session、application、out、pageContext、config、page和exception。
注意:
b1.内置对象不能在JSP的<%!..%>中使用,因为out等内置对象是方法的局部变量,因此不能在类中直接使用out等内置对象
b2.Java程序中,不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量
1.2学习目的
核心:存值方便,取值方便,简化开发过程。
1.3JSP内置对象与servlet对象的对应关系
c.JSP的多有内置对象都是通过Servelt的HttpServeltRequest对象、HttpServeltResponse对象和HttpServelt得到的
注意:Servelt与JSP的区别:JSP是HTML内镶嵌着Java代码,强调的是页面;Servelt是Java代码爷HTML分开的,强调的是整个逻辑。
类别:
对 象 | 类型 | 说 明 |
request | javax.servlet.http.HttpServletRequest | 获取用户请求信息 |
response | javax.servlet.http.HttpServletResponse | 响应客户端请求,并将处理信息返回到客户端 |
out | javax.servlet.jsp.JspWriter | 输出内容到 HTML 中 |
session | javax.servlet.http.HttpSession | 用来保存用户信息 |
application | javax.servlet.ServletContext | 所有用户共享信息 |
config | javax.servlet.ServletConfig | 这是一个 Servlet 配置对象,用于 Servlet 和页面的初始化参数 |
pageContext | javax.servlet.jsp.PageContext | JSP 的页面容器,用于访问 page、request、application 和 session 的属性 |
page | javax.servlet.jsp.HttpJspPage | 类似于 Java 类的 this 关键字,表示当前 JSP 页面 |
exception | java.lang.Throwable | 该对象用于处理 JSP 文件执行时发生的错误和异常;只有在 JSP 页面的 page 指令中指定 isErrorPage 的取值 true 时,才可以在本页面使用 exception 对象。 |
二、JSP域对象
a1.定义:
所谓域对象就是“信息共享的范围”,也就是说一个信息能够在多大的范围内有效。
a2.范围:
SP|Servlet内置对象的作用域分别为
pageContext(page 域对象)
request(request 域对象)
session(session 域对象)
b.域对象通用方法
getAttribute(String name) 获取对应的数据 getAttributeNames()获取所有的key removeAttribute(String name) 移除对应的数据 SetAttribute(String name, Object object) 设置数据
C.域对象作用范围
作用域 | 描述 | 作用范围 |
page | 如果把属性保存到 pageContext 中,则它的作用域是 page。 | 该作用域中的属性只在当前 JSP 页面有效,跳转页面后失效。 |
request | 如果把属性保存到 request 中,则它的作用域是 request。 | 该作用域中的属性只在当前请求范围内有效。服务器跳转页面后有效,例如jsp:forward;客户端跳转页面后无效,例如超链接。 |
session | 如果把属性保存到 session 中,则它的作用域是 session。 | 该作用域中的属性只在当前会话范围内有效,网页关闭后失效。 |
application | 如果把属性保存到 application 中,则它的作用域是 application。 | 该作用域中的属性在整个应用范围内有效,服务器重启后失效。 |
三、EL表达式
核心:JSP负责显示 Servlet负责处理请求以及其它
之前的JSP页面中,我们经常使用JSP表达式来输出变量或者页面之间传递的参数,大大降低了页面的可读性。
为了简化 JSP 页面,JSP2.0新增了EL(Expression Language)表达式语言。
EL 提供了更为简洁、方便的形式来访问变量和参数,不仅可以简化 JSP 页面代码,还会使开发者的逻辑变得更加清晰 。
定义:(全称Expression Language )表达式语言,用于简化 JSP 页面内的 Java 代码。
作用:EL 表达式的主要作用是 获取数据。其实就是从域对象中获取数据,然后将数据展示在页面上。
而 EL 表达式的语法也比较简单,==e x p r e s s i o n = = 。例如: {expression}== 。例如:expression==。例如:{brands} 就是获取域中存储的 key 为 brands 的数据。
<%=pageContext.getAttribute(“AA”) %>
EL表达式${AA}
为什么EL表达式
目的:主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。因为 EL 表达式在输出
<% request.setAttribute("userName", "root"); %> JSP表达式输出userName:<%= request.getAttribute("userName") %><br /> JSP表达式输出password:<%= request.getAttribute("password") %><br /> EL表达式输出userName:${userName }<br /> EL表达式输出password:${password }<br /> </body> </html>
EL中的隐含对象(作用域)
1. param Request对象的参数,字符串 2. paramValues Request对象的参数,字符串集合 3. header HTTP信息头,字符串 4. headerValues HTTP信息头,字符串集合 5. initParam 上下文初始化参数 6. cookie Cookie值====重点 7. pageContext 当前页面的pageContext
EL运算符
类别运算符
算术运算符+、-、*、/ 或 div、%或 mod
关系运算符= = 或 eq、!= 或 ne 、< 或 It、>或 gt、<=或le、>= 或 ge
逻辑运算符&&或and、
其他运算符Empty运算符、条件运算符、()运算符
下面展示一些 内联代码片
。
//算术、关系、逻辑运算符同java一致 eg:${2>1&&5!=6} //empty/not empty运算符 判断是否为空/不为空 eg:${empty ls}
JSTL标签
定义:JSTL( JSP Standard Tag Library)是JSP标准标签库,由apache实现,因为在jsp中出现大量Java代码不利于维护,sun公司就制定了一个类似于html标签一下的jsp标签技术。
惯称c标签。
为什么要使用:使用了EL表达式可以简化JSP页面代码,但是如果需要进行逻辑判断、循环遍历怎么办?
STL核心标签库组成
下面展示一些 内联代码片
。
**核心标签:Java在JSP上基本功能进行封装 if foreach sql标签:JDBC在JSP上使用功能 xml标签:DOM4J在JSP使用功能 Format标签:JSP文件格式转换**