您的位置:首页 > Web前端 > JavaScript

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()重写异常的执行栈轨迹
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: