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>");
}
}