我是靠谱客的博主 善良雪糕,这篇文章主要介绍JSP内置对象:request对象、 response对象、out对象、application对象,现在分享给大家,希望可以做个参考。

request对象

request对象是HttpServletRequest类的实例,作用是接收客户端发送来的请求信息。请求信息的内容包括请求的头部信息、请求的方式、请求的参数名称和参数值、Cookie信息、客户端浏览信息等

request对象主要方法
在这里插入图片描述
getParameter
request对象获取客户端提交信息最常用的方法是getParameter(String name),其中参数name区分大小写,需要与HTML源代码出现的参数名完全相同
(1)getParameter方法只能读取表单提供的单个值,通常在类型为text、password、hidden、radio、submit的input标签、textarea标签和select标签(设置为单选列表)中使用
(2)getParameter方法返回值为String类型。如果参数存在,但没有相应的值,则返回空的String;如果GET或POST报文中没有参数,则返回null

getParameterValues
(1)获取指定参数的成组信息,如果同一参数名有可能在表单数据中出现多次,则应该使用getParameterValues方法。通常用于复选框和多选列表
(2)getParameter方法返回值为字符串数组。如果参数名不存在,则返回值为null;如果参数名只有单个值,则返回只有一个元素的数组

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//info.jsp <form action="show.jsp" method="post"> 用户名: <input type="text" name="user"><br> 爱好:<input type="checkbox" name="hobby" value="阅读">阅读 <input type="checkbox" name="hobby" value="音乐">音乐 <input type="checkbox" name="hobby" value="运动">运动 <br> <input type="submit" value="提交"> </form> //show.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
功能:跳转到另一个页面
格式:response.sendRedirect(String location)
该方法向客户端发送一个页面重定向的HTTP报文头浏览器得到次报文头信息后,向指定URL发出新的请求,从而引起页面跳转。在使用sendRedirect方法之前不能有信息输出,否则会引起异常

sendRedirect与forward指令的区别:

  • forward指令只能在本网站中跳转,且跳转后,在地址栏中任然显示以前页面的URL,跳转前后的两个页面属于同一个request,用户程序可以用request来设置或传递用户程序数据
  • sendRedirect方法可以跳转到任何URL,跳转后,在地址栏中显示跳转后页面的URL,跳转前后的两个页面不属于同一个request

setCharacterEncoding
设置响应字符串编码,该方法设置字符串编码的优先级高于setContentType方法

复制代码
1
2
3
request.setCharacterEncoding("utf-8"); //表示以utf-8格式接收表单提交过来的数据 String user = request.getParameter("user");

使用setContentType和setHeader方法设置响应头信息

  • setContentType方法可以动态改变ContentType的属性值。ContentType属性值包括两部分,第一部分指定响应内容的类型;第二部分指定字符编码。响应内容类型可以取text/html、text/plain、application/vnd.ms-excel等这些不同的MIME类型通知浏览器用什么样的程序打开相应内容

示例: 通知浏览器用excel打开页面
data.jsp

复制代码
1
2
3
4
5
6
<p>请选择打开info.txt文件的方式</p> <form action="ShowInfo.jsp" method="post"> <input type="submit" name="word" value="word"><br> <input type="submit" name="excel" value="excel"><br> </form>

showInfo.jsp

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<% 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")) {//设置Word类型。 response.setContentType("application/msword;charset=utf-8"); } if (str2.equals("excel")) {//设置excel类型。 response.setContentType("application/vnd.ms-excel;charset=utf-8"); } %> <jsp:include page="info.txt"></jsp:include>

在这里插入图片描述
注: 试了好多次,一直是保存jsp文件,一直以为是不是代码错了,结果是浏览器的问题,换了旧版的ie终于成功了,如上图;除此之外如果格式设置的不对也不能打开(就是打开word与excel有问题)
示例2

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
//data.jsp <form action="ShowInfo.jsp" method="post"> <input name="user" type="text"> <input type="submit" value="提交"> </form> //ShowInfo.jsp <% request.setCharacterEncoding("utf-8"); String name = request.getParameter("user"); response.setContentType("application/vnd.ms-excel;charset=utf-8"); %> <%=name%>

注:不能使用out.print输出,该方法是往网页中输出

  • setHeader可以设置新的响应头和值

示例: 设置定时刷新,每隔5秒刷新一次

复制代码
1
2
<% response.setHeader("Refresh",5) %>

out对象

out对象向客户端发送数据,发送的内容是浏览器需要显示的内容
常用方法

方法名说明
print()输出不同数据类型的数据
flush()直接将目前暂存于缓冲区的数据输出
close()关闭输出流
clear()清除缓冲区中的数据,若缓冲区已经是空的,则会产出异常
clearBuffer()清除缓冲区中的数据,若缓冲区已经是空的,不会产出异常
getBufferSize()返回缓冲区的大小
getRemaining()返回缓冲区剩余空间的大小

out对象缓冲区的默认大小为8kb

application对象

application对象用于多个程序或多个用户之间共享数据。服务器启动后就会产生这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。与session不同,所有用户的application对象都是同一个,即所有客户共享这个内置的application对象

常用方法

方法名说明
setAttribute()设置指定名称的application属性值
getAttribute()返回指定名称的application属性值
removeAttribute()删除指定名称的application属性值
getRealPath(url)返回指定url的实际路径,常用于文件操作

示例: 获取文件真实路径

复制代码
1
2
3
4
5
6
7
<% String path = application.getRealPath("info.txt"); out.print(path+"<br>"); File f = new File(path); out.print(f.getName()); %>

示例: 页面访问计数器

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
<% Integer number = (Integer) application.getAttribute("count"); if (number == null) { number = new Integer(1); application.setAttribute("count", number); } else { number++; application.setAttribute("count", number); } %> 您是第<%=(Integer) application.getAttribute("count")%> 位访问本站的客户

最后

以上就是善良雪糕最近收集整理的关于JSP内置对象:request对象、 response对象、out对象、application对象的全部内容,更多相关JSP内置对象:request对象、内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(102)

评论列表共有 0 条评论

立即
投稿
返回
顶部