java--referer属性

Referer: http://localhost:8080/helloWeb/   //从哪儿来的,可以防止非法引用连接

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

<html>
  <head>

    <title>第一个web项目的主页</title>

  </head>

  <body>
    <h2>主页主页</h2>
    <h2>湖南长沙</h2>
    <h3>发布方式一......</h3>

    <h2>HTTP协议演示:利用referer属性实现防止盗链</h2>
    <a href="show">欣赏图片</a>
    <br/>

        <br/><br/><br/><br/>
    <br/><br/><br/><br/>
  </body>
</html>
package cn.hncu.servlet;


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 ShowServlet extends HttpServlet {

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

//      resp.setContentType("text/html;charset=utf-8");
        resp.setHeader("Content-Type", "text/html;charset=utf-8");
        //获取请求头中的referer信息--来源于哪里
        String strRef=req.getHeader("referer");
        System.out.println(strRef);

        PrintWriter p=resp.getWriter();
        p.print("<html><head>湖南城院</head><body>");
        String str="";
        if(strRef==null){//直接访问此网址
            str="请先去看广告...";
        }else{
            if(strRef.contains("helloWeb")){
                // 网页内的"/"代表helloWeb外面的目录,所以网页文本路径一定要加项目根目录:"/helloWeb/"
                // 而java代码内的"/"代表项目根目录,所以只要写文本存在目录就好了
                str="<img src='images/1.jpg'/>"+
                        "<img src='images/2.jpg'/>"+
                        "<img src='images/3.jpg'/>"+
                        "<img src='images/4.jpg'/>";
            }else{//在其他页面建立url,从别的页面来的
                str="来自盗链...";
            }
        }
        resp.getWriter().print(str);
        p.print("湖南益阳...<br/>");//如果没有设置协议,,这里就会显示乱码
        p.print(str);
        p.print("<br/>湖南益阳...<br/>");//如果没有设置协议,,这里就会显示乱码
        p.print("</body></html>");
    }


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值