JSP自定义标签获取用户IP地址的方法
1、编写一个实现tag接口的标签处理器类
packagecn.itcast.web.tag;
importjava.io.IOException;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.jsp.JspException;
importjavax.servlet.jsp.JspWriter;
importjavax.servlet.jsp.PageContext;
importjavax.servlet.jsp.tagext.Tag;
publicclassViewIPTagimplementsTag{
privatePageContextpageContext;
publicintdoStartTag()throwsJspException{
HttpServletRequestrequest=(HttpServletRequest)pageContext.getRequest();//获取页面Servlet中request和out对象
JspWriterout=pageContext.getOut();
Stringip=request.getRemoteAddr();//获取用户IP地址
try{
out.write(ip);
}catch(IOExceptione){
thrownewRuntimeException(e);
}
return0;
}
publicintdoEndTag()throwsJspException{
return0;
}
publicTaggetParent(){
returnnull;
}
publicvoidrelease(){
}
publicvoidsetPageContext(PageContextarg0){
this.pageContext=arg0;//PageContext获取用户requestout等对象
}
publicvoidsetParent(Tagarg0){
}
}
2、在web-inf/目录下新建tld文件,在tld文件中对标签处理器进行描述
<?xmlversion="1.0"encoding="UTF-8"?>
<taglibxmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>AtaglibraryexercisingSimpleTaghandlers.</description>
<tlib-version>1.0</tlib-version>
<short-name>SimpleTagLibrary</short-name>
<uri>/itcast</uri>
<tag>
<name>viewIP</name> <!--为标签处理器类配一个标签名-->
<tag-class>cn.itcast.web.tag.ViewIPTag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
3、在jsp页面中导入并使用自定义标签
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<%@tagliburi="/itcast"prefix="itcast"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>
<title>输出客户机的IP</title>
</head>
<body>
您的IP是:<itcast:viewIP/>
</body>
</html>相关文章