
本文共 2775 字,大约阅读时间需要 9 分钟。
Request对象、Response对象、Out对象与Application对象
Request对象
在Java EE开发中,Request
对象是HttpServletRequest
类的实例,主要用于接收客户端发送的请求信息。它可以获取请求的头部信息、请求方式、参数名称和值、Cookie信息等。
Request对象的主要方法
getParameter
方法是获取客户端提交信息最常用的方法。它接收一个参数名称作为参数,返回对应的参数值。需要注意的是,参数名区分大小写,必须与HTML源代码中参数名完全一致。
getParameter
方法适用于text
、password
、hidden
、radio
、submit
等类型的<input>
标签、textarea
标签以及<select>
标签(设置为单选列表)的表单字段。- 返回值为
String
类型。如果参数不存在或没有对应值,返回空字符串;如果请求中没有参数,则返回null
。
getParameterValues
方法用于获取指定参数的成组信息。通常用于处理多选框和多选列表。该方法返回一个字符串数组。如果参数不存在,则返回null
;如果参数只有单个值,则返回一个包含单一元素的数组。
示例
// info.jsp<%request.setCharacterEncoding("utf-8");String user = request.getParameter("user");String[] hobby = request.getParameterValues("hobby");out.print("用户名:" + user + "\n");for (String h : hobby) { out.println("爱好:" + h);}%>
Response对象
Response
对象是HttpServletResponse
类的实例,主要用于对客户端请求做出响应。它可以设置HTTP响应头信息、向客户端输出数据、设置Cookie等。
Response对象的主要方法
sendRedirect
方法用于跳转到指定页面。它向客户端发送一个重定向的HTTP响应头,使得浏览器向新的URL发送新的请求。注意:在使用sendRedirect
之前,不能对响应流进行任何输出,否则会引发异常。
setCharacterEncoding
方法用于设置响应字符串的编码格式,具有优先级高于setContentType
方法。
setContentType
方法用于设置响应内容类型(MIME类型)。浏览器根据内容类型判断如何打开响应内容。例如,text/html
类型适用于网页内容,application/vnd.ms-excel
类型适用于Excel文件。
setHeader
方法可以设置新的响应头信息。例如,可以通过该方法设置定时刷新的响应头。
示例
// ShowInfo.jsp<%request.setCharacterEncoding("utf-8");String str1 = request.getParameter("word");String str2 = request.getParameter("excel");if (str1 == null) { str1 = "";}if (str2 == null) { str2 = "";}if (str1.equals("word")) { response.setContentType("application/msword;charset=utf-8");}if (str2.equals("excel")) { response.setContentType("application/vnd.ms-excel;charset=utf-8");}%>
Out对象
Out
对象用于向客户端输出数据。这类似于System.out.println
,但其输出流是浏览器可见的。Out
对象支持多种输出方法,并提供了缓冲区功能。
Out对象的常用方法
print()
方法用于输出不同数据类型的数据。
flush()
方法用于立即将缓冲区中的数据输出。
close()
方法用于关闭输出流。
clear()
方法用于清除缓冲区中的数据。如果缓冲区为空,会抛出异常。
clearBuffer()
方法用于清除缓冲区中的数据,不会抛出异常。
getBufferSize()
方法返回缓冲区的大小。
getRemaining()
方法返回缓冲区剩余空间的大小。
缓冲区的默认大小为8KB。
示例
<%out.print("欢迎访问我们的网站!");out.println("地址:" + request.getRequestURI());%>
Application对象
Application
对象是ServletContext
接口的实现类,用于在多个程序或多个用户之间共享数据。服务器启动后会创建一个Application
对象,所有访问同一网站的页面都会共享这个对象,直到服务器关闭。与Session
不同,Application
对象是全局性的,所有用户共享同一个对象。
Application对象的常用方法
setAttribute()
方法用于设置指定名称的Application
属性值。
getAttribute()
方法用于获取指定名称的Application
属性值。
removeAttribute()
方法用于删除指定名称的Application
属性值。
getRealPath()
方法用于获取指定路径的实际文件路径,常用于文件操作。
示例
<%String path = application.getRealPath("info.txt");out.print(path + "");File f = new File(path);out.print(f.getName());%>
页面访问计数器
<%Integer number = (Integer) application.getAttribute("count");if (number == null) { number = new Integer(1); application.setAttribute("count", number);} else { number++; application.setAttribute("count", number);}%>您是第<%=number%>位访问本站的客户
通过以上方法,开发者可以充分利用Request
、Response
、Out
和Application
对象,实现高效的Web开发。
发表评论
最新留言
关于作者
