防盗链的基本语法
<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();
}
}
}