?
四:九大内置对象(JSP_0400_NineObject工程)
?
out:
Out内置对象是一个缓冲的输出流,用来给客户端返回信息。它是javax.servlet.jsp.JspWriter的一个实例
典型应用:向客户端输出内容
例:向客户端输出一个字符串“Hello?World”
(HelloWorld.jsp)
常用方法:
println():向客户端输出各种类型数据
newLine():输出一个换行符
close():关闭输出流
flush():输出缓冲区里的数据
clearBuffer():清除缓冲区里的数据,同时把数据输出到客户端
clear():清除缓冲区里的数据,但不把数据输出到客户端
getBufferSize():返回缓冲区的大小
?
?
request
request内置对象表示的是调用JSP页面的请求。通常,request对象是javax.servlet.http.HttpServletRequest接口的一个实例
典型应用:通过request.getParameter(“paramName”)可以获得Form提交过来的参数值
可以用此对象取得请求的Header、信息(如浏览器版本、语言和编码等)、请求的方式(get/post)、请求的参数名称、参数值、客户端的主机名称等
常用方法:
getMethod():返回客户端向服务器端传送数据的方法
getParameter(String?paramName):返回客户端向服务器端传送的参数值,该参数由paramName指定
getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举类型数据(Enumeration)
getParameterValues(String??name):获得指定参数的所有值,由name指定
getRequestURI():获得发出请求字符串的客户端地址
getRemoteAddr():获取客户端的IP地址
getRemoteHost():获取客户端机器名称
getServerName():获取服务器的名字
getServletName():客户端所请求的脚本文件路径
getServerPort():获取服务器端的端口
对应类:?javax.servlet.http.HttpServletRequest
?
?
?
response
表示的是返回给客户端的响应
是javax.servlethttp.HttpServletResponse接口的一个实例
经常用于设置HTTP标题,添加cookie、设置响应内容的类型和状态、发送HTTP重定向和编码URL
常用方法:
addCookie(Cookie?cookie):添加一个Cookie对象,用于在客户端保存特定的信息
addHeader(String?name,String?value):添加HTTP头信息,该Header信息将发送到客户端
containsHeader(String?name):判断指定名字的HTTP文件头是否存在
sendError(int):向客户端发送错误的信息
sendRedirect(String?url):重定向JSP文件
和<jsp:forward>的区别
sendRedirect通过客户端发起二次申请,不同的request对象
Jsp:forward是同一个request,在服务器内部转发
setContentType(String?contentType):设置MIME类型与编码方式
?
?
?
cookie:
Http协议的无连接性要求出现一种保存C/S间状态的机制
Cookie:保存到客户端的一个文本文件,与特定客户相关
Cookie以“名-值”对的形式保存数据
通过getName和getValue的方式得到相应的名字和值
?
?
session&application
<%?@page?session=“true”%>(默认)--表示session功能已经在jsp页面中启动
session常用方法:
void?setAttribute(String?name,Object?value)
Object?getAttribute(String?name)
boolean?isNew()
application?
ServletContext
?
pageContext?à用的很少
config?à用的很少
exception
Page用的很少
?
?
?
五:JavaBean
1JavaBean是一个公共的(public)类
2JavaBean是一个不带参数的构造方法
3JavaBean通过setXXX方法设置属性,getXXX方法获取属性
?
Jsp访问JavaBean的语法
1导入JavaBean类
2声明JavaBean对象
3访问JavaBean属性
?
?
?
?
六:Servlet和JSP的通信
从JSP调用Servlet可用<jsp:forward>
请求信息自动传递到Servlet
或者通过sendRedirect
?
从Servlet调用JSP使用
RequestDispatcher接口的forward(req,?res)方法
请求信息需要显式传递(在req、res参数中)
或者通过sendRedirect
?
例如:
FromJspToServlet.jsp?/?ServletToJsp.java?/?ServletUseJsp.jsp
forward可以用?”/”?路径,?是指web?app的根路径,?servlet?forward?jsp的时候一定要用?“/”开头
jsp?sendRedirect到servlet应该用相对路径,因为这里”/”指网站的根路径
servlet?sendRedirect?jsp也是
request.getContextPath起作用了