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

 

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

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

<%@ page contentType="text/html" %>  
<%@ page pageEncoding = "utf-8" %> 
<HTML><body bgcolor=#e1e0c7>
<b>您已成功访问目标网页!
</body>
</HTML>  

3.编写 1.jsp 页面

<%@ page contentType="text/html" %>  
<%@ page pageEncoding = "utf-8" %> 
<html><body bgcolor=#e1e0c7>
目标网页访问入口
<a href="http://localhost:8080/ch4/error.jsp">访问</a>
<br>
</body>
</html>    

4.编写 3.jsp 页面

<%@ page contentType="text/html" %>  
<%@ page pageEncoding = "utf-8" %> 
<html><body bgcolor=#e1e0c7>
目标网页访问入口
<a href="error.jsp">访问</a>
<br>
</body>
</html>    

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

5.编写 error.jsp 页面

<%@ page contentType="text/html" %>  
<%@ page pageEncoding = "utf-8" %> 
<html><body bgcolor=#e1e0c7>
<%
	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错误");
}
%>
</body>
</html>    

页面编写思想:

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

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

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

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

6.最终效果演示

 

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


总结: 

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

  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q小Q琪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值