VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • jsp规范

jsp规范

一。jsp介绍:
来自于javaee规范里面的一种
jsp规范制定了如何开发jsp文件代替响应对象将处理结果写入到响应体的开发流程
规范了Http服务器应该如何调用管理jsp文件
二。响应对象存在的弊端:
适合将数据量较少的处理结果写入响应体
如果处理结果数量过多,使用响应对象增加开发难度
三。jsp文件优势:
jsp文件在执行的时候,自动将文件所有内容写入到响应体,从而节省out.print
jsp中书写java <%int a = 10;%>
将java变量写入响应体中<%=num%> num1+num2=<%=num1+num2%>
在jsp中所有的标记是一个整体与out.print一样

内置的对象不需要new 直接可以使用:
1.jsp文件内置对象:request
	类型:HttpServletRequest
	作用:在jsp文件运行时读取请求包的信息
	与Servlet在请求转发过程中实现数据共享

2.jsp文件内置对象:session
	类型:HttpSession
	作用:在jsp文件运行时可以通过session指向当前用户私人储物柜,添加共享数据,或读取
	共享数据


3.ServletContext application;全局作用域对象
同一个网站中Servlet与jsp,都可以通过当前网站的全局作用域对象实现数据共享
jsp文件内置对象:application

servlet与jsp分工:
servlet负责处理业务并得到处理结果
jsp负责将处理结果写入响应体
二者调用关系:
Servlet工作完毕之后一般通过请求转发的方式向tomcat申请调用jsp

servlet与jsp之间如何实现数据共享
Servlet将处理结果添加到请求作用域对象
jsp在运行时从请求作用域对象得到处理结果

Http服务器调用jsp文件步骤:
1.Http服务器将jsp文件编辑为一个servlet接口实现类
2.Http服务器将servlet文件编译为一个class文件
3.Http服务器负责创建这个class的实例对象,这个实例对象就是Servlet实例对象
4.Http服务器通过Servlet实例对象调用Service方法,将jsp文件内容写入响应体。

el工具包:
由java开发的一个jar
作用降低jsp开发时java命令开发强度
tomcat服务器本身自带el工具包

使用原始的jsp:
<%
Integer sid = (Integer)application.getAttribute("sid");
String sname = (String)session.getAttribute("sname");
String home = (String)request.getAttribute("home");
%>
学员id<%=sid%>
学员姓名<%=sname%>
学员地址<%=home%>

使用el:
学员id${applicationScope.sid}

学员姓名${sessionScope.sname}

学员地址${requestScope.home}

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

el表达式作用域对象:
jsp文件可以使用的作用域对象:
1)ServletContext application:全局作用域对象
2)HttpSession session:会话作用域对象
3)HttpServletRequest request:请求作用域对象
4)PageContext pageContext:当前页作用域对象,这是jsp文件独有的作用域对象
Servlet中不存在当前页作用域对象,该对象存放的数据只能在当前jsp文件
中使用,不能共享给其他Servlet或其他jsp文件
真是开发过程中,主要用于jstl标签与jsp文件
之间数据共享
jstl---pageContext-----jsp

el表达式提供作用域对象的别名:
	jsp		el表达式
	application	${applicationScope.共享数据名}
	session		${sessionScope.共享数据名}
	request		${requestScope.共享数据名}
	pageContext	${pageScope.共享数据名}

el表达式将引用对象属性写入到响应体:
1.命令格式:${作用域对象别名.共享数据名.属性名}
2.命令作用:从作用域对象读取指定共享数据关联的引用对象的属性值
并自动将属性的结果写入到响应体
3.属性名:一定要去引用类型属性名完全一致(大小写)
4.el表达式没有提供遍历集合方法,因此无法从作用域对象读取集合内容输出

el表达式简化版:
1.命令格式:${共享数据名}
2.命令作用:el表达式允许开发人员开发时省略作用域对象名
3.工作原理:
首先到pageContext定位的数据查找,存在就输出
如果没有就到request定位的数据查找,存在就输出
如果还是没有就定位session,最后定位application
都没有则返回null

4.存在的隐患:
	降低程序的速度
	容易导致数据定位错误
5.应用场景:
	设计的目的简化从pageContext读取共享数据并输出难度
6.el表达式虽然存在问题,但是在实际开发中一般使用简化版,拒绝使用标准版

el表达式----支持运算表达式:
1.前提:咋jsp文件有时需要将读取共享数据进行一番运算之后,将运算结果写入到响应体
2.运算表达式:
1)数学运算

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

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

el表达式提供内置对象:
1.命令格式:${param.请求参数名}
2.命令作用:通过请求对象读取当前请求包中请求参数的内容
并将请求参数内容写入到响应体
3.代替命令:index.jsp
发送请求:Http://localhost:8000/myweb/index.jsp?userName=mike&password=123
<%
String userName = request.getParameter("userName");
String userPwd = request.getParameter("userPwd");

		%>
		<%=userName%>
		<%=userPwd%>


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


select rand();随机返回0-1之间小数

SELECT * from emp ORDER BY RAND() LIMIT 0,4;随机查询四条语句 
原文:https://www.cnblogs.com/journeyhch/p/15612920.html

相关教程