JSP简单防盗链设计(零基础小白适用)

一、实验环境

JDK:13;Tomcat:9.0

二、实验目的

新建两个 web 服务目录 ch3 和 ch4,其中ch3中包含 1.jsp、ch4 中包含 2.jsp、3.jsp以及error.jsp;要求在1.jsp 和 3.jsp 中均有 2.jsp 页面的超链接,点击 3.jsp 中的超链接可以成功访问目标页面,但点击 1.jsp 中的超链接则会返回404错误,不予访问,实现防盗链的设计。

三、实验思想

通过编写判断页面 error.jsp 来判断来访网址是否符合要求,若符合则跳转目标网页,否则进行报错拦截,实现防盗链效果。

四、实验步骤

1.新建服务目录

新建两个 web 服务目录 ch3 和 ch4

JSP简单防盗链设计(零基础小白适用)_第1张图片 

其中,ch3 中新建 1.jsp文件;ch4中新建 2.jsp、3.jsp 以及 error.jsp文件

2.编写 2.jsp 页面(由于是简单的防盗链,对页面设计不做要求)

<%@ page contentType="text/html" %>  
<%@ page pageEncoding = "utf-8" %> 

您已成功访问目标网页!

  

3.编写 1.jsp 页面

<%@ page contentType="text/html" %>  
<%@ page pageEncoding = "utf-8" %> 

目标网页访问入口
访问

4.编写 3.jsp 页面

<%@ page contentType="text/html" %>  
<%@ page pageEncoding = "utf-8" %> 

目标网页访问入口
访问

唯一要注意的地方是由于两文件的存放目录不同,所以在访问 2.jsp页面时超链接的路径也有所区别

5.编写 error.jsp 页面

<%@ page contentType="text/html" %>  
<%@ page pageEncoding = "utf-8" %> 

<%
	String a = request.getHeader("referer");
	String b=a.substring(0,26);
	if(b.equals("http://localhost:8080/ch4/"))  {
  		response.sendRedirect("2.jsp");
}
 	 else  {
     	out.print("404错误");
}
%>

    

页面编写思想:

request.getHeader("referer") 语句获取访问者的整个网址;

substring(0,26)对获取到的网址进行切片,截取网址前缀内容;

if(b.equals("http://localhost:8080/ch4/")) 条件语句判断前缀是否成功对应;

若来自 ch4 目录访问该页面,成功访问。若来自 ch3 的 web 目录下访问该页面,则直接返回“ 404 错误”,不予访问。

6.最终效果演示

JSP简单防盗链设计(零基础小白适用)_第2张图片JSP简单防盗链设计(零基础小白适用)_第3张图片

 JSP简单防盗链设计(零基础小白适用)_第4张图片JSP简单防盗链设计(零基础小白适用)_第5张图片

 注意来访网址不同,效果不同


总结: 

这是非常简单的JSP防盗链设计,主要是对JSP内置对象的应用,适合刚刚接触JSP的小白进行参考。如果对你有帮助,请点个赞噢~

你可能感兴趣的:(tomcat,jsp)