JSP自定义标签——调用数据库(通过id号搜索相关信息)
一、创建新表(假设在master数据库下新建)
二、连接数据库
开始-->控制面板-->管理工具-->数据源-->系统DSN-->添加-->SQL Server-->名称:userdb-->服务器:(local)\SQLEXPRESS或选择本机名-->下一步-->下一步-->打钩-更改默认的数据库为:master-->下一步-->完成
三、DefinedTagData项目
1、新建Java类:User
package sample.model;
public class User {
private int id;
private String name;
private String phone;
public void setId(int id){this.id=id;}//setId中的d必须小写
public void setName(String name){this.name=name;}
public void setPhone(String phone){this.phone=phone;}
public int getID(){return id;}
public String getName(){return name;}
public String getPhone(){return phone;}
}
2、新建Java类:UserDAO
package sample.model; import java.sql.*;
public class UserDAO {
private ResultSet rst;
private Connection conn;
private void open()throws Exception{
String driver="sun.jdbc.odbc.JdbcOdbcDriver";
String url= "jdbc:odbc:userdb";//test--定义的数据库的名称
Class.forName(driver);
conn=DriverManager.getConnection(url);
}
private void close()throws SQLException{
if(rst!=null) rst.close();
if(conn!=null) conn.close();
}
public void save(User user)throws Exception{
String sql="";
open();
Statement stmt=conn.createStatement();
rst=stmt.executeQuery(sql);
close();
}
public void load(User user)throws Exception{
String sql="use master select name,phone from dbo.usera"+" where id = "+user.getID();
open();
Statement stmt=conn.createStatement();
rst=stmt.executeQuery(sql);
if(rst.next()){
user.setName(rst.getString(1));
user.setPhone(rst.getString(2));
}
close();
}
}
3、创建TLD文件
新建文件--> Web--> 标记库描述符
TLD名称:Data 前缀:data
4、创建标记处理程序
新建文件--> Web-->标记处理程序
类名:DataTag 包:sample.tag 要扩展的标记支持类:SimpleTagSupport
TLD文件:WEB-INF--> tlds--> Data 新建属性:color和id
package sample.tag; import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.JspException;
import sample.model.*; public class DataTag extends TagSupport {
private String id;//添加的属性
public void setId(String id) {
this.id = id;
}
private String color;//添加的属性
public void setColor(String color) {
this.color = color;
}
public int doStartTag(){
User user=new User();
user.setId(Integer.parseInt(id));
UserDAO dao=new UserDAO();
try{
dao.load(user);
JspWriter out=pageContext.getOut();
String html="<br><b style=\"color:"+color+"\">Welcome to Employee Detail Table.</b><br>";
html+=" <table border=\"1\"><tr><th>员工ID</th><th>员工姓名</th><th>联系电话</th></tr>";
html+="<tr><td>"+user.getID()+"</td><td>"+user.getName()+"</td><td>"+user.getPhone()+"</td></tr></table>";
out.println(html);
}catch(Exception e){
System.out.println(e.getMessage());
}
return SKIP_BODY;
} public int doEndTag() throws JspException{
return EVAL_PAGE;
}
}
PS:Data.tld内容
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" 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 web-jsptaglibrary_2_0.xsd">
<tlib-version>1.0</tlib-version>
<short-name>data</short-name>
<uri>/WEB-INF/tlds/Data</uri> <tag>
<name>DataTag</name>
<tag-class>sample.tag.DataTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
<attribute>
<name>color</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<name>DataTable</name>
<tag-class>sample.tag.DataTable</tag-class>
<body-content>JSP</body-content>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
</attribute>
<attribute>
<name>color</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
</tag>
</taglib>
5、index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@ taglib uri="/WEB-INF/tlds/Data" prefix="data"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<data:DataTag id="1" color="blue"/>
</body>
</html>
6、显示结果
JSP自定义标签——调用数据库(通过id号搜索相关信息)的更多相关文章
- 【转】Jsp自定义标签详解
一.前言 原本是打算研究EXtremeComponents这个jsp标签插件,因为这个是自定义的标签,且自身对jsp的自定义标签并不是非常熟悉,所以就打算继续进行扫盲,开始学习并且整理Jsp自定义标签 ...
- JSP 自定义标签
0 标签技术的API继承体系 1 作用 jsp自定义标签用于移除页面中的java代码 2 实现 2.1 标签处理类ViewIPTag.java package com.zsm.util; import ...
- JSP自定义标签开发入门
一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; 首先我们需要大致了解开发 ...
- 一个简单的jsp自定义标签
学到了一个简单的jsp自定义标签,后面有更多的例子,会更新出来: 例子1: 步骤: 1.编写标签实现类: 继承javax.servlet.jsp.tagext.SimpleTagSupport; 重写 ...
- JSP自定义标签库
总所周知,JSP自定义标签库,主要是为了去掉JSP页面中的JAVA语句 此处以格式化输出时间戳为指定日期格式为例,简单介绍下JSP自定义标签的过程. 编写标签处理类(可继承自javax.servlet ...
- jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题
jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题 之前在项目中根据需求,需要自定义标签,经过查询w3c文档,自己也踩了一些坑,特此记录自定义标签的步骤,下面就以我之前的一个例子中的定义一 ...
- JSP自定义标签开发入门《转》
JSP自定义标签开发入门 一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; ...
- Rhythmk 一步一步学 JAVA(7): jsp 自定义标签
1.实现Tag接口: TagSupport类实现了Tag接口,为我们提供了4个重要的方法(见表6-5). 1.1. TagSupport类中的常用方法 int doStartTag ...
- 【转】JSP自定义标签
转载自:http://www.cnblogs.com/edwardlauxh/archive/2010/05/20/1918587.html tld标签的描述文件 标签的描述文件是一个描述整个标签库标 ...
随机推荐
- JAVA GUI
JAVA GUI中的事件处理: 委托事件模型:事件源对象和监听器对象具有绑定关系 一个监听器可以绑定多个事件源 一个事件源也可以绑定多个监听器 监听器有各自监听的事件类型 设置容器的布局管 ...
- 获取sql server数据库表结构
if exists (select 1 from sysobjects where name = 'sysproperties'and xtype = 'V')begin DROP VIEW s ...
- NFA引擎匹配原理
1 为什么要了解引擎匹配原理 一个个音符杂乱无章的组合在一起,弹奏出的或许就是噪音,同样的音符经过作曲家的手,就可以谱出非常动听的乐曲,一个演奏者同样可以照着乐谱奏出动听的乐曲,但他/她或 ...
- 无废话SharePoint入门教程三[创建网站集和网站]
一.前言 前两篇文章讲解了什么是SharePoint,并且介绍了在SharePoint中一些常用的概念.但概念终究是概念,我们还是要脚踏实地的去动手实践.下面的文章对于了解SharePoint的人来说 ...
- tomcat安全加固
-R 640 conf/*3. 首次安装完成后立即删除webapps下面的所有代码rm -rf /srv/apache-tomcat/webapps/*4. 注释或删除 tomcat-users.xm ...
- JAVA动手动脑异常处理
1>请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识. import javax.swing.*; class AboutEx ...
- POJ 3415 Common Substrings 后缀数组+并查集
后缀数组,看到网上很多题解都是单调栈,这里提供一个不是单调栈的做法, 首先将两个串 连接起来求height 求完之后按height值从大往小合并. height值代表的是 sa[i]和sa[i ...
- python 中BeautifulSoup入门
什么是BeautifulSoup? Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree). 它提供简单又常用的 ...
- WCF传输图片解决方案
图片无法序列化后传输,但我们可以将图片转二进制字符串传输.然后在服务端将二进制字符串转图片. 将图片转字符串的例子: private byte[] BmpToJpegBuff(Image img) { ...
- nginx 目录文件列表功能配置
工作中常常有写不能有网页下载东西的需求,在Apache下搭建完成后直接导入文件即可达到下载/显示文件的效果,而Nginx也可以满足这样的需求(nginx 目录列表功能默认是关闭的),这时就需要配置. ...