http协议的部分应用

http协议的部分应用_第1张图片

http协议的部分应用_第2张图片

http协议的部分应用_第3张图片

 

http协议的部分应用_第4张图片

http协议的部分应用_第5张图片

 

http协议的部分应用_第6张图片

referer:

http协议的部分应用_第7张图片

package cn.hncu.servlets;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ShowMsgServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		String str = "";
		// 获取浏览器发送的HTTP协议请求头中的"Refer"信息
		String refer = req.getHeader("Referer");
		System.out.println(refer);
		if (refer == null) {// 直接在浏览器输入目标地址的
			str = "要从广告页面点查看,才能浏览该图片页面";
		} else {
			if (refer.contains("127.0.0.1")) {
				str = "
"; str += "
"; str += "
"; str += "
"; } else { str = "从别的网站过来的,照样不能看到图片"; } } // 利用HTTP协议向浏览器发送内容类型 resp.setHeader("Content-Type", "text/html;charset=utf-8"); // resp.setContentType("text/html;charset=utf-8"); PrintWriter pw = resp.getWriter(); pw.println(""); pw.println(str); pw.println(""); } }

 

GZIP 压面压缩:

http协议的部分应用_第8张图片

 

package cn.hncu.servlets;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.zip.GZIPOutputStream;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class GzipServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		String str ="1、基于顺丰各项业务的海量优质数据,进行数据分析、人工智能建模、训练,为顺丰业务的数据化智能化运营提供参考和具体应用;";
	       str +="2、负责深度学习算法设计及开发;666666666666666666666666";
        for(int i=0;i<100;i++){
     	   str +="3、负责自然语言处理相关算法设计及开发。7777777777777777777777777777777777";
        }
        
        byte src[]=str.getBytes();
        System.out.println(src.length);
        /*数据压缩输出的技术入口: 
         * GZIPOutputStream out = new GZIPOutputStream(...);  
         * out.write(src); //src字节数据 被压缩输出到out流中         * 
         */
        ByteArrayOutputStream bout =new ByteArrayOutputStream();
        GZIPOutputStream gout=new GZIPOutputStream(bout);
        gout.write(src);
        gout.close(); //必须要关流以刷缓存,把数据刷到bout中
        
        //从bout中到压缩后的字节数据读取出来,存入dest中
        byte dest[]=bout.toByteArray();
        System.out.println("len2:"+dest.length);
        
        //为了让浏览器知道后台发送的是压缩格式的数据,得利用HTTP协议告诉它
        resp.setHeader("Content-Encoding", "gzip");
        //把字节数据dest输出到客户端
        OutputStream out2 = resp.getOutputStream();
        out2.write(dest);
        out2.close();
	}
}

http协议的部分应用_第9张图片

 

重定向

http协议的部分应用_第10张图片

方法(利用HTTP协议或者直接用方法);

package cn.hncu.servlets.go;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class OneServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// 利用HTTP协议实现重定向
		//法1
		resp.setStatus(302);
		//resp.setStatus(HttpServletResponse.SC_FOUND);//和上一句等价
		resp.setHeader("Location", "/httpWeb/jsps/result.jsp");
		
		//法2  我们以后写重定向时,可以用另一种更简单的方式
		resp.sendRedirect("/httpWeb/jsps/result.jsp");//该方法内部帮我们以HTTP协议的方式应答
	}
}

请求转发

package cn.hncu.servlets.go;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TwoServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {

		RequestDispatcher rd = req.getRequestDispatcher("/jsps/result.jsp");
		rd.forward(req, resp);
	}
}

 

页面下载:

http协议的部分应用_第11张图片

package cn.hncu.servlets.go;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ThreeServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		/*
		 * 这一段演示,当浏览器接收到404的状态码之后,后面的内容就不接收,直接显示它早就存在的错误页面
		 * resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
		 * resp.getWriter().println("dkjajkajk");
		 */
		/*
		 * 利用HTTP协议告诉浏览器,把后续发送的内容下载到一个指定的文件中
		 */
		resp.setContentType("application/force-download");
		// 指定文件名
		String name = "a.txt";
        resp.setHeader("Content-Disposition", "attachment:filename=\" "+name+"\"  ");
        //发送内容
        resp.getWriter().println("dkjajkajk.....");
	}
}

 

 

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


  
    HTTP协议演示
  
  
  
   

HTTP协议在后台开发时的用法演示

利用HTTP协议实现防盗链功能--看图片
页面压缩输出例子演示

页面跳转技术演示1: 重定向
页面跳转技术演示2: 转发
http协议的其它演示

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Java,EE)