15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > Java Web实验报告:HTTP的响应

Java Web实验报告:HTTP的响应

时间:2023-10-06 17:18:02 | 来源:网站运营

时间:2023-10-06 17:18:02 来源:网站运营

Java Web实验报告:HTTP的响应:第二部分 HTTP的响应

一、实验目的

1.通过HttpServletResponse接口中的相应方法设置响应头;

2.通过response.ContentType()方法设置响应内容类型;

3.通过response.sendRedirect()方法实现响应重定向,掌握它与请求转发之间的区别;

4.通过response.setStaus()方法设置状态码。

二、实验原理

由服务器向客户发送的HTTP消息称为HTTP响应。HTTP响应由三部分组成:状态行、响应头和响应数据。在Servlet中,可以通过HttpServletResponse的response对象的相应方法可以向客户端发送状态码,设置响应内容的类型,实现响应重定向等功能。

三、实验内容与步骤

新建一个名为RefreshServlet的Servlet,通过方法

response.setHeader("refresh","3");实现每3秒刷新一次页面

package com.demo;import java.io.IOException;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.Date;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet(name = "RefreshServlet", urlPatterns = {"/RefreshServlet"})public class RefreshServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=gb2312"); response.setHeader("refresh","3"); PrintWriter out = response.getWriter(); Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd a HH:mm:ss"); String s = sdf.format(date); out.println("<html>"); out.println("<body>"); out.println("<h3 align=/"center/">每3秒钟刷新一次页面</h3><p>"); out.println("<h3 align=/"center/">现在的时间是:"+s+"</h3><p>"); out.println("</body>"); out.println("</html>"); } }
图2-8 Servlet实现页面刷新
2.通过将响应内容类型设置为“application/msword”,输出以word形式发送给客户浏览器

(1)新建一个名为WordServlet的Servlet

package com.demo;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet(name = "WordServlet", urlPatterns = {"/WordServlet"})public class WordServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setHeader("Content-Encoding","gb2312"); //设置响应的内容类型 response.setContentType("application/msword;charset = UTF-8"); PrintWriter out = response.getWriter(); out.println("这是一个word文件,你可以在该文件上编辑实现word文档的功能"); }}(2)运行WordServlet.java文件,下载“WordServlet”的文件,并用“Microsoft Office Word”打开该文件

3.编写hobby.html,并根据用户填写的信息,在Servlet中实现响应重定向

新建一个名为hobby的html文件

<html> <head> <title>兴趣爱好</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <form action="hobby.do" method="get"> 姓名:<input type="text" name="name"><br> 班别:<input type="text" name="class"><br> <p>兴趣: <input type="radio" name="hobby" value="1">编程 <input type="radio" name="hobby" value="2">新闻 <input type="radio" name="hobby" value="3">游戏 <br> <input type="submit" value="提交"> <input type="reset" value="重置"> </body></html>
图2-9 hobby.html
(2)编写一个名为HobbyServlet的Servlet,运行hobby.html,填写信息后单击“提交”按钮,Servlet源代码如下:

package com.demo;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet(name = "HobbyServlet", urlPatterns = {"/hobby.do"})public class HobbyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String hobby = request.getParameter("hobby"); //根据兴趣决定响应重定向的网站 if(hobby!=null&&hobby.equals("1")){ response.sendRedirect("http://www.csdn.net/?ref=toolbar"); }else if(hobby!=null&&hobby.equals("2")){ response.sendRedirect("http://news.163.com/"); }else if(hobby!=null&&hobby.equals("3")){ response.sendRedirect("http://www.4399.com/"); }else {//如果没有填写兴趣选项,则向客户端发送状态码和错误信息 response.sendError(404,"没有填写兴趣选项"); } } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
图2-10 跳转至CSND网页(当兴趣选项为“编程”时)
(3)再次运行hobby.html,省缺填写“兴趣选项”后单击“提交”按钮,查看运行结果,并思考(提示:与 HobbyServlet中的语句response.sendError(404,"没有填写兴趣选项");有关)

图2-11 跳转至网易新闻网页(当兴趣选项为“新闻”时)
图2-12 跳转至4399小游戏网页(当兴趣选项为“游戏”时)
(1)思考响应重定向与请求转发的不同之处

1、重定向是两次请求,转发是一次请求,因此转发的速度要快于重定向

2、重定向之后地址栏上的地址会发生变化,变化成第二次请求的地址,转发之后地址栏上的地址不会变化,还是第一次请求的地址

3、转发是服务器行为,重定向是客户端行为。重定向时浏览器上的网址改变 ,转发是浏览器上的网址不变

4、重定向是两次request,转发只有一次请求

5、页面显示不同,当使用重定向时,浏览器中所显示的URL会变成新页面的URL,,而当使用转发时,该URL会保持不变

四、实验总结

关键词:响应,报告,实验

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭