JSP

网页应用程序开发

JSP教学04 内置对象

教学目的:了解JSP内置对象(由JSP引擎实例化的对象,可以在JSP页面中直接使用)

4.1 request对象

request对象用于获取客户端提交的请求信息

类型:javax.servlet.ServletRequest

常用方法:

getParameter(String name),获取请求信息的值(来自表单域或URL参数)。

例:显示用户提交的名字,在表单中添加文本域username和提交按钮,在页面中添加代码段。

<%
String str = request.getParameter("username");
if (str == null)
    str = "朋友";
%>
<h1>欢迎你,<%= str %>!</h1>

getRemoteAddr(),获取客户端的IP地址

例:显示访问者的IP地址

你的IP地址是<%= request.getRemoteAddr() %>。

setCharacterEncoding(String env),设置请求信息的字符编码(例如"gb2312"或"utf-8")。

例:如果你在文本域中输入中文,上面的例子将显示乱码,因为客户端提交的请求信息默认是使用西文字符编码的,添加以下代码即可解决此问题:

request.setCharacterEncoding("utf-8");

补充:以上办法只适用于以表单提交(POST方法)的中文信息,对以在网址中附带参数提交(GET方法)的中文信息是无效的。这里补充一个麻烦些但更通用的办法:先将用getParameter方法获取的字符串以标准西文字符编码转为字节数组,再将此数组用中文编码转为字符串

byte b[] = str.getBytes("iso-8859-1");
str = new String(b, "utf-8");

4.2 response对象

response对象用于向客户端发送响应信息

类型:javax.servlet.ServletResponse

常用方法:

setContentType(String type),设置响应信息的类型(当与JSP页面的page指令设置的类型不同时才需要设置)

例:将当前页面内容保存为Word文档

将本页面保存为<a href="?save=yes">Word文档</a>
<%  
String save = request.getParameter("save");
if (save != null) {
    if (save.equals("yes"))
        response.setContentType("application/msword;charset=utf-8");
}
%>

setHeader(String name, String value),设置响应信息的HTTP头的值

例:添加自动刷新页面的的HTTP头 ,使客户端浏览器每5秒刷新一次当前页面

<%@ page import="java.util.*" %>
<%  
response.setHeader("Refresh", "5");
%>
现在时间:<%= new Date() %>

sendRedirect(String location),发送重定向到新页面的地址

例:用户输入特定的内容如“会员某某某”可进入特定的页面

<%  
if (str.startsWith("会员"))
    response.sendRedirect("ch4main.jsp");
%>

4.3 session对象

session对象即客户端与服务器的一次会话,从客户端访问服务器的一个应用程序开始,到客户端与服务器断开连接为止(用户关闭了浏览器,或者未关闭浏览器但长时间未与服务器进行交互)

类型:javax.servlet.http.HttpSession

常用方法:

getId(),获取会话的ID号

例:各页面添加显示会话的ID号,在同一会话过程中ID号将保持一致。

本次会话的ID号:<%= session.getId() %>

setAttribute(String name, Object value),设置属性的值(该方法为其他对象指定名称并绑定到session对象)

例:将用户输入的名字保存为会话级属性

<%  
session.setAttribute("username", str);
%>

getAttribute(String name),获取属性的值(该方法返回session对象所绑定的指定名称的对象)

例:在其他页面显示用户输入的名字

当前用户:<%= (String)session.getAttribute("username") %>

4.4 out对象

out对象用于向客户端输出数据

类型:javax.servlet.jsp.JspWriter

常用方法:

print(...),输出数据

println(...),输出单行数据

newLine(),输出换行符

4.5 application对象

application对象由访问应用程序的所有客户端共享。从服务启动开始,到服务关闭为止

类型:javax.servlet.ServletContext

常用方法:

getRealPath(String path),获取应用程序所在的真实路径(传入参数为虚拟路径)

例:获取网站根目录的真实路径

根目录真实路径:<%= application.getRealPath("/") %>

setAttribute(String name, Object value),设置属性的值

例:将用户输入的名字保存为应用程序级属性

<%  
application.setAttribute("username", str);
%>

getAttribute(String name),获取属性的值

例:使所有访问者查看最近来访者输入的名字

最近来访用户:<%= (String)application.getAttribute("username") %>

评论:

发表评论:
该文章禁用评论功能。