zl程序教程

您现在的位置是:首页 >  后端

当前栏目

JSP自定义标签获取用户IP地址的方法

JSP方法 获取 用户 自定义 标签 IP地址
2023-06-13 09:15:01 时间

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>