首先,JSP是javaweb服务器端的动态资源,可动态显示网页,本质上其实就是SERVLET。
一个JSP文件,在第一次访问时,服务器会先将jsp翻译成java文件,也就是一个servlet,然后该java文件再会被编译成class文件;在第二次访问该jsp文件时,则直接访问对应的class文件(前提是该jsp未被修改过)。
因为第一次请求的翻译和编译过程,导致第一次访问会稍微慢一些,后续直接访问class,会快一些。
jsp对象 | servlet对象 | 作用描述 | 常用方法 |
out | PrintWriter out= resp.getWriter(); | 输出对象,向客户端输出内容 | out.print(" ") 内容输出 ... |
request | HttpServletRequest request | 请求对象;存储客户端向服务端发送的请求信息 | request.getParameter(" ") 参数获取 ... |
response | HttpServletResponse response | 响应对象 | void addCookie( Cookie cookie ); 服务端向客户端增加cookie对象 页面跳转的一种方式(重定向) 设置服务端响应的编码(设置服务端的contentType类型) ... |
session | HttpSession session = request.getSession(); | 客户端第一次请求服务端时,(jsessionid-sessionid)服务端会产生一个session对象(用于保存该客户的信息); 并且每个session对象 都会有一个唯一的 sessionId( 用于区分其他session); | session.getAttribute(" ") 获取参数 session.setAttribute(" ") 添加参数 ... |
application | ServletContext application = this.getServletContext(); | 全局对象 | String getContextPath() 虚拟路径 绝对路径(虚拟路径 相对的绝对路径) ... |
config | ServletConfig config= this.getServletConfig(); | 配置对象(服务器配置信息) | |
exception | / | 异常对象 | |
PageContext | / | JSP页面容器 | |
Page | / | 当前JSP页面对象(相当于java中的this) | |
四种范围对象作用范围(由小及大):
page 当前页面有效
request 同义词请求有效
session 同义词会话有效
appliation 全局有效(整个项目有效)
以上四个对象共有方法:
//根据属性名获取属性值
Object getAttribute(String name)
//新增、修改属性值
void setAttribute(String name,Object obj)
//如果a对象之前不存在,则新建一个a对象;如果a之前已经存在,则将a的值改为b
void setAttribute("a","b") ;
//根据属性名移除对应属性
void removeAttribute(String name):根据属性名,删除对象
//以上的4个范围对象,通过 setAttribute()赋值,通过getAttribute()取值;尽量使用最小的范围。因为 //对象的范围越大,造成的性能损耗越大。