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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值