关于jsp的前世今生......
1.jsp的本质是servlet.
2.jsp声明 <%! %>
jsp脚本 <% %>
jsp表达式 <%= %>
2.jsp的3个编译指令:(在jsp编译生成servlet时,起作用)
page
include:静态包含 <%@include file=" " %>
动态包含 <jsp:include >
二者区别
taglib
3.jsp的7个动作(处理)指令:(在servlet运行时,起作用)
<jsp:forward />
<jsp:include />
<jsp:useBean /> <jsp:setProperty /> <jsp:getProperty /> 这三个用于操作javaBean
<jsp:plugin />
<jsp:param />
4.jsp脚本中9个内置对象 (即Jsp对应的servlet的_jspService()方法已经创建了这9个对象)
由于jsp与servlet之间不会相互调用 所以jsp与servlet之间传递数据通过application session request page 四大对象(类似银行)的对象来传递数据
application ---- javax.servlet.ServletContext类的实例(一个web应用从启动到关闭 只有这一个这个类的实例 所以无论在哪里获取都是同一个对象) 在jsp页面中直接内置 在servlet中需要获取
application 对象的作用范围最大 从一个web应用被加载(tomcat启动)到该web应用被关闭(tomcat退出)一直存在 且只有一个。
作用
1:只要把一个键值对放入application对象中 ,就可以在该web应用所有的jsp页面,servlet中获取该键值对。
2:获取web.xml文件中的配置信息。
config---- javax.servlet.ServletConfig类的实例 (该对象不唯一 每个jsp页面,servlet的config对象都属于自己 只用来获取自己的配置信息) 同样jsp中内置该对象 在servlet中需要获取该对象
该对象用来获取当前jsp页面在web.xml中的配置信息 用于jsp页面在web.xml文件中很少进行配置 所以该对象在jsp页面中很少使用
在servlet中获取该对象 可以获取该servlet在web.xml中配置信息 servlet在web.xml有可能会配置一些东西 所以该对象在servlet中 可能会用到
exception ---- javax.lang.Throwable类的实例 只有jsp页面的 编译指令page的isErrorPage="true"时,即该页面 是错误处理页面 才会拥有该对象
普通的页面 通过编译 指令page的errorPage= " " 来制定该页面的才错误处理页面 ,普通页面发生异常后,通过request把异常对象发给错误处理页面 ,把该异常对象付给错误处理页面的exception
out ------javax.servlet.jsp.JspWriter类的实例 out对象 的作用 和 <%= %>输出表达式的作用相同 用来输出变量值及常量
page -------该对象代表jsp页面本身 作用不大 相当于servlet中this
pageContext -----javax.servlet.jsp.PageContext类的实例 该对象代表该页面的上下文,通俗理解,该对象就像一个大管家,通过该对象可以指定把一个键值对放入page ,request,session,application的任一个对象中 ,
通过该对象还可以在jsp,servlet中获取上面任意一个对象
request ------javax.servlet.http.HttpServletRequest接口的实例 极为重要的一个对象 同样这jsp页面中内置 在servlet中 通过方法的形参传入
每个request对象 都封装一次用户请求 每一次请求就生成 一个新的request对象 所有的请求参数都封装在request对象中
作用 :
1:获得请求头 /请求参数 若干个方法
2:利用request进行地址转发 forward
请求链未断开 即在第二次请求的时候 还是原先的request对象
在servlet中
request.getRequestDispatcher("/a.slt").forward(reqeust.response);
在jsp中 相当于
动作指令 <jsp:forward />
response --------javax.servlet.http.HttpServletResponse接口的实例 次重要的一个对象 同样在jsp页面中内置 在servlet中 通过方法形参传入
response对象 表示响应 ,但是一般的字符类的响应,使用更加简单的out对象 (jsp中内置 ,servlet中需要获取)
作用:
1.response响应生成非字符响应
2.利用reponse进行地址重定向
3.利用response来增加cookie
session --------- javax.servlet.http.HttpServletResponse类的实例 也是很重要的一个对象 同样在jsp页面中内置 在servlet中 需要获取
session对象 表示一次用户会话 从浏览器与服务端建立连接 到浏览器与服务端断开连接 (一般是关闭浏览器 )
在一次浏览器与服务端连接的过程中 这个web应用只用一个session对象 所以在任何地方获得session对象都是同一个
放入session对象中 键值对 在这次会话期间 都有效 都可以使用 但是一旦关闭浏览器 再重新打开浏览器连接该web应用 就会生成一个新的session对象