`
kidiaoer
  • 浏览: 821951 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

JSP-使用自定义标签来操作数据库

    博客分类:
  • jsp
阅读更多
      JSP-使用自定义标签来操作数据库

范例一:使用自定义Tag读去数据库中的信息

TagDB.java代码如下
package tag.test;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.io.*;
import java.sql.*;
public class TagDB extends TagSupport
{
Connection connection=null;
Statement statement=null;
ResultSet rset=null;
public TagDB()
{
  try
  {
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  }
  catch(ClassNotFoundException e)
  {
   e.printStackTrace();
  }
}
public int doStartTag()throws JspTagException
{
  return EVAL_BODY_INCLUDE;
}
public int doEndTag()throws JspTagException
{
  try
  {
   JspWriter out=pageContext.getOut();
   connection=DriverManager.getConnection("jdbc:odbc:StuDataBase");
   statement=connection.createStatement();
   rset=statement.executeQuery("select * from stuInformation");
   out.print("以下使用Tag输出学生的基本信息");
   out.print("<hr>");
   out.print("<table width=\"80%\" border=\"1\"><tr><td>StuNumber</td><td>StuName</td><td>StuNum</td></tr>");
   while(rset.next())
   {
    out.print("<tr><td>"+rset.getString(1)+"</td><td>"+rset.getString(2)+"</td><td>"+rset.getString(3)+"</td></tr>");
   }
   out.print("</table>");
  
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
  return EVAL_PAGE;
}
}


time.tld描述文件如下
<?xml version="1.0" encoding="ISO-8859-1"?>
<taglib>
  <tlib-version>1.2</tlib-version>
  <jsp-version>1.2</jsp-version>
  <short-name>DB</short-name>
  <description>
     this taglib provides tag to show date
  </description>
  <tag>
  <name>DBShow</name>
  <tag-class>tag.test.TagDB</tag-class>
  <body-content>empty</body-content>
  </tag>
  </taglib>

web.xml文件内容如下
<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app>
  <display-name>welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>
    <taglib>
      <taglib-uri>DB</taglib-uri>
      <taglib-location>/WEB-INF/time.tld</taglib-location>
    </taglib>
</web-app>

tagTest.jsp文件如下
<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="DB" prefix="mytag" %>
<mytag:DBShow/>



范例二:使用Tag标签向数据库中查入数据,插入成功后将所有记录显示出来.

InfoTagDB.java 代码如下

package tag.test;
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.sql.*;

public class InfoTagDB extends TagSupport
{
String strNumber;
String strName;
    int strNum;
    Connection connection=null;
    Statement statement=null;
    public InfoTagDB()
    {
     try
     {
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
     }
     catch(ClassNotFoundException e)
     {
      e.printStackTrace();
     }
    }
    public void setStrNumber(String strNumber)
    {
     this.strNumber=strNumber;
    }
    public void setStrName(String strName)
    {
     this.strName=strName;
    }
    public void setStrNum(int strNum)
    {
     this.strNum=strNum;
    }
    public int doStartTag()throws JspTagException
    {
     JspWriter out=pageContext.getOut();
     try
     {
       connection=DriverManager.getConnection("jdbc:odbc:StuDataBase");
       statement=connection.createStatement();
       String sql="insert into stuInformation(StuNumber,StuName,StuNum) values('"+strNumber+"','"+strName+"',"+strNum+")";
       int i=statement.executeUpdate(sql);
       if(i>0)
       {
                out.print("插入成功");     
       }
       else
       {
        out.print("插入失败");
       }
       statement.close();
       connection.close();
     }
     catch(Exception e)
     {
      e.printStackTrace();
     }
     return SKIP_BODY;
    }
}

insert.tld标签描述文件如下

<?xml version="1.0" encoding="ISO-8859-1"?>
<taglib>
   <tlib-version>1.2</tlib-version>
   <jsp-version>1.2</jsp-version>
   <shor-name>mytag</shor-name>
   <description>the info test example</description>
   <tag>
     <name>insert</name>
     <tag-class>tag.test.InfoTagDB</tag-class>
     <body-content>empty</body-content>
       <attribute>
         <name>strNumber</name>
         <required>true</required>
         <rtexprvalue>true</rtexprvalue>
       </attribute>
        <attribute>
         <name>strName</name>
         <required>true</required>
         <rtexprvalue>true</rtexprvalue>
       </attribute>
       <attribute>
         <name>strNum</name>
         <required>true</required>
         <rtexprvalue>true</rtexprvalue>
       </attribute>
   </tag>
</taglib>

web.xml配置文件如下
<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app>
  <display-name>welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>
    <taglib>
      <taglib-uri>DBInsert</taglib-uri>
      <taglib-location>/WEB-INF/insert.tld</taglib-location>
    </taglib>
     <taglib>
      <taglib-uri>DB</taglib-uri>
      <taglib-location>/WEB-INF/time.tld</taglib-location>
    </taglib>
</web-app>

tagTest.jsp文件如下

<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="DBInsert" prefix="mytag" %>
<mytag:insert strNumber="1007" strName="李四" strNum="10"/>
<%@ taglib uri="DB" prefix="tagmy" %>
<tagmy:DBShow/>
对于tagTest.jsp文件中的第二个标签是范例一TagDB.java中的代码,大家可以参考。

范例三:使用Tag删除数据库中的记录,删除后将所有数据库中的内容显示出来

TagDelete.java代码如下
package tag.test;
import java.sql.*;
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class TagDelete extends TagSupport
{
String strNumber;
Connection connection=null;
Statement statement=null;
public TagDelete()
{
  try
  {
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
  }
  catch(ClassNotFoundException e)
  {
   e.printStackTrace();
  }
}
public void setStrNumber(String strNumber)
{
  this.strNumber=strNumber;
}
public int doStartTag()throws JspTagException
{
  try
  {
   JspWriter out=pageContext.getOut();
   connection=DriverManager.getConnection("jdbc:odbc:stuDataBase");
   statement=connection.createStatement();
   String sql="delete * from stuInformation where StuNumber='"+strNumber+"'";
   int i=statement.executeUpdate(sql);
   if(i>0)
   {
    out.print("删除成功<br>");
   }
   else
   {
       out.print("删除失败<br>");
   }
   statement.close();
   connection.close();
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
  return SKIP_BODY;
}
public int doEndTag()throws JspException
{
  return EVAL_PAGE;
}
}

delete.tld标签描述文件如下
<?xml version="1.0" encoding="ISO-8859-1"?>
<taglib>
   <tlib-version>1.2</tlib-version>
   <jsp-version>1.2</jsp-version>
   <shor-name>Deltag</shor-name>
   <description>the info test example</description>
   <tag>
     <name>delete</name>
     <tag-class>tag.test.TagDelete</tag-class>
     <body-content>empty</body-content>
       <attribute>
         <name>strNumber</name>
         <required>true</required>
         <rtexprvalue>true</rtexprvalue>
       </attribute>
   </tag>
</taglib>

web.xml配置文件如下
<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app>
  <display-name>welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>
    <taglib>
      <taglib-uri>DBInsert</taglib-uri>
      <taglib-location>/WEB-INF/insert.tld</taglib-location>
    </taglib>
     <taglib>
      <taglib-uri>DB</taglib-uri>
      <taglib-location>/WEB-INF/time.tld</taglib-location>
    </taglib>
    <taglib>
      <taglib-uri>Deltag</taglib-uri>
      <taglib-location>/WEB-INF/delete.tld</taglib-location>
    </taglib>
</web-app>

tagTest.jsp测试代码如下

<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="Deltag" prefix="tagDel" %>
<tagDel:delete strNumber="1005"/>
<%@ taglib uri="DB" prefix="tagmy" %>
<tagmy:DBShow/>
对于tagTest.jsp文件中的第二个标签是范例一TagDB.java中的代码,大家可以参考




范例五:使用自定义标签实现字符串的大小写转化。
ConvertTest.java代码如下
package tag.test;
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class ConvertTest extends BodyTagSupport
{
public int doAfterBody()throws JspException
{
  try
  {
   BodyContent body=getBodyContent();
   JspWriter out=body.getEnclosingWriter();
   String text=body.getString();//获取标签中的内容
   if(text!=null)
   {
    out.print(text.toLowerCase());
   }
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
  return SKIP_BODY;
}
}
convert.tld标签描述文件如下

<?xml version="1.0" encoding="ISO-8859-1"?>
<taglib>
   <tlib-version>1.2</tlib-version>
   <jsp-version>1.2</jsp-version>
   <shor-name>mytag</shor-name>
   <description>the info test example</description>
   <tag>
     <name>Convert</name>
     <tag-class>tag.test.ConvertTest</tag-class>
     <body-content>jsp</body-content>
   </tag>
</taglib>

web.xml配置文件如下
<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app>
  <display-name>welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>

      <taglib>
      <taglib-uri>mytag</taglib-uri>
      <taglib-location>/WEB-INF/convert.tld</taglib-location>
    </taglib>
</web-app>

testTag.jsp测试文件如下
<%@ taglib uri="mytag" prefix="test" %>
<test:Convert>
Hello WORLD;
</test:Convert>
分享到:
评论

相关推荐

    JSP GridView --使用自定义标签实现ASP.NET的控件

    这篇博客文章 "JSP GridView --使用自定义标签实现ASP.NET的控件" 提到了如何在JSP环境中模仿ASP.NET GridView的特性。作者向我们展示了如何通过创建自定义标签库(Tag Library)来扩展JSP的功能,从而实现数据绑定...

    Jsp自定义标签通用数据库查询

    在这个名为“Jsp自定义标签通用数据库查询”的项目中,我们探讨的关键知识点是如何利用自定义标签实现一个通用的数据库查询功能,使其能够适用于多种数据库系统。 首先,我们需要了解JSP自定义标签的工作原理。...

    Java web自定义标签操作数据库

    通过以上步骤,我们可以在Java Web项目中创建并使用自定义标签来操作数据库,使代码更加整洁,同时提升开发效率。在实践中,不断优化和完善这些标签,可以构建出高效、可复用的组件库,为项目的开发带来便利。

    自定义标签连数据库

    在JSP页面中,通过`&lt;taglib&gt;`指令引入标签库,然后使用自定义标签并传入数据库名和表名: ```jsp &lt;%@ taglib prefix="myTags" uri="/WEB-INF/my-tags.tld" %&gt; ... ``` 六、安全与优化 1. 使用预编译的`...

    Java web自定义标签操作数据库.docx

    【Java Web自定义标签操作数据库】在Java Web开发中,我们常常需要自定义标签来增强JSP页面的功能,实现更灵活的数据展示和交互。这里提到的文档“Java web自定义标签操作数据库.docx”主要展示了如何通过继承`...

    jsp动态菜单---自定义的一个菜单

    【标题】:“jsp动态菜单---自定义的一个菜单” 在网页开发中,动态菜单是一种常见的功能,它可以基于用户权限、操作状态等因素实时更新显示内容。JSP(JavaServer Pages)是Java平台上的一个用于创建动态web内容的...

    jsp自定义分页标签

    一、JSP自定义标签基础 JSP自定义标签是JSP技术的一部分,它允许开发者创建自己的标签,以扩展HTML或XML文档。这些自定义标签可以封装复杂的Java代码,使JSP页面更加清晰,易于理解和维护。自定义标签由两部分组成:...

    JSP自定义标签之自动完成框

    在IT行业中,Java Server ...总的来说,JSP自定义标签为开发人员提供了强大且灵活的方式来扩展JSP的功能。结合前端技术,我们可以构建出交互性极强的动态网页,例如这里的自动完成框,极大地提升了用户的输入体验。

    JSP标签、自定义标签,含有属性

    创建自定义标签通常涉及三个部分:标签库描述符文件(TLD)、标签处理类(Tag Handler Class)和标签库使用者的JSP页面。TLD定义了标签的元数据,如标签名称、属性和对应的处理类。处理类实现了`javax.servlet.jsp....

    jsp自定义标签编写的分页

    本教程将深入探讨如何利用JSP自定义标签来编写一个灵活、可扩展的分页系统,该系统不依赖于特定的数据库,具有很高的通用性。 首先,理解JSP自定义标签的工作原理至关重要。自定义标签由三部分组成:标签库描述符...

    java+hibernate+jsp+tld+自定义标签分页

    1. **创建自定义标签**: 编写一个Java类作为自定义标签的实现,这个类需要继承自`javax.servlet.jsp.tagext.TagSupport`或`javax.servlet.jsp.tagext.SimpleTagSupport`,并覆盖其中的方法来处理分页逻辑。...

    struts2基础--使用自定义MVC

    在贯穿案例-租房系统中,文件名“租房系统-使用自定义MVC”暗示着项目包含了一个完整的租房业务流程,可能包括房源发布、搜索、预订等操作。每个操作对应的Action类都可能是自定义MVC实现的一部分,它们处理用户请求...

    购物车功能+自定义标签+jdbc访问数据库

    在这个小练习中,我们将探讨如何使用JDBC进行数据库封装,同时结合自定义标签来增强程序的可读性和复用性,并且实现购物车功能,这是电商系统中的关键模块。 首先,让我们深入了解JDBC。JDBC是一套用于Java程序与...

    jsp中自定义标签用法实例分析

    在Java Server Pages (JSP) 中,自定义标签的使用是一个非常强大的功能,它允许开发者创建可重用的代码片段,这些片段...通过上述步骤和技巧,可以有效地创建和使用JSP自定义标签,提高开发效率,增强代码的可维护性。

    自定义标签

    自定义标签是JSP的一部分,它们扩展了JSP的功能,提供了一种将业务逻辑或常见操作封装为可重用组件的方式。自定义标签的行为和外观由开发者定义,可以包含任意的Java代码和JSP动作。 2. **自定义标签的组成** - *...

    使用JSP自定义标签实现EMP分页

    在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的...总的来说,JSP自定义标签提供了更灵活和模块化的开发方式,对于分页这种常见的业务需求,使用自定义标签无疑可以提高开发效率,降低维护成本。

    jsp java自定义标签 分页 当前位置 循环遍历数据

    本文将深入探讨如何使用Java自定义标签来实现分页功能,当前位置的显示以及数据的循环遍历。 首先,让我们了解一下Java自定义标签的基本概念。自定义标签是JSP的一种扩展机制,它允许开发者创建自己的标签库,这些...

    JSP自定义分页标签

    JSP自定义分页标签,mysql数据库,通过导入jar包,使用标签的方式实现分页的功能。

    Jsp自定义标签打包成Jar简单实例(含代码)

    通过以上步骤,你可以成功地将JSP自定义标签打包成Jar文件并导入到其他项目中使用。这种方式提高了代码的复用性,降低了项目间的耦合度,同时也使得代码更加模块化,便于管理和维护。 "超值奉送"的标签可能意味着这...

Global site tag (gtag.js) - Google Analytics