jsp 入门
2016-01-13 18:14
731 查看
JSP指令:
语法:<%@ 指令名 属性="值"%>
基本指令:page,include,taglib
page :用于定义jsp页面各种属性
语法:<%@ page 标签元素="值"%>
标签元素:languge,import,contentType,session,errorPage,isErrorPage
1、language
language="language" 指定JSP Container要用什么语言来编译JSP网页。
目前只可以使用Java语言,不过不排除增加其它语言。默认值为Java。比如 <%@ page language=“java”%>
2、import
import="importList" 定义此JSP页面可以使用哪些Java API。用逗号分隔列出一个或多个全质类名。
此列表用于在生成的java servlet中创建相应的导入语句。
以下包是自动包含的,不必被指出:java.lang.*;java.servlet.*;java.servlet.jsp.*;java.servlet.htt.* 比如<%@ page import="java.util.*"%>
3、contentType
contentType="ctinfo" 表示将在生成servlet中使用的MIME类型和可选字符解码。
比如<%@ page contentType="text/html;charset=GBK"%>
4、session
session="true|false" 指明JSP页面是否需要一个HTTP会话
如果为true,那么产生的servlet将包含创建一个HTTP会话(或访问一个HTTP会话)的代码,缺省为true。
5、errorPage
errorPage="error_url" 表示如果发生异常错误,网页会被重新指向一个URL页面。
错误页面必须在其page指令元素中指定isErrorPage="true"
6、isErrorPage
isErrorPage="true|false" 如果此页面被用作处理异常错误的页面,则为true。
在这种情况下,页面可被指定为另一页面page指令元素中errorPage属性的取值。指定此属性为true将使exception隐含变量对此页面可用。缺省值为false。
include指令
功能:include指令用来向当前页面插入一个静态文件的内容。这个文件可以是JSP、HTML、文本或是Java程序。
语法:<%@ include file=“filename” %> 比如 <%@ include file=“111.txt” %>
标签元素:file
注意:include指令元素和行为元素主要有两个方面的不同点。
1.include指令是静态包含,执行时间是在编译阶段执行,引入的内容为静态文要,在编译成servlet时就和包含者融合到一起。所以file不能是一个变量,也不能在file后接任何参数。
2.include行为是动态包含,执行时间是在请求阶段执行,引入的内容在执行页面时被请求时动态生成再包含到页面中。
3、<%@ include file=“filename” %>如果直接以文件名开头,指的是正在使用的JSP文件所在的路径,
如果以/开头,指的是正在使用的JSP文件上下的路径关系.
taglib指令
功能:使用标签库定义新的自定义标签,在JSP页面中启用定制行为。
当页面引用了用户自定义标签时,taglib指令用于引用自定义标签库,并指定标签的前缀。
语法:<%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" %>
如<%@ taglib uri="http://www.jspcentral.com/tags" prefix="JAXP" %>
标签元素:uri、Prefixpage指令元素的属性
uri="tagLibraryURI" 标签库描述器的URI,主要是说是tagLibrary的存放位置。
prefix="tagPrefix" 用于标识在页面后面部分使用定制标签的唯一前缀。
前缀在标签的名字前面使用,例如,在中public在loop前面。空的前缀将被忽略。如果你正在开发或使用自定义的标签的话,你不能使用标签前缀:jsp,jspx,java,javax,servlet,sun和sunw等,因为他们已经被Sun的系统的所使用。
内置对象
内置对象可以不加声明和创建就可以在jsp页面脚本中使用成员变量
jsp共有9个内置对象:
常用:out,request,response,session,application
不常用:page,pageContext,exception,config
out对象:out对象是JspWriter类的实例,是向客户端输出内容的常用对象
常用方法:
1.void println() 向客户端打印字符串
2.void clear()清除缓冲区的内容,如果在flush之后调用会抛出异常
3.void clearBuffer() 清除缓冲区内容,如果在flush之后调用不会抛出异常
4.void flush() 将缓冲区内容输出到客户端
5. int getBufferSize()返回缓冲区字节数的大小,如果不设缓冲区则为0
6.int getRemaining()返回缓冲区还剩多少字节
7.boolean isAutoFlush()返回缓冲区满时,是自动情空还是抛出异常
8. void close() 关闭输出流
request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后最初响应
.它是HttpServletRequest类的实例.request对象具有请求域,即完成客户端请求之前,该对象一直有效.
常用方法:
String getParameter(String name) 返回name指定参数的参数值
String[] getParameterValues(String name) 返回包含参数name的所有值数组
void setAttribute(String ,Object) 存储此请求中的属性
String getContentType() 得到请求体的MIME类型
String getProtocol()返回请求用的协议类型及版本号
String getServerNamr()返回接受请求的服务器主机名
response对象:response对象包含了响应客户请求的有关信息,但在JSP中很少有直接用到它。
它是HttpServletResponse类的实例.response对象具有页面作用域,即访问一个页面时,该页面内
的response对象只能对这次访问有效,其他页面的response对象对当前页面无效
常用方法:
String getCharacterEncoding() 返回相应用的是什么字符编码
Void setContentType(String type) 设置相应的MIME类型
PrintWriter getWriter()返回可以向客户端输出字符的对象
sendRedirect(java.lang.String location) 重新定向客户端的请求
请求重定向:客户端行为,response.sendReadirect()
从本质上讲等同于两次请求,前一次请求的对象不会保存,地址栏的URL地址会改变
请求转发:服务器行为,request.getRequestDispatcher().forward(reqresp)
是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变
session
session是保存在服务器的内存当中,为不同的用户保存不同的session,与用户一一对应
session对象是保存用户状态的一个机制
session对象是HttpSession类的实例
session的生命周期:
创建:当客户端第一次访问某个jsp或者servlet时候,服务器会为当前会话创建一个sessionId,每次客户端向服务端发送请求时,都会将此sessionId携带过去,服务端会对此sessionId进行校验
活动:某次会话当中通过超链接打开的新页面属于同一次会话,只要当前会话页面没有全部关闭,重新打开浏览器窗口访问项目资源时属于同一次会话。除非本次会话的所有页面都关闭后再重新访问某个Jsp或者Servlet将会创建新的会话。
(注意:注意原有会话还存在,只是这个旧的SessionId仍然存在于服务端,只不过再也没有客户端会携带它然后交予服务端校验)
销毁:session的销毁只有三种方式:
1.调用了session.invalidate()方法
2.session过期(超时)
3.服务器重启
application对象
application对象实现了用户间数据的共享,可存放全局变量
application开始于服务器的启动,终止于服务器的关闭
在用户的前后连接或不同用户之间的连接中,l可以对application对象的同一属性进行操作
常用方法:
public void setAttribute(String name,Object vvalue)使用指定名称将对象绑定到此会话
public Object getAttribute(String name)返回与此会话中指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null
Enumeration getAttributeNames()返回所有可用属性名的枚举
String getServerInfo()返回JSP(SERVLET)引擎名及版本号
page对象
page对象就是指当前JSP页面本身,类似于this指针,它是java.lang.Object类的实例。
常用方法:
class getClass()返回此Object的类
init hashCode()返回此Object的hash码
boolean equals(Object obj)判断此Object是否与指定的Object对象相等
void copy(Object obj)把此Object拷贝到指定的Object对象中
Object clone()克隆此Object对象
String toString()把此Object对象转换成String类的对象
void notify()唤醒一个等待的线程
void notifyAll()唤醒所有等待的线程
void wait(int timeout)使一个线程处于等待直到timeout结束或被唤醒
void wait()使一个线程处于等待直到被唤醒
pageContext对象
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问
pageContext对象可以访问到本页面所在的session,也可以取本页面所在的application的某一属性值
pageContext对象相当于页面中所有功能的集大成者
pageContext对象的本地类名页脚pageContext
常用方法:
Jspwriter getOut() 返回当前客户端响应被使用的JspWriter流(out)
HttpSession getSession()返回当前页面中的HttpSession对象(session)
Object getPage() 返回当前页面的Object对象(page)
ServletRequest getRequest()返回当前页面的ServletRequest对象(request)
void setAttribute(String name,Object attribute)设置属性及属性值
Object getAttribute(String name,int scope)在指定范围内取属性的值
int getAttributeScope(String name) 返回某属性的作用范围
void forward(String relativeUrlPath)使当前页面重导到另一页面
void include(String reativeUrlPath)在当前位置包含另一文件
Confoig对象
Config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
常用方法:
ServletContext getServletContext()返回含有服务器相关信息的ServletContent对象
String getInitParameter(String name)返回初始化参数的值
Enumeration getInitParameterNames()返回Servlet初始化所需所有参数的枚举
Exception对象
exception对象是一个异常对象,当一个页面在运行过程中发生了异常,就产生这个对象。如果JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象。
常用方法:
String getMessage()返回描述异常的消息
String toString()返回关于异常的简短描述消息
void printStackTrace()显示异常及其栈轨迹
Throwable FillInStackTrace()重写异常的执行栈轨迹
语法:<%@ 指令名 属性="值"%>
基本指令:page,include,taglib
page :用于定义jsp页面各种属性
语法:<%@ page 标签元素="值"%>
标签元素:languge,import,contentType,session,errorPage,isErrorPage
1、language
language="language" 指定JSP Container要用什么语言来编译JSP网页。
目前只可以使用Java语言,不过不排除增加其它语言。默认值为Java。比如 <%@ page language=“java”%>
2、import
import="importList" 定义此JSP页面可以使用哪些Java API。用逗号分隔列出一个或多个全质类名。
此列表用于在生成的java servlet中创建相应的导入语句。
以下包是自动包含的,不必被指出:java.lang.*;java.servlet.*;java.servlet.jsp.*;java.servlet.htt.* 比如<%@ page import="java.util.*"%>
3、contentType
contentType="ctinfo" 表示将在生成servlet中使用的MIME类型和可选字符解码。
比如<%@ page contentType="text/html;charset=GBK"%>
4、session
session="true|false" 指明JSP页面是否需要一个HTTP会话
如果为true,那么产生的servlet将包含创建一个HTTP会话(或访问一个HTTP会话)的代码,缺省为true。
5、errorPage
errorPage="error_url" 表示如果发生异常错误,网页会被重新指向一个URL页面。
错误页面必须在其page指令元素中指定isErrorPage="true"
6、isErrorPage
isErrorPage="true|false" 如果此页面被用作处理异常错误的页面,则为true。
在这种情况下,页面可被指定为另一页面page指令元素中errorPage属性的取值。指定此属性为true将使exception隐含变量对此页面可用。缺省值为false。
include指令
功能:include指令用来向当前页面插入一个静态文件的内容。这个文件可以是JSP、HTML、文本或是Java程序。
语法:<%@ include file=“filename” %> 比如 <%@ include file=“111.txt” %>
标签元素:file
注意:include指令元素和行为元素主要有两个方面的不同点。
1.include指令是静态包含,执行时间是在编译阶段执行,引入的内容为静态文要,在编译成servlet时就和包含者融合到一起。所以file不能是一个变量,也不能在file后接任何参数。
2.include行为是动态包含,执行时间是在请求阶段执行,引入的内容在执行页面时被请求时动态生成再包含到页面中。
3、<%@ include file=“filename” %>如果直接以文件名开头,指的是正在使用的JSP文件所在的路径,
如果以/开头,指的是正在使用的JSP文件上下的路径关系.
taglib指令
功能:使用标签库定义新的自定义标签,在JSP页面中启用定制行为。
当页面引用了用户自定义标签时,taglib指令用于引用自定义标签库,并指定标签的前缀。
语法:<%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" %>
如<%@ taglib uri="http://www.jspcentral.com/tags" prefix="JAXP" %>
标签元素:uri、Prefixpage指令元素的属性
uri="tagLibraryURI" 标签库描述器的URI,主要是说是tagLibrary的存放位置。
prefix="tagPrefix" 用于标识在页面后面部分使用定制标签的唯一前缀。
前缀在标签的名字前面使用,例如,在中public在loop前面。空的前缀将被忽略。如果你正在开发或使用自定义的标签的话,你不能使用标签前缀:jsp,jspx,java,javax,servlet,sun和sunw等,因为他们已经被Sun的系统的所使用。
内置对象
内置对象可以不加声明和创建就可以在jsp页面脚本中使用成员变量
jsp共有9个内置对象:
常用:out,request,response,session,application
不常用:page,pageContext,exception,config
out对象:out对象是JspWriter类的实例,是向客户端输出内容的常用对象
常用方法:
1.void println() 向客户端打印字符串
2.void clear()清除缓冲区的内容,如果在flush之后调用会抛出异常
3.void clearBuffer() 清除缓冲区内容,如果在flush之后调用不会抛出异常
4.void flush() 将缓冲区内容输出到客户端
5. int getBufferSize()返回缓冲区字节数的大小,如果不设缓冲区则为0
6.int getRemaining()返回缓冲区还剩多少字节
7.boolean isAutoFlush()返回缓冲区满时,是自动情空还是抛出异常
8. void close() 关闭输出流
request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后最初响应
.它是HttpServletRequest类的实例.request对象具有请求域,即完成客户端请求之前,该对象一直有效.
常用方法:
String getParameter(String name) 返回name指定参数的参数值
String[] getParameterValues(String name) 返回包含参数name的所有值数组
void setAttribute(String ,Object) 存储此请求中的属性
String getContentType() 得到请求体的MIME类型
String getProtocol()返回请求用的协议类型及版本号
String getServerNamr()返回接受请求的服务器主机名
response对象:response对象包含了响应客户请求的有关信息,但在JSP中很少有直接用到它。
它是HttpServletResponse类的实例.response对象具有页面作用域,即访问一个页面时,该页面内
的response对象只能对这次访问有效,其他页面的response对象对当前页面无效
常用方法:
String getCharacterEncoding() 返回相应用的是什么字符编码
Void setContentType(String type) 设置相应的MIME类型
PrintWriter getWriter()返回可以向客户端输出字符的对象
sendRedirect(java.lang.String location) 重新定向客户端的请求
请求重定向:客户端行为,response.sendReadirect()
从本质上讲等同于两次请求,前一次请求的对象不会保存,地址栏的URL地址会改变
请求转发:服务器行为,request.getRequestDispatcher().forward(reqresp)
是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变
session
session是保存在服务器的内存当中,为不同的用户保存不同的session,与用户一一对应
session对象是保存用户状态的一个机制
session对象是HttpSession类的实例
session的生命周期:
创建:当客户端第一次访问某个jsp或者servlet时候,服务器会为当前会话创建一个sessionId,每次客户端向服务端发送请求时,都会将此sessionId携带过去,服务端会对此sessionId进行校验
活动:某次会话当中通过超链接打开的新页面属于同一次会话,只要当前会话页面没有全部关闭,重新打开浏览器窗口访问项目资源时属于同一次会话。除非本次会话的所有页面都关闭后再重新访问某个Jsp或者Servlet将会创建新的会话。
(注意:注意原有会话还存在,只是这个旧的SessionId仍然存在于服务端,只不过再也没有客户端会携带它然后交予服务端校验)
销毁:session的销毁只有三种方式:
1.调用了session.invalidate()方法
2.session过期(超时)
3.服务器重启
application对象
application对象实现了用户间数据的共享,可存放全局变量
application开始于服务器的启动,终止于服务器的关闭
在用户的前后连接或不同用户之间的连接中,l可以对application对象的同一属性进行操作
常用方法:
public void setAttribute(String name,Object vvalue)使用指定名称将对象绑定到此会话
public Object getAttribute(String name)返回与此会话中指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null
Enumeration getAttributeNames()返回所有可用属性名的枚举
String getServerInfo()返回JSP(SERVLET)引擎名及版本号
page对象
page对象就是指当前JSP页面本身,类似于this指针,它是java.lang.Object类的实例。
常用方法:
class getClass()返回此Object的类
init hashCode()返回此Object的hash码
boolean equals(Object obj)判断此Object是否与指定的Object对象相等
void copy(Object obj)把此Object拷贝到指定的Object对象中
Object clone()克隆此Object对象
String toString()把此Object对象转换成String类的对象
void notify()唤醒一个等待的线程
void notifyAll()唤醒所有等待的线程
void wait(int timeout)使一个线程处于等待直到timeout结束或被唤醒
void wait()使一个线程处于等待直到被唤醒
pageContext对象
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问
pageContext对象可以访问到本页面所在的session,也可以取本页面所在的application的某一属性值
pageContext对象相当于页面中所有功能的集大成者
pageContext对象的本地类名页脚pageContext
常用方法:
Jspwriter getOut() 返回当前客户端响应被使用的JspWriter流(out)
HttpSession getSession()返回当前页面中的HttpSession对象(session)
Object getPage() 返回当前页面的Object对象(page)
ServletRequest getRequest()返回当前页面的ServletRequest对象(request)
void setAttribute(String name,Object attribute)设置属性及属性值
Object getAttribute(String name,int scope)在指定范围内取属性的值
int getAttributeScope(String name) 返回某属性的作用范围
void forward(String relativeUrlPath)使当前页面重导到另一页面
void include(String reativeUrlPath)在当前位置包含另一文件
Confoig对象
Config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
常用方法:
ServletContext getServletContext()返回含有服务器相关信息的ServletContent对象
String getInitParameter(String name)返回初始化参数的值
Enumeration getInitParameterNames()返回Servlet初始化所需所有参数的枚举
Exception对象
exception对象是一个异常对象,当一个页面在运行过程中发生了异常,就产生这个对象。如果JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象。
常用方法:
String getMessage()返回描述异常的消息
String toString()返回关于异常的简短描述消息
void printStackTrace()显示异常及其栈轨迹
Throwable FillInStackTrace()重写异常的执行栈轨迹
相关文章推荐
- js 字符串转换数字
- javascript获取时间的各个部分
- 重识Javascript系列---ECMAScript继承
- JSP日期格式化显示
- extjs表单验证
- JavaScript模块系统的现状
- jsp页面格式化数字或时间,yyyy-MM-ss HH:mm:ss
- 1.2-JavaScript对象的多态性
- seajs 之define函数
- Google Gson的使用方法,实现Json结构的相互转换
- C# DataTable转换成JSON数据
- js非空判断
- alert 替代效果smoke.js
- JSON数据理解
- 《JS高级程序设计》读书笔记
- 详解JavaScript中localStorage使用要点
- 上传插件webuploader.js的使用示例
- jsoncpp 构造空数组
- javascript图片切换综合实例(循环切换、顺序切换)
- jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令