防盗链自定义标签的实现

防盗链的基本语法

 

<class3g:referer site="http://localhost:8080"page="index.jsp"/>

跳转知道那个页面在那个页面中写上面的代码 注意红色的部分自己写

标签处理类的对象应用:

下面是在java类中处理的功能代码

package class3g.web.tag;

 

import java.io.IOException;

 

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.PageContext;

import javax.servlet.jsp.SkipPageException;

import javax.servlet.jsp.tagext.SimpleTagSupport;

 

public class RefererTag extends SimpleTagSupport {

      

       privateString site;

       privateString page;

      

      

       public voidsetSite(String site) {

              this.site= site;

       }

 

 

       public voidsetPage(String page) {

              this.page= page;

       }

 

 

       @Override

       public voiddoTag() throws JspException, IOException {

             

              PageContextpageContext = (PageContext) this.getJspContext();

              HttpServletRequestrequest = (HttpServletRequest) pageContext.getRequest();

              Stringreferer = request.getHeader("referer");

              System.out.println(referer);

              if(referer==null||referer.startsWith(site)){

                     HttpServletResponseresponse = (HttpServletResponse) pageContext.getResponse();

                    

                     StringcontextPath = request.getContextPath();

                    

                     System.out.println(contextPath);

                     /*

                      * if(page.startWith(contextPath)){

                             /20111109/index.jsp

                            sendRedirect(page)

                     }elseif(page.satartWith("/")){

                            /index.jsp

 

                            sendRedirect(contextPath+ page)

                     }else{

                            index.jsp

 

                            sendRedirect(contextPath+ "/" + page)

                     }         

                      */

                     if(page.startsWith(contextPath)){

                            response.sendRedirect(page);

                     }elseif(page.startsWith("/")){

                            response.sendRedirect(contextPath+page);

                     }else{

                            response.sendRedirect(contextPath+"/"+page);

                     }

                     thrownew SkipPageException();

                    

              }

             

             

       }

      

      

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值