JSP
网页应用程序开发
网页应用程序开发
教学目的:了解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") %>
博主 in 教程 01:21下午 9月 29, 2012
Tags: 教学