JSP 3个编译指令
1) page指令(基本不需要用到,使用默认即可)
主要属性:
1.Language:指定脚本所采用的语言类型,现在只支持java
2.Extends:定义当前jsp产生的servlet是继承哪个类
3.Import:定义当前jsp使用的java API,多个API之间用逗号分开
4.Session:指定是否使用session,默认true
5.Buffer:指定输出流的缓存大小,默认8K
6.autoFlush:指定输出缓冲区是否自动清除,默认true
7.isThreadSafe:指定能否出来多个线程的同步请求
8.info:指定页面的相关信息
9.errorPage:指定当前页出错时转向的错误处理页面(提示友好信息)
格式:errorPage=“处理页面地址”
10.contentType:指定当前页面的mime类型的编码格式
Eg:contentType="text/html; charset=GB18030"
11.isErrorPage:指定当前页面是否为处理错误页面(true|false)
12.pageEncoding:指定页面编码的字符集,默认为ISO-8859-1,当页面中含有中文时应使用“gbk”或“gb18030”或“gb2312”。
Eg:pageEncoding="GB18030"
2) include指令
<%@ include file=“URL”%>
3) taglib指令
<%@ taglib prefix=“” uri=“”%>
说明:uri用于指定prefix定义的前缀所代表的标签库
Eg:<%@ taglib prefic=”s2” uri=”/struts-tags”%>
JSP的7个动作指令
1) jsp:include 指令
用于在请求处理阶段包含来自一个Servlet或jsp页面的响应。和编译指令中的include不同,include只能用于包含静态页面,而jsp:include指令则可以包含静态和动态页面。
格式:1.<jsp:include page=”文件路径”/> --------(静态页面)
2.<jsp:include page=”文件路径”> --------(动态页面)
<jsp:param name=”参数名1” value=”参数值1”/>
……
<jsp:param name=”参数名n” value=”参数值n”/>
</jsp:include>
2) jsp:forword 指令
用于执行页面转向,将请求的处理转发到下一页面。
格式:1.<jsp:forword page=”文件路径”/> ------(跳向静态页面)
2.<jsp:forword page=”文件路径”> ------(跳向动态页面)
<jsp:param name=”参数名1” value=”参数值1”/>
…….
<jsp:param name=”参数名n” value=”参数值n”/>
</jsp:forword>
3) jsp:useBean 指令
用来在jsp页面内创建一个JavaBean实例
格式:<jsp:useBean id=”javaBean的名称” scope=”有效范围” class=”包名.类名”></jsp:useBean>
说明: id属性指定了javaBean的名称,只要是在他的有效范围内,均可以使用这个名称来调用他。Scope属性为javaBean的有效范围(四大范围:request、page、session、application),class属性指定了javaBean所属的类(包名.类名)。
4) jsp:setProparty 指令
用来设置Bean对象的属性
格式:1.<jsp:setProparty name=”javaBean名称” proparty=”*” />
2.<jsp:setProparty name=”javaBean名称” proparty=”属性名” />
3. <jsp:setProparty name=”javaBean名称” proparty=”属性名” param=”参数名” />
4. <jsp:setProparty name=”javaBean名称” proparty=”属性名” value=”属性值” />
说明:proparty=”*”时,表示保存用户在jsp页面中输入的所有值,用于匹配javaBean的属性。当proparty有具体的值时,表示匹配Bean的一个属性。Param属性表示根据指定的request对象中的参数与属性匹配。Value属性表示使用指定的值来设置Bean的属性。
5) jsp:getProparty 指令
用来读取Bean对象的属性,并将其转换为一个字符串显示在页面上。
格式:<jsp:getProparty name=”bean的名称” proparty=”属性名称”/>
6) jsp:plugin 指令(不常用)
用于下载服务器端的javaBean或Applet到客户端执行。
7) jsp:param 指令(不常用)
用于设置参数,不能单独使用,主要用在jsp:include jsp:forword jsp:plugin指令中。
JSP的9个内置对象
1) request对象:用于获取客户端提交的数据,这些数据包括头信息、客户端地址、请求方式等。
常用方法
- getParameter(String name) 获取表单提交的数据
- getParameterName() 获取客户端提交的所有参数名
- getAttribute(String name) 获取name指定的属性
- getAttributeName() 获取request对象所有属性的名称集合
- getSession(Boolean create) 获取HttpSession对象
- getCookies() 获取Cookie对象
- getProtocol() 获取客户端协议名称
- getServletPath() 获取客户端请求的脚本的相对路径
- getMethod() 获取客户端提交数据的方式,如get 、post等
- getHeader() 获取文件头信息
- getRemoteAddr() 获取客户端IP地址
- getServerName() 获取服务器名称
- getRemoteHost() 获取客户端主机名
- getServerPort() 获取服务器端口号
2) response对象:有用对客户端的请求作出动态的响应,向客户端发送数据。
常用方法
- getCharacterEncoding() 返回响应的字符编码格式
- getOutputStream() 返回响应的输出流
- getWriter() 返回可以向客户端输出字符的一个对象
- setContentLength(int long) 设置响应头的长度
- setContentType(String type) 设置响应的mime类型
- sendRedirect(String location) 重新定向客户端的请求
- flushBuffer() 强制把当前缓存区的数据发送到客户端
- addCookie(Cookie cookie) 在客户端添加一个cookie
3) session对象:从一个客户打开浏览器并连接到服务器开始,到用户关闭浏览器离开这个服务器结束,整个阶段被称为一个会话。Session对象可以用来保存用户的会话信息和会话状态。
常用方法
- getId() 获取session的标识符
- setAttribute(String key,Object obj) 将一个对象(obj)添加到session中,并为它指定一个索引值
- getAttribute(String key) 获取session对象中含有指定关键字的对象
- isNew() 判断用户是否参与了会话
- invalidate() 使当前会话失效
- removeAttribute(String name) 删除一个指定session的值
- getCreationTime() 获取session对象创建的时间
4) out对象:用来向客户端输出各种数据。
常用方法
- print()/println() 输出各种类型的数据
- clearBuffer() 清除缓冲区的数据,并将数据写入客户端
- clear() 清除缓冲区的当前内容,但不将数据写入客户端
- flush() 输出缓冲区中的数据
- newLine() 输出一个换行符
- close() 关闭输出流
5) page对象:就是指当前jsp页面本身,类似于java中的this。
常用方法
1. getClass() 获取page对象的类
2. hashCode() 获取page对象的hash码
3. equals(Object obj) 判断page对象是否与参数中的obj相等
4. copy(Object obj) 把此page对象复制并指定的Object对象中
5. clone() 克隆当前的page对象
6. toString() 吧page对象转换成String类型的对象
6) application对象:实习用户间的数据共享,可以存放全局变量。
常用方法
- setAttribute(String key, Object obj) 将对象obj添加到application对象中,并为其指定索引
- getAttribute(String name) 获取指定的属性
- getAttributeName() 获取一个包含所有可用属性名的枚举
- removeAttribute(String name) 删除一个指定的application对象
- getContext(String uripath) 获取指定WebApplication的application对象
- getResource(String path) 获取指定资源(文件及目录)的URL路径
- getResourceAsStream(String path) 获取指定资源的输入流
- getServlet(String name) 返回指定的Servlet
- log(String msg) 把指定消息写入Servlet的日志文件
7) pageContext对象:用于管理对属于jsp中特殊可见部分中已经命名对象的访问。
常用方法
- setAttribute(String key,Object obj) 将对象obj添加到默认页面范围或特定范围之中,并指定索引
- getAttribute(String name[,int scope]) 获取一个已命名为name的对象的属性,可选参数scope表示在指定范围内
- removeAttribute(String name,[int scope]) 删除指定范围内的某个属性
- forword(String relativeUrlPath) 将当前页面重定向到其他页面
- include(String relativeUrlPath) 在当前位置包含另一个文件
- release() 释放pageContext对象所占用的资源
- getServletContext() 获取当前页的ServletContext对象
- getException() 获取当前页的Exception对象
8) config对象:用来获取服务器初始化配置参数。
常用方法
- getServletContext() 获取当前的Servlet上下文
- getInitParameter(String name) 获取指定的初始参数值
- getInitParameter() 获取所有的初始参数值
- getServletName() 获取当前的Servlet名称
9) exception对象:用于处理jsp页面中发生的错误和异常,可以帮助我们了解并处理页面中的错误信息。
常用方法
- getMessage() 获取当前的错误信息
- getLocalizedMessage() 获取本地化语言的异常错误
- printStackTrace() 输出一个错误或错误的堆栈跟踪
- fillInStackTrace() 重写异常的执行栈轨迹
- toString() 关于异常错误的简单信息描述