【1】html模板
<html><head><!-- base标签表示uri相对路径的基准路径 --><base href="http://localhost:8080/asite6/chapter6/ex6_11/visitor.html"/><title>html template</title><!-- meta 模拟响应消息头:Content-Type 表示内容类型 --><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><!-- meta 模拟响应消息头:下面3个响应头都是为了禁用浏览器缓存,因为存在着浏览器兼容问题所以设置了3个响应头以覆盖所有浏览器 --><meta http-equiv="Expires" content="0"><meta http-equiv="Cache-Control" content="no-cache"><meta http-equiv="Pragma" content="no-cache"></head><body><a href="chapter6/ex6_10/validate.jsp">访问validate.jsp页面</a></body></html>
【2】JSP自定义标签荔枝
1)源码:
<%@ page contentType="text/html;charset=UTF-8" %><%@ taglib prefix="tangrong" uri="/validateTag" %><tangrong:validate/>如果您看到了这些内容,说明本JSP页面已经正常执行完毕!
<?xml version="1.0" encoding="UTF-8" ?><taglib xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee /xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"version="2.0"><tlib-version>1.0</tlib-version><short-name>validateTag</short-name><uri>/validateTag</uri><tag><description>validate tag</description><name>validate</name><tag-class>ex6_8.ValidateTag</tag-class><body-content>empty</body-content></tag></taglib>
package ex6_8;import java.io.IOException;import javax.servlet.http.HttpServletRequest;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.TagSupport;public class ValidateTag extends TagSupport { // 自定义标签处理器public int doEndTag() throws JspException {HttpServletRequest req = (HttpServletRequest) pageContext.getRequest();String referrer = req.getHeader("referer"); // 访问请求是从哪个页面链接过来的String sitePart = "http://" + req.getServerName(); // jsp页面所在服务器地址System.out.println("referrer = " + referrer);System.out.println("sitePart = " + sitePart);if (referrer != null && referrer.startsWith(sitePart)) {return EVAL_PAGE;} else {try {pageContext.getOut().write("对不起,您的访问方式不合法!");} catch (IOException e) {e.printStackTrace();}return SKIP_PAGE;}}}
2)访问效果: