Request对象:
(1)request获取请求参数值。Eg: string str=request.getParameter(“str”);
(2)如果请求参数的文字编码方式与页面不一致造成乱码-解决中文乱码问题:<%=new string(request.getparameter(“str”).getBytes(“gbk2312”,”utf-8”);
(3)获取Form表单所提交的内容,通过参数名称获得传递的值。
(4)获取客户端信息,相关方法如下:
request获取客户端相关方法说明 |
|
||
方法 |
返回值 |
相关说明 |
|
getHeader(String name) |
String |
返回指定名称的HTTP头信息 |
|
getMethod() |
String |
获取客户端向服务器发送请求的方法 |
|
getContextPath() |
String |
返回请求的路径 |
|
getProtocol() |
String |
返回请求使用的协议 |
|
getRemoteAddr() |
String |
返回客户端IP地址 |
|
getRemoteHost() |
String |
返回客户端主机名称 |
|
getRemotePort() |
int |
返回客户端发出请求的端口号 |
|
getServletPath() |
String |
返回接受客户端提交信息的页面 |
|
getRequestURI() |
String |
返回部分客户端请求的地址,不包括请求的参数 |
|
getRequestURL() |
StringBuffer |
返回客户端请求的地址 |
测试JSP代码如下:
<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>'index.jsp'</title>
</head>
<body>
<div style="width: 600px">
<ul style="line-height:24px">
<li>客户使用的协议:<%=request.getProtocol() %>
<li>客户端发送请求的方法:<%=request.getMethod() %>
<li>客户端请求路径:<%=request.getContextPath() %>
<li>客户机IP地址:<%=request.getRemoteAddr() %>
<li>客户机名称:<%=request.getRemoteHost() %>
<li>客户机请求端口号:<%=request.getRemotePort() %>
<li>接爱客户信息的页面:<%=request.getServletPath() %>
<li>获取报头中User-Agent值:<%=request.getHeader("user-agent") %>
<li>获取报头中accept值:<%=request.getHeader("accept") %>
<li>获取报头中Host值:<%=request.getHeader("host") %>
<li>获取报头中accept-encoding值:<%=request.getHeader("accept-encoding") %>
<li>获取URI:<%= request.getRequestURI() %>
<li>获取URL:<%=request.getRequestURL() %>
</ul>
</div>
</body>
</html>
Cooike对象的使用
通过使用cookie可以标识用户身份,记录用户及密码,跟踪重复用户,cookie在服务器端生成并发送给浏览器,浏览将cookie的key-value保存到时某个指定的目录中,通过cookie对象的getCookies方法可以获取到所有的cooike对象集合,然后通过getName方法获取到指定名称的cookie,通过getValue方法可以获取到时cooike对象的值。将一个cookie发送到客户端可以使用response.addCookie方法。
Response对象的使用
Reponse代表的是对客户端的响应,将JSP容器处理过的对象传回到客户端,response对象只在JSP页面中有效,常用方法如下:
reponse对象相关常用方法 |
||
方法 |
返回值 |
相关说明 |
addHeader(String name,String value) |
void |
添加HTTP文件头,如果同名则覆盖 |
setHeader(Strinh name,String value) |
void |
设定指定名称的文件并头的值,如果存在则覆盖 |
addCookie(Cookie cookie) |
void |
向客户端添加一个cookie对象 |
sendError(int sc,String msg) |
void |
向客户端发送错误信息,例如404找不到 |
sendRedirect(String location) |
void |
发送请求,重定向到另一个页面 |
getOutputStream() |
ServletOutputStream |
获取客户端输出流 |
getBufferSize(int size) |
void |
设置缓冲区大小 |
Warning:重定向操作后,request中的属性全部失效,并且进入一个新的request作用域,地址栏地址为重定向后地址。处理HTTP文件头可以这样response.setHeader(“refresh”,”5”);设置网页5秒刷新一次.
Session对象的使用
Session对象是由服务器自动创建的与用户请求相关的对象,为每一个用户都生成一个对象,用于保存该用户信息,内部采用Map类来保存。常用方法如下:
session对象常用方法 |
||
方法 |
返回值 |
说明 |
getAttribute(String name) |
Object |
获得指定名字的属性 |
getAttributeNames() |
Enumeration |
获得所有属性对象 |
getCreationTime() |
long |
获得对象创建时间 |
getId() |
String |
获得唯一编号 |
getLastAccessedTime() |
long |
获得最后一次被操作的时间 |
getMaxInactiveInterval() |
int |
获得最大存活时间 |
isNew() |
boolean |
是否是一个新的对象 |
removeAttribute(String name) |
void |
删除这个对象 |
invalidate() |
void |
销毁session对象 |
setMaxInactiveInterval(int interval) |
void |
设置最大存活时间 |
setAttribute(String key,Object obj) |
void |
设置对象名及值 |
Application对象的使用
Application对象相当于一个全局对象,直到服务器关闭之前,都可以一址直使用。
相关常用方法如下:
application常用方法 |
||
方法 |
返回值 |
相关说明 |
getAttribute(String name) |
Object |
通过名字得到属性值 |
getAttributeNames() |
Enumeration |
获取所有对象使用的属性名 |
setAttribute(String name,Object obj) |
void |
设置对象的属性 |
getMajorVersion() |
int |
得到服务器的版本号 |
getServerInfo() |
String |
返回引擎相关信息 |
removeAttribute(String name) |
void |
删除指定对象 |
getRealPath() |
String |
得到真实路径 |
getInitParameter(String name) |
String |
获取指定name的初始值 |
例如访问应用程序的初始化参数,application对象访问应用程序初始化的两个方法:【1】getInitParameter(String name):返回一个已经命名的参数值。【2】getAttributeName():返回所有已经定义的应用程序初始化名称的枚举。Web.xml文件配置如下:
<context-param> <!-- 定义连接数据库URL -->
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/db_database</param-value>
</context-param>
<context-param> <!-- 定义连接数据库用户名 -->
<param-name>name</param-name>
<param-value>root</param-value>
</context-param>
<context-param> <!-- 定义连接数据库mim -->
<param-name>password</param-name>
<param-value>123</param-value>
</context-param>
然后通过application对象获取初始化参数:
<%
//获取初始化参数,与web.xml文件中内容对应
String url = application.getInitParameter("url");
String name = application.getInitParameter("name");
String password = application.getInitParameter("password");
out.println("URL: "+url+"<br>");
out.println("name: "+name+"<br>");
out.println("password: "+password+"<br>");
%>
Out对象的使用
Out对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用out输出数据时,需要用clear()方法清除缓冲区内容,重新开始操作。如果缓冲区内容已经提交,会报出IOException异常,使用clearBuffer()方法,即便已经提交,也能够访问该方法.相关方法如下:
out对象相关方法 |
||
方法 |
返回值 |
相关说明 |
clear() |
void |
清除缓冲区尚存的内容 |
clearBuffer() |
void |
清除当前缓冲区尚存的内容 |
flush() |
void |
刷新流 |
isAutoFlush() |
boolean |
检查当前是否是自动清空 |
getBuffer |
int |
获取缓冲区大小 |
pageContext对象
pageContext对象的作用是取得任何范围的参数,通过它可以获取JSP页面的out,request,response,session,application等对象。该对象创建和初始化都是由容器完成的。常用方法如下:
out对象相关方法 |
||
方法 |
返回值 |
相关说明 |
forward(String path) |
void |
将JSP重定向至另外一个页面 |
getAttribute(String name) |
Object |
获取属性值 |
getAttributeNamesInScope(int scope) |
Enumeration |
获取某范围的参数名称集合 |
getRequest() |
ServletRequest |
获取Request对象 |
getResponse() |
ServletResponse |
获取Response对象 |
getOut() |
JspWriter |
获取Out对象 |
getSession() |
HttpSession |
获取Session对象 |
getPage() |
Object |
获取Page对象 |
setAttribute(String name,Object value) |
void |
设置属性和值 |
config对象
Config对象主要用于读取web.xml配置文件信息,通过pageContext对象的getServletConfig()方法可以获取一个config对象,当一个Servlet初始化时,容器把某些信息通过config对象传递给这个Servlet.相关方法如下:
out对象相关方法 |
||
方法 |
返回值 |
相关说明 |
getInitParameter(String name) |
String |
获取服务器指定参数的初始值 |
getInitParameterNames() |
Enumeration |
获取服务器所有初始参数名称 |
getServletContext() |
ServletContext |
获取Servlet上下文 |
getServletName() |
String |
获取Servlet服务器名 |
page对象的使用
Page对象代表JSP本身,只有在JSP页面才是合法的。相关方法如下:
page对象相关方法 |
||
方法 |
返回值 |
相关说明 |
getClass() |
Object |
返回当前对象的类 |
hashCode() |
Object |
返回些对象的哈希码 |
toString()' |
String' |
转换成字符串对象 |
equals(Object obj) |
boolean |
比较与指定对象是否相等 |
Exception对象
Exception对象是用来获取异常信息的,只有在isErrorPage=”true”的页面中才能免使用。相关方法如下:
exception对象相关方法 |
||
方法 |
相关说明 |
|
getMessage() |
返回异常信息字符串 |
|
getLocalizedmessage() |
返回本地化异常错误 |
|
toString() |
信息描述 |
|
fillInStackTrace() |
重写异常错误的栈执行轨迹 |