JSP规范_一文概括基础知识点

1:JSP规范介绍

1):来自于JavaEE规范中的一种。

2):JSP规范制定了如何开发JSP文件代替响应对象将处理结果写入到响应体的开发流程。

3):JSP规范制定了Http服务器应该如何调用管理JSP文件。

2:响应对象存在的弊端

1):适合将数据量较少的处理结果写入到响应体

2):如果处理结果数量过多,使用响应对象增加开发难度

3:JSP文件的优势

1):JSP文件在互联网通信过程中,是响应对象替代品

2):降低将处理结果写入到响应体的开发工作量,降低处理结果维护难度

3):在JSP文件开发时,可以直接将结果写入到JSP文件不需要手写out.print命令,在Http服务器调用JSP文件时,根据JSP规范要求自动将JSP文件书写的所有内容通过输出流写入到响应体。

4:JSP文件运行原理【Http服务器调用JSP文件步骤】:

1:运行原理:
1:Http服务器将JSP文件内容【编辑】为一个Servlet接口实现类(.java)。

2:Http服务器将Servlet接口实现类【编译】为class文件(.class)。

3:Http服务器负责创建这个class的实例对象,这个实例对象就是Servlet实例对象。

4:Http服务器通过Servlet实例对象调用_jspService方法,将JSP文件内容写入到响应体。

2:Http服务器【编辑】与 【编译】JSP文件位置

标准答案:在【work】文件夹下可以找到

5:JSP-EL工具包介绍:

1):由Java技术开发的一个jar包

2):作用降低JSP文件开发时Java命令开发强度

3):Tomcat服务器本身自带了EL工具包(Tomcat安装地址/lib/el-api.jar)

6:EL表达式

1):命令格式:${作用域对象别名.共享数据}

2):命令作用:
1):EL表达式是EL工具包提供的一种命令格式【表达式命令格式】
2):EL表达式在JSP文件上使用
3):负责在JSP文件上从作用域对象中读取指定的共享数据并输出到响应体

7:EL表达式_作用域对象别名

1:JSP文件可以使用的作用域对象
1):ServletContext application:全局作用域对象

2):HttpSession Session:会话作用域对象

3):HttpServletRequest request:请求作用域对象

4):PageContext pageContext:当前页作用域对象,只能出现JSP文件中。JSP文件中独有的作用域对象。Servlet中不存在。
在当前页作用域对象存放的共享数据仅能在当前JSP文件中使用,不能共享给其他Servlet或者其他的JSP文件。
真实开发过程中,主要用于JSTL标签与JSP文件之间数据共享。
JSTL----->pageContext----->JSP

2:EL表达式提供作用域对象别名
JSP EL表达式

application ${applicationScope.共享数据名}

session ${sessionScope.共享数据名}

request ${requestScope.共享数据名}

pageContext ${pageScope.共享数据名}

8:EL表达式将引用对象属性写入到响应体

1:命令格式:${作用域对象别名.共享数据名.属性名}

2:命令作用:从作用域对象读取指定共享数据关联的引用对象的属性值。并自动将属性的结果写入到响应体。

3:属性名:一定要与引用类型的属性名完全一致。

4:EL表达式没有提供遍历集合方法,因此无法从作用域对象读取集合中的内容。

9:EL表达式简化版

1: 命令格式:${共享数据名称}

**2:命令作用:**EL表达式允许开发人员开发时省略作用域对象别名。

3:工作原理:
EL表达式简化版由于没有指定作用域对象,所以在执行时采用【猜】算法

4:会导致数据定位错误
容易降低程序执行速度

5:应用场景:
设计目的:就是简化从pageContext(当前页作用域对象)中读取共享数据并降低输出难度。

6:EL表达式尽管存在这很多隐患,但是实际开发过程中,开发人员为了节省时间,一般使用简化版。

10:EL表达式—>支持运算表达式

1:前提:在JSP文件中有时需要将读取共享数据进行运算之后,将运算结果写入到响应体

2:运算表达式
1):数学运算

2):关系运算:> >= == < <= !=
gt ge eq lt le !=

3):逻辑运算:&& || !

11:EL表达式提供内置对象

1:命令格式:${param.请求参数名}

**2:命令作用:**通过请求对象读取当前请求包中请求参数内容,并将请求参数内容写入到响应体。

3:替代命令:
<%
String userName = request.getParameter(“userName”);
%>
<%=userName%>

1:命令格式:${paramValues.请求参数名[下标]}

2:命令作用:如果浏览器发送的请求参数是一个请求参数关联多个值,此时可以通过paramValues读取请求参数下指定位置的值,并写入响应体。

3:代替命令:
http://localhost:8080/myWeb/index_1.jsp?userName=mike&userName=jake&userName=lili
此时userName请求参数在请求包以数组形式存在

<%
String array[] = request.getParameterValues(“userName”);
%>
第一个值:<%=array[0]%>
第二个值:<%=array[1]%>

12:EL表达式常见异常:

javax.el.PropertyNotFoundException:在对象中没有找到指定的属性

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳落青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值