一、request内置对象
定义:request内置对象是最常用的对象之一,它代表的是java.servlet.HttpServletRequest类的对象。request内置对象中包含了有关浏览器请求的信息,并提供了多个用于获取cookie、header以及session内数据的方法。
request内置对象的常用方法实例:
<%@ page contentType="text/html;charset=GBK" %>
<html>
<head><title> request 内置对象的实例 </title></head>
<body>
<form aciton="request.jsp">
<br>Get request results:
<br><input type="text" name="myname">
<br><input type="submit" name="get value">
</form>
返回HTTP 请求信息中使用的方法名称:<%=request.getMethod()%>
<br>
返回请求信息中调用Servlet 的URL 部分:<%=request.getServletPath()%>
<br>
返回HTTP GET 请求信息中URL 之后的查询字符串:<%=request.getQueryString()%>
<br>
返回请求实体的MIME 类型:<%=request.getContentType()%>
<br>
返回请求信息中的协议名名字和版本号:<%=request.getProtocol()%>
<br>
有关任何路径信息:<%=request.getPathInfo()%>
<br>
返回接受请求的服务器主机:<%=request.getServerName()%>
<br>
返回服务器的端口号:<%=request.getServerPort()%>
<br>
返回提交请求的客户机的规范名字:<%=request.getRemoteHost()%>
<br>
返回提交请求的客户机的IP地址:<%=request.getRemoteAddr()%>
<br>
返回请求中使用的模式(协议)名字:<%=request.getScheme()%>
<br>
返回这个request值,提交过来的值:<%=request.getParameter("myname")%>
</body>
</html>
二、response内置对象
定义:response对象与request对象相对应,它是用于响应客户请求,向客户端输出信息。response是javax.servlet.HttpServletResponse类的对象。
response内置对象的页面重定向实例:
<%@ page language="java" contentType="text/html;charSet=GBK" %>
<html>
<body>
<center><h3>response.sendRedirect()使用例子</h3></center>
<form action="index4.jsp">
<table border=1>
<tr>
<td>
<select name="pg">
<option value=0>本页</option>
<option value=1>hello页面</option>
<option value=2>goodbye页面</option>
</select>
</td>
</tr>
<tr><td><input type="submit" value="提交"></td></tr>
</table>
</form>
<%
String pg = request.getParameter("pg"); //获取传递参数pg
if("1".equals(pg)) //如果pg等于1
response.sendRedirect("hello.jsp"); //则页面重定向为hello.jsp
else if("2".equals(pg)) //如果pg等于2
response.sendRedirect("goodbye.jsp"); //则页面重定向为goodbye.jsp
else //否则不进行页面重定向,即还显示本页
out.println("没有进行页面重定向");
%>
</body>
</html>
三、session内置对象
定义:session是与请求有关的会话期,它是java.servlet.http.HttpSession类的对象,用来表示和存储当前页面的请求信息。
session内置对象的问题回答操作实例:
1.第一个页面仅仅包含了一个要求输入用户名的HTML表单:
<%@ page contentType="text/html;charSet=GBK" %>
<html>
<body>
<center><h3>用户名输入页面</h3></center>
<!—提交表单 -->
<form action="session2.jsp">
<table border="1" align="center">
<tr><td>用户名:<input type="text" name="username" size="10"></td></tr>
<tr><td align="center"><input type="submit" value="提交"></td></tr>
</table>
</form>
</body>
</html>
2.第二个页面需要通过request对象获取第一个页面中的username参数值,并把它保存在session中。session对象是以哈希表存储信息的。
<%@ page contentType="text/html;charSet=GBK" %>
<html>
<body>
<center><h3>回答问题页面</h3></center>
<%
String username = request.getParameter("username"); //获得传递参数username
session.setAttribute("theusername",username); //把用户名保存在session中,String可以当着对象
%>
<p>您的用户名为:<%=username%><p>
<!—提交表单 -->
<form action="session3.jsp">
<table border="1" align="center">
<tr><td>您喜欢吃什么:<input type="text" name="food" size="10"></td></tr>
<tr><td align="center"><input type="submit" value="提交"></td></tr>
</table>
</form>
</body>
</html>
3.第三个页面主要任务是显示回答结果。
<%@ page contentType="text/html;charSet=GBK" %>
<html>
<body>
<center><h3>显示答案</h3></center>
<%! String food="";%>
<%
food = request.getParameter("food"); //取得food参数值
String name = (String)session.getValue("theusername"); //从session取出关键字为theusername的对象
%>
您的用户名:<%=name%>
<br>您喜欢吃:<%=food%>
</body>
</html>
四、page内置对象
定义:page对象有点类似于Java编程中的this指针,就是指当前JSP页面本身。page是java.lang.Object类的对象。
page的常用方法实例:
<%@ page language="java" contentType="text/html;charSet=GBK" %>
<%@ page import="java.lang.Object" %>
<html>
<body>
<center><h3>Page内置对象的实例</h3></center>
<%!Object obj; %> <!-- 对象申明 -->
getClass:<%=page.getClass() %>
<br>hashCode:<%=page.hashCode()%>
<br>toString:<%=page.toString()%>
<br>equals:<%=page.equals(obj) %>
<br>equlas2:<%=page.equals(this) %>
</body>
</html>
五、application内置对象
定义:application是javax.servlet.ServletContext类对象的一个实例,用于实现用户之间的数据共享(多使用于网络聊天系统)。
application内置对象的网站计数器实例:
<%@ page contentType="text/html;charSet=GBK" %>
<html>
<h4>获得application信息</h4>
<br>ServletInfo:<%=application.getServerInfo()%>
<br>application.jsp real path: <%=application.getRealPath("/application.jsp")%>
<br>HelloServlet Real Path: <%=application.getRealPath("/servletsample/HelloServlet")%>
<br>Major Version: <%=application.getMajorVersion()%>
<br>get MIME: <%=application.getMimeType("/servletsample/demo.htm")%>
<br>getResource: <%=application.getResource("/HelloJSP.jsp")%>
<%
out.println("<br><h4>设置数值</h4>");
application.setAttribute("name","zzb"); //把字符串“zzb”对象保存在application中
application.setAttribute("counter","1"); //把字符串值“1”保存在application中
out.println("set name=zzb");
out.println("<br>set counter=1");
%>
</body>
</html>
六、out内置对象
定义:out对象是在JSP开发过程中使用得最为频繁的对象,但使用也是最为简单的。
out对象的常用方法如下:
print():在页面中打印出字符串信息,不换行;
println():在页面中打印出字符串信息,并且换行;
clear():清除掉缓冲区中尚存在的内容。
clearBuffer():此方法清除掉当前缓冲区中尚存在的内容。
flush():清除掉数据流。
getBufferSize():返回缓冲区的内存大小,单位为字节流。如果不进行缓冲区的设置,大小为0。
getRemaining():此方法返回缓冲区还剩下多少字节数可以使用。
isAutoFlush():检查当前缓冲区是设置为自动清空,还是满了就抛出异常。
close():关闭输出流。
七、exception内置对象
定义:exception内置对象是用来处理页面出现的异常错误,它是java.lang.Throwable类的一个对象。前面已经讲过,在实际JSP网站开发过程中,通常是在其页面中加入page指令的errorPage属性来将其指向一个专门处理异常错误的页面。
八、config内置对象
定义:config内置对象是ServletConfig类的一个实例。在Servlet初始化的时候,JSP引擎通过config向它传递信息。这种信息可以是属性名/值匹配的参数,也可以是通过ServletContext对象传递的服务器的有关信息。
九、pageContext内置对象
定义:pageContext对象是一个比较特殊的对象。它相当于页面中所有其他对象功能的最大集成者,即使用它可以访问到本页面中所有其他对象,例如前面已经描述的request、response以及application对象等。
pageContext对象的简单实例:
<html>
<body>
<%
request.setAttribute(“MyName”,”zzb1”); //把MyName保存在request范围中
session.setAttribute(“MyName”,”zzb2”); //将MyName再保存再session范围中
application.setAttribute(“MyName”,”zzb3”); //将MyName保存在application范围中
%>
request: <%=pageContext.getRequest().getAttribute(“MyName”)%>
<br>session: <%=pageContext.getSession().getValue(“MyName”)%>
<br>application: <%=pageContext.getServletContext().getAttribute(“MyName”)%>
</body>
</html>