JSP文件代替响应对象 将处理结果写入响应体开发流程
响应对象的缺点:
适合数据量少写入响应体
如果多 增加开发难度
制定了服务器如何调用JSP文件
执行时会自动写入响应体中 省略out.print();
只能在 web下 能写html css java
在里面直接写java 只会被当成字符串写入响应体中
//在JSP写java代码 只有在<% java代码才可以 %> 在服务器运行
//输出到响应体 <%=变量%>
//导包ALT+回车 自动导包
?
//把每段代码当做一个整体
<%
if(i == 1){
%>
<p>急急急</p>
<%
}else {
%>
<p>不不不</p>
<%
}
%>
//请求对象 HttpServletRequest request
//读取请求头的信息与Servlet请求转发过程实现数据共享
?
//会话作用域对象 HttpSession sessioh
//私人储物柜 读取 添加共享数据
?
//全局作用域对象 ServletContext application
//同一个网站下 Servlet与JSP共享数据 全局储物柜 读取 添加共享数据
Servlet:负责业务处理并得到处理结果
JSP: 不负责业务处理 主要将Servlet处理结果写入响应体
Servlet工作完毕 一般使用请求转发 向服务器请求调用JSP
Servlet将处理结果 添加到请求作用域对象
JSP在运行的时候从请求作用域对象获取处理结果
服务器将JSP文件编译为一个Servlet接口实现类
服务器将这个实现类编译成有一个class文件
服务器负责创建这个class实例对象
实例对象调用方法将JSP文件内容写入响应体内
C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2020.2\tomcat\未命名_untitled2
从指定的作用域对象获取处理结果
得到的是Object要进行强转
将转化的数据写入响应体
-java技术开发的一个jar包
降低JSP对java命令的开发难度
在Tomcat安装lib下el-api.jar
${作用域对象别名.共享数据别名}
EL表达式是EL.jar包提供的一种特殊命令格式【表达式命令格式】
专门在JSP文件使用
负责在JSP文件上从作用域对象读取指定的共享数据并输出到响应体
ServletContext application;全局作用域对象
HttpSession session;会话作用域对象
HttpServletRequest request;请求作用域对象
PageContext pageContext;当前页作用域对象
JSP文件独有作用域对象
存放的共享数据只能在当前JSP使用
主要是JSTL与JSP文件之间的数据共享
JSTL--->pageContext-->JSP
前三个后+Scope
最后pageScope
命令格式:${作用域对象别名.共享数据名.属性名}
属性名:一定要和类型属性名完全一致
无法从作用域对象读取集合 没有提供遍历集合方法
命令格式:${共享数据名}
作用:省略作用域对象别名
工作原理:用猜 先从page-->request-->session-->application
缺点:容易降低程序执行难度 数据定位错误
目的是:简化page读取数据的难度
为了节省时间 很多程序员都使用简化版
前提:在读取数据后进行一番运算 将运算结果写入响应体
运算表达式:
数学表达式
关系表达式 > >= == < <= !=
gt ge eq lt le !=
逻辑表达式 && || !
1.获得请求参数 简化 :${param.参数名}
原文:https://www.cnblogs.com/zumeng/p/15313793.html