Servlet请求头response应用简单案例

Servlet请求头response应用简单案例:访问AServlet重定向到BServlet,5秒后跳到CServlet,并显示图片:

AServlet

 1 package cn.yzu;
 2 import java.io.IOException;
 3 import javax.servlet.ServletException;
 4 import javax.servlet.http.HttpServlet;
 5 import javax.servlet.http.HttpServletRequest;
 6 import javax.servlet.http.HttpServletResponse;
 7 public class AServlet extends HttpServlet {
 8
 9     public void doGet(HttpServletRequest request, HttpServletResponse response)
10             throws ServletException, IOException {
11         System.out.println("AServlet被访问到。。。。。。。。。");
12         //重定向请求头,可用一个response.sendRedirect("BServlet")代替;
13         response.setStatus(302);
14         response.setHeader("Location", "BServlet");
15
16         //取消缓存请求头,3个组合适用于所有浏览器,可用<meta>标签代替
17         response.setHeader("pragma", "no-cache");
18         response.setHeader("cache-control", "no-cache");
19         response.setDateHeader("expires", -1);
20     }
21 }

BServlet

 1 package cn.yzu;
 2
 3 import java.io.IOException;
 4
 5 import javax.servlet.ServletException;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9
10 public class BServlet extends HttpServlet {
11     public void doGet(HttpServletRequest request, HttpServletResponse response)
12             throws ServletException, IOException {
13         System.out.println("BServlet被访问到。。。。。。。。。");
14         System.out.println("3秒钟后自动跳转到CServlet");
15         //自动刷新请求头
16         response.setHeader("Refresh", "3;URL=CServlet");
17     }
18 }

CServlet

 1 package cn.yzu;
 2
 3 import java.io.FileInputStream;
 4 import java.io.IOException;
 5
 6 import javax.servlet.ServletException;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10
11 import org.apache.commons.io.IOUtils;
12
13 public class CServlet extends HttpServlet {
14     public void doGet(HttpServletRequest request, HttpServletResponse response)
15             throws ServletException, IOException {
16         System.out.println("CServlet被访问到。。。。。。。。。");
17         //response响应字节流(万能的,也可以输出字符)
18         FileInputStream stream=new FileInputStream("C:/Users/Administrator/Desktop/UI/头像/Lebron.jpeg");
19         //IO小工具,Apache提供,将输入流转换成字节数组
20         byte bt[]=IOUtils.toByteArray(stream);
21         //注:绝对不可以和response.getWriter()同时使用,否则会抛IllegalStateException异常!!!!!!!
22         response.getOutputStream().write(bt);
23
24     }
25
26 }

运行结果:

注:IO小工具jar包:

时间: 2024-10-17 08:37:38

Servlet请求头response应用简单案例的相关文章

Servlet请求头信息

java代码: 1 package servlet_pack; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 import java.util.Enumeration; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.annotation.WebServlet; 9 import javax.servlet.http.HttpSer

HTTP 请求头中的 X-Forwarded-For

我一直认为,对于从事 Web 前端开发的同学来说,HTTP 协议以及其他常见的网络知识属于必备项.一方面,前端很多工作如 Web 性能优化,大部分规则都跟 HTTP.HTTPS.SPDY 和 TCP 等协议的特点直接对应,如果不从协议本身出发而是一味地照办教条,很可能适得其反.另一方面,随着 Node 的发展壮大,越来越多的前端同学开始写服务端程序,甚至是框架( ThinkJS 就是这样由前端工程师开发,并有着众多前端工程师用户的 Node 框架),掌握必要的网络知识,对于服务端程序安全.部署.

使用PHP得到所有的HTTP请求头

作者:老王在PHP里,想要得到所有的HTTP请求头,可以使用getallheaders方法,不过此方法并不是在任何环境下都存在,比如说,你使用fastcgi方式运行PHP的话,就没有这个方法,所以说我们还需要考虑别的方法,幸运的是$_SERVER里有我们想要的东西,它里面键名以HTTP_开头的就是HTTP请求头:$headers = array(); foreach ($_SERVER as $key => $value) {     if ('HTTP_' == substr($key, 0,

Ajax与ashx异步请求的简单案例

Ajax与ashx异步请求的简单案例: 前台页面(aspx): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=

一个简单的Web服务器-支持Servlet请求

上接 一个简单的Web服务器-支持静态资源请求,这个服务器可以处理静态资源的请求,那么如何处理Servlet请求的呢? 判断是否是Servlet请求 首先Web服务器需要判断当前请求是否是Servlet请求. 像Tomcat,通过解析HTTP报文拿到请求url后,就可以根据web.xml来查找是否有匹配的Servlet,如果有匹配则认定为是一个有效的Servlet请求,然后将request,response传给对应的servlet的service()方法. 这里既然要实现一个简单的Web服务器,

LoadRunner获取WEB请求头信息的方法:REQUEST、RESPONSE(引)

今天发现LoadRunner两个"内置变量": 1.REQUEST,用于提取完整的请求头信息. 2.RESPONSE,用于提取完整的响应头信息. 响应头信息用可用其它方式实现,但请求头信息还真不知道可以这样拿到.太隐蔽了吧! 注意,这两个变量仅在请求前使用web_save_header注册使用.示例如下: Action(){web_set_max_html_param_len("262144");// 默认最大长度为256web_reg_save_param(&qu

请求头(request)和响应头(response)

说一说常见的请求头和相应头都有什么呢? 1)请求(客户端->服务端[request]) GET(请求的方式) /newcoder/hello.html(请求的目标资源) HTTP/1.1(请求采用的协议和版本号) Accept: */*(客户端能接收的资源类型) Accept-Language: en-us(客户端接收的语言类型) Connection: Keep-Alive(维护客户端和服务端的连接关系) Host: localhost:8080(连接的目标主机和端口号) Referer: h

4、处理方法中获取请求参数、请求头、Cookie及原生的servlet API等

1.请求参数和请求头 使用@RequestParam绑定请求参数,在处理方法的入参处使用该注解可以把请求参数传递给请求方法 —— value :参数名 —— required : 是否必须,默认为true,表示请求参数中必须包含对应的参数,如果不存在,则抛出异常     例如: @RequestMapping(value="/param") public String testParam(@RequestParam(value="name", required=tr

Servlet请求和响应和Cookie

1.Servlet请求操作 通过前面的学习我们能够创建并运行一个简单的Servlet 程序,完成浏览器和服务器的简单交互,但是我们编写的Servlet 代码是没有对浏览器的请求进行处理的.现在我们开始学习 如何使用Servlet 进行浏览器请求的处理. 1)Request 对象 问题: 浏览器发起请求到服务器,会遵循HTTP 协议将请求数据发送给服务器. 那么服务器接受到请求的数据改怎么存储呢?不但要存,而且要保证完成性. 解决: 使用对象进行存储,服务器每接受一个请求,就创建一个对象专门的存储