昆明房产网站建设,微信如何引流推广精准加人,建网站一般用什么工具,创意灵感目录
JSP规范
JSP内置对象
Servlet和JSP文件分工
JSP文件运行原理
EL表达式 JSP规范
JSP规范#xff1a; 1、来自于JAVAEE规范中的一种 2、JSP规范制定了如果开发JSP文件代替响应对象将处理结果写入到响应体的开发流程 3、JSP规范制定了Http服务器应该如何调用管理JSP文…目录
JSP规范
JSP内置对象
Servlet和JSP文件分工
JSP文件运行原理
EL表达式 JSP规范
JSP规范 1、来自于JAVAEE规范中的一种 2、JSP规范制定了如果开发JSP文件代替响应对象将处理结果写入到响应体的开发流程 3、JSP规范制定了Http服务器应该如何调用管理JSP文件 响应对象存在弊端 1、适合将数据量较少的处理结果写入到响应体 2、如何处理数据过多使用响应对象增加开发难度 JSP的好处 JSP文件在执行时自动将文件锁头内容写入到响应体从而节省书写out.print JSP文件java命令书写规则 % int num 100; %
//在JSP文件通过输出标记通知JSP将Java变量的值写入到响应体
%变量名或者表达式%
%Integer num 15;
%%if(num 18){
%font stylecolor: red; font-size: 40px欢迎光临/font
%} else {
%font stylecolro: red; font-size: 40px谢绝入内/font
%}
%centertable border2pxtrtd编号/tdtd姓名/td/tr%for(Student stu : list){%trtd%stu.getId()%/tdtd%stu.getName()%/td/tr%}%/table
/center
JSP内置对象
JSP文件内置对象request 类型HttpServletRequest 作用在JSP文件运行时读取请求包信息 与Servlet在请求转发过程中实现数据共享 JSP文件内置对象session 类型HttpSession 作用JSP文件在运行时可以session指向当前用户私人储物柜 添加共享数据或者读取共享数据 JSP文件内置对象applilcation 类型ServletContext 作用全局作用域对象都可以通过当前网站的全局作用域对象实现数据共享Servlet和JSP的数据共享
Servlet和JSP文件分工
1、Servlet与JSP分工 Servlet负责处理业务并得到处理结果 JSP不负责业务处理主要任务将Servlet中处理结果写入响应体
2、Servlet与JSP之间调用关系 Servlet工作完毕后一般通过请求转发方式向Tomcat申请调用JSP
3、Servlet与JSP之间如何实现数据共享 Servlet将处理结果添加到请求作用域对象 JSP文件在运行时从请求作用域对象得到处理结果
JSP文件运行原理
Http服务器调用JSP文件步骤 1、Http服务器将JSP文件内容编辑为一个Servlet接口实现类 .java 2、Http服务器将Servlet接口实现类编译为class文件 .class 3、Http服务器负责创建这个class的实例对象这个实例对象就是Servlet实例对象 4、Http服务器通过Servlet实例对象调用_jspService方法将jsp文件内容写入到响应体
EL表达式
EL工具包介绍 1、由Java技术开发一个jar包 2、作用降低JSP文件开发时Java命令开发强度 3、Tomcat服务器本身自带了EL工具包 EL表达式 1、命令格式${作用域对象别名.共享数据} 2、命令作用 1、EL表达式是EL工具包提供一种特殊命令格式 表达式命令格式 2、EL表达式在JSP文件上使用 3、负责在JSP文件上从作用域对象读取指定的共享数据并输出到响应体 EL表达式-作用域对象别名 1、JSP文件可以使用的作用域对象 ServletContext application:全局作用域对象 HttpSession session:会话作用域对象 HttpServletRequest request:请求作用域对象 PageContext pageContext:当前页作用域对象 这是JSP文件独有的作用域对象Servlet中不存在 在当前页作用域对象存放的共享数据仅能在当前JSP文件中使用 不能共享给其他Servlet或者其他JSP文件 2、EL表达式提供作用域对象别名 JSP EL表达式 application $(applicationScope.共享数据名) session $(sessionScope.共享数据名) request $(requestScope.共享数据名) pageContext $(pageScope.共享数据名)
EL表达式将引用对象属性写入到响应体 1、命令格式${作用域对象别名.共享数据名.属性名} 2、命令作用从作用域对象读取指定共享数据关联的引用对象的属性值并自动将属性的结果写入到响应体。 3、属性名引用类型属性名完全一致 4、EL表达式没有提供遍历集合方法因此无法从作用域对象读取集合内容输出 EL表达式简化版 1、命令格式$(共享数据名) 2、命令作用EL表达式允许开发人员开发时省略作用域对象别名 3、工作原理EL表达式简化版由于没有指定作用域对象所以在执行时采用猜算法 首先到pageContext定位共享数据如果存在直接读取输出并结束执行 如果在pageContext没有定位成功到request定位共享数据如果存在直接读取输出并结束执行 如果在request没有定位成功到session定位共享数据如果存在直接读取输出并结束执行 如果在session没有定位成功到application定位共享数据如果存在直接读取输出并结束执行 如果在application没有定位成功返回null pageContext---request--session--application 4、存在隐患 容易降低程序执行速度 容易导致数据定位错误 5、应用场景 设计目的就是简化从pageContext读取共享数据输出难度 6、EL表达式简化版尽管存在很多隐患但是在实际开发过程中开发人员为了节省时间一般都使用简化版拒绝使用标准版 EL表达式---支持运算表达式 1、前提在JSP文件有时需要将读取共享数据进行一番运算之后将运算结果写入到响应体 2、运算表达式 EL表达式提供内置对象 1、命令格式$(param.请求参数名) 2、命令作用从通过请求对象读取当前请求包中请求参数内容并将请求参数内容写入到响应体 3、代替命令 发送请求http://localhost:8080/myWeb/index.jsp?userNamemike % String userName rquest.getParameter(userName); String password request.getParameter(password); % %userName% %password% 以下命令适合于多选 1、命令格式${paramValues.请求参数名[下标]} 2、命令作用如果浏览器发送的请求参数是一个请求参数关联多个值 此时可以通过paramValues读取请求参数下指定位置的值并写入到响应体 3、代替命令 发送请求http://localhost:8080/myWeb/index.jsp?hobby抽烟 此时hobby请求参数在请求包以数组形式存在 % String[] arr request.getParameterValues(hobby); % %arr[0]% %arr[1]%