JavaWeb进阶

简介: JavaWeb进阶

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文件格式转换**


相关文章
|
5月前
|
存储 前端开发 JavaScript
基于JavaWeb实现停车场管理系统
基于JavaWeb实现停车场管理系统
|
5月前
|
前端开发 JavaScript Java
图书借阅管理平台|基于JavaWeb实现图书借阅系统
图书借阅管理平台|基于JavaWeb实现图书借阅系统
117 1
|
2月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
429 37
|
1月前
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
33 2
|
1月前
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
54 5
|
2月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
5月前
|
前端开发 Java 关系型数据库
JavaWeb开发简介
JavaWeb开发简介
56 0
|
2月前
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
111 2
|
2月前
|
SQL JSON JavaScript
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
Vue 指令、生命周期、this和$、vue脚手架进行模块化开发/ElementUI框架、综合案例,element商品列表展示增删改查
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
|
5月前
|
SQL Java 数据库连接
JavaWeb Mapper代理开发
JavaWeb Mapper代理开发
下一篇
无影云桌面