index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="byNumber.jsp" Method="post">
<br>根据产品号查询
<br/>输入产品号:<input type=text name="number">
<br/><br>
<input type=submit name="g" value="提交">
</form>
<form action="byPrice.jsp" Method="post">
<br/><br>
根据价格查询
<br></br>价格在<input type=text name="priceMin" size=8>
至<input type=text name="priceMax"size=8>之间
<input type=submit value="提交">
</form>
</body>
</html>
byNumber.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ taglib tagdir="/WEB-INF/tags" prefix="com"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'byNumber.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<% String number=request.getParameter("number");
if(number==null)
number ="";
byte [] bb =number.getBytes("iso-8859-1");
number=new String(bb);
%>
<com:NumberCondition number="<%=number%>" />
根据产品号<%=number%>查询到的记录:
<BR><%=queryResultByNumber%>
</body>
</html>
byPrice,jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="inquire"%>
<HTML><BODY><Font size=2>
<% String min=request.getParameter("priceMin");
String max=request.getParameter("priceMax");
%>
<inquire:PriceCondition priceMin="<%=min %>" priceMax="<%=max%>" />
价格在<%=min%>至 <%=max%>之间的记录:
<BR><%=queryResultByPrice%> <%--queryResultByPrice是Tag文件返回的对象--%>
</Font></BODY></HTML>
NumberCondition.tag
<%@ tag pageEncoding="GB2312" %>
<%@ tag import="java.sql.*" %>
<%@ attribute name="number" required="true" %>
<%@ variable name-given="queryResultByNumber" scope="AT_END" %>
<% StringBuffer result;
result=new StringBuffer();
try{ Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e){}
Connection con;
Statement sql;
ResultSet rs;
int n=0;
try{ result.append("<table border=1>");
String uri=
"jdbc:mysql://127.0.0.1/warehouse?"+
"user=root&password=&characterEncoding=gb2312";
con=DriverManager.getConnection(uri);
DatabaseMetaData metadata=con.getMetaData();
ResultSet rs1=metadata.getColumns(null,null,"product",null);
int 字段个数=0;
result.append("<tr>");
while(rs1.next()){
字段个数++;
String clumnName=rs1.getString(4);
result.append("<td>"+clumnName+"</td>");
}
result.append("</tr>");
sql=con.createStatement();
String condition=
"SELECT * FROM product Where number ='"+number+"'";
rs=sql.executeQuery(condition);
while(rs.next()){
result.append("<tr>");
for(int k=1;k<=字段个数;k++)
result.append("<td>"+rs.getString(k)+"</td>");
result.append("</tr>");
}
result.append("</table>");
con.close();
}
catch(SQLException e){
result.append(e);
}
jspContext.setAttribute("queryResultByNumber",new String(result));
%>
PriceCondition.tag
<%@ tag pageEncoding="GB2312" %>
<%@ tag import="java.sql.*" %>
<%@ attribute name="priceMax" required="true" %>
<%@ attribute name="priceMin" required="true" %>
<%@ variable name-given="queryResultByPrice" scope="AT_END" %>
<% float max=Float.parseFloat(priceMax);
float min=Float.parseFloat(priceMin);
StringBuffer result;
result=new StringBuffer();
try{ Class.forName("com.mysql.jdbc.Drive");
}
catch(Exception e){}
Connection con;
Statement sql;
ResultSet rs;
int n=0;
try{ result.append("<table border=1>");
String uri="jdbc:mysql://127.0.0.1/warehouse";
con=DriverManager.getConnection(uri,"root","");
DatabaseMetaData metadata=con.getMetaData();
ResultSet rs1=metadata.getColumns(null,null,"product",null);
int 字段个数=0;
result.append("<tr>");
while(rs1.next()){
字段个数++;
String clumnName=rs1.getString(4);
result.append("<td>"+clumnName+"</td>");
}
result.append("</tr>");
sql=con.createStatement();
String condition=
"SELECT * FROM product Where price <="+
max+" AND "+"price >= "+min;
rs=sql.executeQuery(condition);
while(rs.next()){
result.append("<tr>");
for(int k=1;k<=字段个数;k++)
result.append("<td>"+rs.getString(k)+"</td>");
result.append("</tr>");
}
result.append("</table>");
con.close();
}
catch(SQLException e){
result.append(e);
}
jspContext.setAttribute("queryResultByPrice",new String(result));
%>
文件目录结构显示:
运行效果显示图: