JSP内置对象:request对象、 response对象、out对象、application对象
发布日期:2021-05-07 08:58:02 浏览次数:22 分类:精选文章

本文共 2775 字,大约阅读时间需要 9 分钟。

Request对象、Response对象、Out对象与Application对象

Request对象

在Java EE开发中,Request对象是HttpServletRequest类的实例,主要用于接收客户端发送的请求信息。它可以获取请求的头部信息、请求方式、参数名称和值、Cookie信息等。

Request对象的主要方法

getParameter方法是获取客户端提交信息最常用的方法。它接收一个参数名称作为参数,返回对应的参数值。需要注意的是,参数名区分大小写,必须与HTML源代码中参数名完全一致。

  • getParameter方法适用于textpasswordhiddenradiosubmit等类型的<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%>位访问本站的客户

通过以上方法,开发者可以充分利用RequestResponseOutApplication对象,实现高效的Web开发。

上一篇:【数算-23】赫夫曼树与赫夫曼编码
下一篇:vue(7):表单输入绑定

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月11日 19时15分56秒