因为在JSP中不要使用一行Java代码,所以说必须使用标签来移除显示的Java代码,下面罗列一下标签的开发过程。
1.首先编写一个实现tag接口的java类
package com.bird.web.tag; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; /** * 显示来访者IP的自定义标签 * @author Bird * */ public class ViewIPTag extends TagSupport{ private static final long serialVersionUID = 1L; @Override public int doStartTag() throws JspException { HttpServletRequest request = (HttpServletRequest) this.pageContext.getRequest(); JspWriter out = this.pageContext.getOut(); String ip = request.getRemoteAddr(); try { out.print(ip); } catch (IOException e) { throw new RuntimeException(e); } return super.doStartTag(); } }
2.在tld文件里面对标签处理器类进行描述,tld文件的位置在web-inf下面可以在tomcat的webapps下面抄一下
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <description>A tag library exercising SimpleTag handlers.</description> <tlib-version>1.0</tlib-version> <short-name>Bird</short-name> <uri>http://www.bird.net</uri> <tag> <name>viewIP</name> <tag-class>com.bird.web.tag.ViewIPTag</tag-class> <body-content>empty</body-content> </tag> </taglib>
4.在界面里面使用tablib命令到导入和使用标签就可以了,
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <%@taglib uri="http://www.bird.net" prefix="bird" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>一个简单的自定义标签</title> </head> <body> 您访问的IP为: <bird:viewIP/> </body> </html>