《JSP数据交互总结》
1.1.1为什么需要动态网页
静态网页的内容是固定的,不能提供个性化和定制化的服务,因此,动态网页技术逐渐发展起来。
1.1.2什么是动态页面
动态网页是指在服务器端运行的使用程序语言设计的交互式网页,它们会根据某种条件的变化,返回不同的网页内容。
动态网页需要使用服务器端脚本语言。
动态网页的优势是什么?
1.交互性:即网页会根据用户的要求和选择而动态改变和显示内容。
2.自动更新:即无须改变页面代码,便会自动生成新的页面内容,可以大大节省工作量。
3.随机性:即当不同的时间,不同的人访问同一网址时会产生不同的页面效果。
1.1.3如何实现动态网页
以JSP技术为核心,结合其他相关技术
1.1.4为什么学习B/S架构技术
C/S(Client/Server, 客户端/服务器端)
B/S(Browser/Server,浏览器/服务器)
bs:客户端-服务器
cs:浏览器-服务器
2000年以前,c/s结构占据开发领域的主流,随着b/s结构的发展,c/s结构已经逐步被b/s结构取代
数据安全性
数据实时性
网络应用限制:前者仅适用于局域网内部用户或宽带用户,后者几乎适用于所有的网络结构
服务响应及时性
1.1.5什么是B/S架构
B/S架构的Web应用程序由于不在受安装客户端的限制,访问极其简便,因此越来越多地被企业采用。
1.1.6B/S架构的工作原理
1.浏览器接受用户的输入
2.浏览器向服务器端发送请求
3.数据处理
4.发送响应
1.1.7什么是URL
URL(Uniform Reaource Locator)统一资源定位符
1.1.8URL的组成
1.协议:HTTP协议,即超文本传输协议
2.服务器域名或IP:由服务器收集用户请求,经过处理再返回响应到浏览器端
3.端口号:服务器用于内外部通信的通道
4.路径:包含两层含义.
1.2.1Tomcat服务器
Tomcat是一个免费的开源的Web容器
1.3JSP简介
1.跨平台性,易维护性,易管理性等优点
1.4JSP页面组成
由静态内容,指令,表达式,小脚本,声明,标准动作,注释等元素构成
1.4.1静态内容
静态内容是JSP页面中的静态文本,其基本是HTML文本,与java 和JSP语法无关
1.4.2JSP指令元素
JSP指令以“<%@”开始,以“%>”结束
page指令
page指令用来设定JSP页面的全局属性,该配置作用于整个JSP页面。语法格式为<%@page 属性=”属性值” 属性=”属性值”%>。
include指令
include指令用于在JSP文件中include一个包含文本或代码的文件,使用include指令包含文件,执行时,先 将文件的内容插入到include指令所在的位置,执行完被包含文件的内容后,在继续执行该JSP文件。语法格式: <%@ include file=”被包含文件的URL”%>。
taglib指令
表达式:<%= %>
声明: <%! %>
1.4.4JSP中的注释
<!– HTML注释(客户端可以看到源代码) –>
<%– JSP注释(客户端看不到源代码) —>
<% //使用预定格式将日期转换成字符串 %>
1.5JSP的执行过程
1.翻译阶段
2.编译阶段
3.执行阶段
1.6JSP九大内置对象
内置对象特点:
1. 由JSP规范提供,不用编写者实例化。
2. 通过Web容器实现和管理
3. 所有JSP页面均可使用
4. 只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%>或<%使用内置对象%>)
常用内置对象:
1. 输出输入对象:request对象、response对象、out对象
2. 通信控制对象:pageContext对象、session对象、application对象
3. Servlet对象:page对象、config对象
4. 错误处理对象:exception对象
对象常用方法说明:
1.out对象(数据流 javax.servlet.jsp.jspWriter)
方法名
|
说明
|
print或println
|
输出数据
|
newLine
|
输出换行字符
|
flush
|
输出缓冲区数据
|
close
|
关闭输出流
|
clear
|
清除缓冲区中数据,但不输出到客户端
|
clearBuffer
|
清除缓冲区中数据,输出到客户端
|
getBufferSize
|
获得缓冲区大小
|
getRemaining
|
获得缓冲区中没有被占用的空间
|
isAutoFlush
|
是否为自动输出
|
2.request对象(请求信息 javax.servlet.http.HttpServletrequest)
方法名
|
说明
|
isUserInRole
|
判断认证后的用户是否属于某一成员组
|
getAttribute
|
获取指定属性的值,如该属性值不存在返回Null
|
getAttributeNames
|
获取所有属性名的集合
|
getCookies
|
获取所有Cookie对象
|
getCharacterEncoding
|
获取请求的字符编码方式
|
getContentLength
|
返回请求正文的长度,如不确定返回-1
|
getHeader
|
获取指定名字报头值
|
getHeaders
|
获取指定名字报头的所有值,一个枚举
|
getHeaderNames
|
获取所有报头的名字,一个枚举
|
getInputStream
|
返回请求输入流,获取请求中的数据
|
getMethod
|
获取客户端向服务器端传送数据的方法
|
getParameter
|
获取指定名字参数值
|
getParameterNames
|
获取所有参数的名字,一个枚举
|
getParameterValues
|
获取指定名字参数的所有值
|
getProtocol
|
获取客户端向服务器端传送数据的协议名称
|
getQueryString
|
获取以get方法向服务器传送的查询字符串
|
getRequestURI
|
获取发出请求字符串的客户端地址
|
getRemoteAddr
|
获取客户端的IP地址
|
getRemoteHost
|
获取客户端的名字
|
getSession
|
获取和请求相关的会话
|
getServerName
|
获取服务器的名字
|
getServerPath
|
获取客户端请求文件的路径
|
getServerPort
|
获取服务器的端口号
|
removeAttribute
|
删除请求中的一个属性
|
setAttribute
|
设置指定名字参数值
|
3.response对象(响应 javax.servlet.http.HttpServletResponse)
方法名
|
说明
|
addCookie
|
添加一个Cookie对象
|
addHeader
|
添加Http文件指定名字头信息
|
containsHeader
|
判断指定名字Http文件头信息是否存在
|
encodeURL
|
使用sessionid封装URL
|
flushBuffer
|
强制把当前缓冲区内容发送到客户端
|
getBufferSize
|
返回缓冲区大小
|
getOutputStream
|
返回到客户端的输出流对象
|
sendError
|
向客户端发送错误信息
|
sendRedirect
|
把响应发送到另一个位置进行处理
|
setContentType
|
设置响应的MIME类型
|
setHeader
|
设置指定名字的Http文件头信息
|
4.session对象(会话 javax.servlet.http.HttpSession)
方法名
|
说明
|
getAttribute
|
获取指定名字的属性
|
getAttributeNames
|
获取session中全部属性名字,一个枚举
|
getCreationTime
|
返回session的创建时间
|
getId
|
获取会话标识符
|
getLastAccessedTime
|
返回最后发送请求的时间
|
getMaxInactiveInterval
|
返回session对象的生存时间单位千分之一秒
|
invalidate
|
销毁session对象
|
isNew
|
每个请求是否会产生新的session对象
|
removeAttribute
|
删除指定名字的属性
|
setAttribute
|
设定指定名字的属性值
|
5.pageContext对象(页面上下文 javax.servlet.jsp.PageContext)
方法名
|
说明
|
forward
|
重定向到另一页面或Servlet组件
|
getAttribute
|
获取某范围中指定名字的属性值
|
findAttribute
|
按范围搜索指定名字的属性
|
removeAttribute
|
删除某范围中指定名字的属性
|
setAttribute
|
设定某范围中指定名字的属性值
|
getException
|
返回当前异常对象
|
getRequest
|
返回当前请求对象
|
getResponse
|
返回当前响应对象
|
getServletConfig
|
返回当前页面的ServletConfig对象
|
getServletContext
|
返回所有页面共享的ServletContext对象
|
getSession
|
返回当前页面的会话对象
|
6.application对象(应用程序 javax.servlet.ServletContext)
方法名
|
说明
|
getAttribute
|
获取应用对象中指定名字的属性值
|
getAttributeNames
|
获取应用对象中所有属性的名字,一个枚举
|
getInitParameter
|
返回应用对象中指定名字的初始参数值
|
getServletInfo
|
返回Servlet编译器中当前版本信息
|
setAttribute
|
设置应用对象中指定名字的属性值
|
7.config对象(Servlet的配置信息 javax.servlet.ServletConfig)
方法名
|
说明
|
getServletContext
|
返回所执行的Servlet的环境对象
|
getServletName
|
返回所执行的Servlet的名字
|
getInitParameter
|
返回指定名字的初始参数值
|
getInitParameterNames
|
返回该JSP中所有的初始参数名,一个枚举
|
8.page对象(当前JSP的实例,java.lang.object)
它代表JSP被编译成Servlet,可以使用它来调用Servlet类中所定义的方法
9.exception对象(运行时的异常,java.lang.Throwable)
被调用的错误页面的结果,只有在错误页面中才可使用,
即在页面指令中设置:<%@page isErrorPage=“true”%>
Request(Javax.servlet.ServletRequest)它包含了有关浏览器请求的信息.通过该对象可以获得请求中的头信息、Cookie和请求参数。
Response(Javax.servlet.ServletResponse)作为JSP页面处理结果返回给用户的响应存储在该对象中。并提供了设置响应内容、响应头以及重定向的方法(如cookies,头信息等)
Out(Javax.servlet.jsp.JspWriter)用于将内容写入JSP页面实例的输出流中,提供了几个方法使你能用于向浏览器回送输出结果。
pageContext(Javax.servlet.jsp.PageContext)描述了当前JSP页面的运行环境。可以返回JSP页面的其他隐式对象及其属性的访问,另外,它还实现将控制权从当前页面传输至其他页面的方法。
Session(javax.servlet.http.HttpSession)会话对象存储有关此会话的信息,也可以将属性赋给一个会话,每个属性都有名称和值。会话对象主要用于存储和检索属性值。
Application(javax.servle.ServletContext)存储了运行JSP页面的servlet以及在同一应用程序中的任何Web组件的上下文信息。
Page(Java.lang.Object)表示当前JSP页面的servlet实例
Config(javax.servlet.ServletConfig)该对象用于存取servlet实例的初始化参数。
Exception(Javax.lang.Throwable)在某个页面抛出异常时,将转发至JSP错误页面,提供此对象是为了在JSP中处理错误。只有在错误页面中才可使用<%@page isErrorPage=“true”%>
Jsp内置对象 |
功能 |
主要方法 |
out |
向客户端输出数据 |
print() println() flush() clear() isAutoFlush() getBufferSize() close() ………… |
request |
向客户端请求数据 |
getAttributeNames() getCookies() getParameter() getParameterValues() setAttribute() getServletPath() ………….. |
response |
封装了jsp产生的响应,然后被发送到客户端以响应客户的请求 |
addCookie() sendRedirect() setContentType() flushBuffer() getBufferSize() getOutputStream() sendError() containsHeader()…………… |
application |
|
|
config |
表示Servlet的配置,当一个Servlet初始化时,容器把某些信息通过此对象传递给这个Servlet |
getServletContext() getServletName() getInitParameter() getInitParameterNames()…………… |
page |
Jsp实现类的实例,它是jsp本身,通过这个可以对它进行访问 |
flush()……… |
pagecontext |
为JSP页面包装页面的上下文。管理对属于JSP中特殊可见部分中己经命名对象的该问 |
forward() getAttribute() getException() getRequest() getResponse() getServletConfig() getSession() getServletContext() setAttribute() removeAttribute() findAttribute() …………… |
session |
用来保存每个用户的信息,以便跟踪每个用户的操作状态 |
getAttribute() getId() getAttributeNames() getCreateTime() getMaxInactiveInterval() invalidate() isNew() |
exception |
反映运行的异常 |
getMessage()…………
|