?? 第5章(2).txt
字號:
showByPage.jsp:(效果如圖5.28所示)
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<%! int pageSize=3; //每頁顯示的記錄數。
int pageCount=0; //分頁后的總頁數。
%>
<%-- 客戶通過表單提交欲要顯示的頁碼數--%>
<FORM action="" method=get >
輸入頁碼數<Input Type=text name=showPage size=4 >
<Input Type=submit name=g value=提交>
</FORM>
<% Connection con;
Statement sql;
ResultSet rs;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
try { con=DriverManager.getConnection("jdbc:odbc:sun","sa","");
sql=
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
//返回可滾動的結果集:
rs=sql.executeQuery("SELECT * FROM students");
//將游標移動到最后一行:
rs.last();
//獲取最后一行的行號:
int lastRow=rs.getRow();
//計算分頁后的總頁數:
pageCount=(lastRow%pageSize==0)?(lastRow/pageSize):(lastRow/pageSize+1);
//當前顯示的初始頁數:
int showPage=1;
//告知客戶總頁數:
%>
<P> 共有<%=pageCount%>頁
<BR>每頁顯示<%=pageSize%>條記錄.
<% //獲取客戶想要顯示的頁數:
String integer=request.getParameter("showPage");
if(integer==null)
{ integer="1";
}
try {showPage=Integer.parseInt(integer);
}
catch(NumberFormatException e)
{showPage=1;
}
if(showPage<=1)
{showPage=1;
}
if(showPage>=pageCount)
{showPage=pageCount;
}
%>
<BR>目前顯示第<%=showPage%>頁
<% //如果要顯示第showPage頁,那么游標應移到posion的值是:
int posion=(showPage-1)*pageSize+1;
rs.absolute(posion); // 設置游標的位置
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"學號");
out.print("<TH width=100>"+"姓名");
out.print("<TH width=50>"+"數學成績");
out.print("<TH width=50>"+"英語成績");
out.print("<TH width=50>"+"物理成績");
out.print("</TR>");
for (int i=1;i<=pageSize;i++)
{ out.print("<TR>");
out.print("<TD >"+rs.getString(1)+"</TD>");
out.print("<TD >"+rs.getString(2)+"</TD>");
out.print("<TD >"+rs.getInt("數學成績")+"</TD>");
out.print("<TD >"+rs.getInt("英語成績")+"</TD>");
out.print("<TD >"+rs.getInt("物理成績")+"</TD>");
out.print("</TR>") ;
rs.next();
}
out.print("</Table>");
con.close();
}
catch(SQLException e1) {}
%>
</BODY>
</HTML>
例子11(效果如圖5.29所示)
Example5_11.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<% Connection con=null;
Statement sql=null;
ResultSet rs=null;
try{Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException e){}
try
{ con=
DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.35:1521:Lea","scott","tiger");
sql=con.createStatement();
rs=sql.executeQuery("select * from emp");
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"EMPNO");
out.print("<TH width=50>"+"Ename");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
int n=rs.getInt(1);
out.print("<TD >"+n+"</TD>");
String e=rs.getString(2);
out.print("<TD >"+e+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
con.close();
}
catch(SQLException e1) {out.print(""+e1);}
%>
</BODY>
</HTML>
例子12(效果如圖5.33所示)
Example5_12.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<% Connection con;
Statement sql;
ResultSet rs;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
try { con=DriverManager.getConnection("jdbc:odbc:star","","");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM 品名 ");
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"品名");
out.print("<TH width=50>"+"單位");
out.print("<TH width=50>"+"單價");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
String name=rs.getString(1);
out.print("<TD >"+name+"</TD>");
String unit=rs.getString(2);
out.print("<TD >"+unit+"</TD>");
String unitprice=rs.getString(3);
out.print("<TD >"+unitprice+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
con.close();
}
catch(SQLException e1) {}
%>
</BODY>
</HTML>
例子13(效果如圖5.34、5.35所示)
Example5_13.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<%! //聲明一個共享的連接對象:
Connection con=null;
%>
<% Statement sql=null;
ResultSet rs=null;
//第一個客戶負責建立連接對象:
if(con==null)
{ try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{out.print(e);
}
try {con=DriverManager.getConnection("jdbc:odbc:moon","sa","");
sql=con.createStatement();
rs =sql.executeQuery("SELECT * FROM students");
out.print("i am first");
}
catch(SQLException e)
{out.print(e);
}
}
//其它客戶通過同步塊使用這個連接:
else
{ synchronized(con)
{ try { sql=con.createStatement();
rs =sql.executeQuery("SELECT * FROM students");
out.print("i am not first");
}
catch(SQLException e)
{out.print(e);
}
}
}
try
{ out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"學號");
out.print("<TH width=100>"+"姓名");
out.print("<TH width=50>"+"數學成績");
out.print("<TH width=50>"+"英語成績");
out.print("<TH width=50>"+"物理成績");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
String number=rs.getString(1);
out.print("<TD >"+number+"</TD>");
String name=rs.getString(2);
out.print("<TD >"+name+"</TD>");
int math=rs.getInt("數學成績");
out.print("<TD >"+math+"</TD>");
int english=rs.getInt("英語成績");
out.print("<TD >"+english+"</TD>");
int physics=rs.getInt("物理成績");
out.print("<TD >"+physics+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
}
catch(SQLException e1) {}
%>
</BODY>
</HTML>
vote.jsp(效果如圖5.39所示):
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<% StringBuffer nameList=new StringBuffer();
Connection con;
Statement sql;
ResultSet rs;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
try{ con=DriverManager.getConnection("jdbc:odbc:vote","","");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM people");
nameList.append("<FORM action=startvote.jsp Method=post>");
nameList.append("<Table Border>");
nameList.append("<Table Border>");
nameList.append("<TR>");
nameList.append("<TH width=100>"+"姓名");
nameList.append("<TH width=50>"+"投票選擇");
nameList.append("</TR>");
while(rs.next())
{ nameList.append("<TR>");
String name=rs.getString(1);
nameList.append("<TD >"+name+"</TD>");
String s="<Input type=radio name=name value="+name+" >";
nameList.append("<TD >"+s+"</TD>");
nameList.append("</TR>") ;
}
nameList.append("</Table>");
nameList.append("<Input Type=submit value=提交>");
nameList.append("</FORM ");
con.close();
out.print(nameList);
}
catch(SQLException e1) {}
%>
</BODY>
</HTML>
startvote.jsp(效果如圖5.40、5.41所示):
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<html>
<body>
<%! //記錄總票數的變量:
int total=0;
//操作總票數的同步方法:
synchronized void countTotal()
{ total++;
}
%>
<% boolean vote=true;//決定用戶是否有權投票的變量。
//得到被選擇的候選人名字:
String name="";
name=request.getParameter("name");
if(name==null)
{name="?";
}
byte a[]=name.getBytes("ISO-8859-1");
name =new String(a);
//得到投票人的IP地址:
String IP=(String)request.getRemoteAddr();
//加載橋接器:
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
Connection con=null;
Statement sql=null;
ResultSet rs=null;
//首先查詢IP表,判斷該用戶的IP地址是否已經投過票:
try { con=DriverManager.getConnection("jdbc:odbc:vote","","");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM IP WHERE IP = "+"'"+IP+"'");
int row=0;
while(rs.next())
{ row++;
}
if(row>=1)
{ vote=false; //不允許投票。
}
}
catch(SQLException e)
{ }
if(name.equals("?"))
{ out.print("您沒有投票,沒有權利看選舉結果");
}
else
{
if(vote)
{ out.print("您投了一票");
//將總票數加1:
countTotal();
//通過連接數據庫,給該候選人增加一票,
//同時將自己的IP地址寫入數據庫 。
try
{ rs=sql.executeQuery("SELECT * FROM people WHERE name = "+"'"+name+"'");
rs.next();
int count=rs.getInt("count");
count++;
String condition=
"UPDATE people SET count = "+count+" WHERE name="+"'"+name+"'" ;
//執行更新操作(投票計數):
sql.executeUpdate(condition);
//將IP地址寫入IP表:
String to=
"INSERT INTO IP VALUES"+"("+"'"+IP+"'"+")";
sql.executeUpdate(to);
}
catch(SQLException e)
{ out.print(""+e);
}
//顯示投票后的表中的記錄:
try{ rs=sql.executeQuery("SELECT * FROM people");
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"姓名");
out.print("<TH width=50>"+"得票數");
out.print("<TH width=50>"+"總票數:"+total);
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
out.print("<TD >"+rs.getString(1)+"</TD>");
int count=rs.getInt("count");
out.print("<TD >"+count+"</TD>");
double b=(count*100)/total; //得票的百分比。
out.print("<TD >"+b+"%"+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
con.close();
}
catch(SQLException e)
{ }
}
else
{out.print("您已經投過票了");
}
}
%>
</BODY>
</HTML>
main.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY BGcolor=yellow>
<CENTER>
<FONT SIZE=2>
<P>成績錄入查詢系統
<BR>
<BR><A HREF="login.jsp">錄入人員登錄</A>
<BR><A HREF="inputMessage.jsp">錄入學生的基本信息</A>
<BR><A HREF="inputResult.jsp">錄入學生成績</A>
<BR><A HREF="modifySecret.jsp">修改密碼</A>
<BR><A HREF="inquire.jsp">查詢成績</A>
</FONT>
</CENTER>
</BODY>
</HTML>
登錄頁面(效果如圖5.44所示)
login.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY bgcolor=pink ><Font size=1>
<P>成績輸入人員登錄
<FORM action="login.jsp" Method="post">
<BR>輸入帳號:
<BR><Input type=text name="account">
<BR>輸入密碼:
<BR><Input type=password name="secret">
<BR><Input type=submit name="g" value="提交">
</FORM>
<% //獲取提交的帳號:
String account=request.getParameter("account");
if(account==null)
{account="";
}
byte b[]=account.getBytes("ISO-8859-1");
account=new String(b);
//獲取提交的密碼:
String secret=request.getParameter("secret");
if(secret==null)
{secret="";
}
byte c[]=secret.getBytes("ISO-8859-1");
secret=new String(c);
//查詢數據庫信息,驗證身份:
Connection con=null;
Statement sql=null;
ResultSet rs=null;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException event){}
try
{con=DriverManager.getConnection("jdbc:odbc:manage","","");
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -