?? 第6章(2).txt
字號:
<Input type="radio" name="selection" value="A">A
<Input type="radio" name="selection" value="B">B
<Input type="radio" name="selection" value="C">C
<Input type="radio" name="selection" value="D">D
<BR><Input type="submit" name="tijaio" value="提交答案">
</FORM>
<% //判斷客戶是否選擇了答案:
String s=request.getParameter("selection");
if(s==null)
{s="";
}
%>
<%if(!(s.equals("")))
{ // 將答案送給beans,下面的標簽只有提交了相應的表單才被執行:
%>
<jsp:setProperty name= "test" property="selection" />
<%}
%>
<%--通過beans得到分數--%>
<P> 您現在的得分是:
<% if(!(s.equals("")))
{%>
<jsp:getProperty name= "test" property="score" />
<%}
%>
</BODy>
</HTML>
JSPCalendar.java:
import java.util.*;
public class JSPCalendar
{ Calendar calendar = null;
int year,dayOfMonth,dayOfYear,weekOfYear,
weekOfMonth,dayOfWeek,hour,minute,second;
String day,date,time;
public JSPCalendar()
{calendar = Calendar.getInstance();
Date time = new Date();
calendar.setTime(time);
}
//獲取年份:
public int getYear()
{return calendar.get(Calendar.YEAR);
}
//獲取月,進行格式處理:
public String getMonth() {
int m=1+calendar.get(Calendar.MONTH);
String months[]={ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" };
if (m>12)
return "0";
return months[m - 1];
}
//獲取星期幾,進行格式處理:
public String getDay()
{ int n =getDayOfWeek();
String days[]={"日","一", "二", "三","四", "五", "六"};
if(n>7)
return "星期?";
return days[n];
}
//獲取:年、月、日
public String getDate()
{ return getYear()+ "/" + getMonth()+"/"+getDayOfMonth();
}
public String getTime() //獲取:時:分:秒
{return getHour() + ":" + getMinute() + ":" + getSecond();
}
public int getDayOfMonth() //獲取當前時間是一月中的哪一天
{return calendar.get(Calendar.DAY_OF_MONTH);
}
public int getDayOfYear() //獲取當前時間是一年中的哪一天
{return calendar.get(Calendar.DAY_OF_YEAR);
}
public int getWeekOfYear() //獲取當前時間是一年中的哪個星期
{return calendar.get(Calendar.WEEK_OF_YEAR);
}
public int getWeekOfMonth() //獲取當前時間是一年中的哪個星期
{ return calendar.get(Calendar.WEEK_OF_MONTH);
}
public int getDayOfWeek() //獲取當前時間是一周中的哪一天
{return calendar.get(Calendar.DAY_OF_WEEK)-1;
}
public int getHour() //獲取小時
{return calendar.get(Calendar.HOUR_OF_DAY);
}
public int getMinute() //獲取分鐘
{return calendar.get(Calendar.MINUTE);
}
public int getSecond() //獲取秒
{return calendar.get(Calendar.SECOND);
}
}
顯示日歷時間的頁面(效果如圖6.33所示)
calendar.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="JSPCalendar" %>
<HTML>
<BODY>
<jsp:useBean id="clock" class="JSPCalendar" scope="page" >
</jsp:useBean>
<td align="center">
<font color="red"><jsp:getProperty name="clock" property="year"/></font>年
<font color="red"><jsp:getProperty name="clock" property="month"/></font>月
<font color="red"><jsp:getProperty name="clock" property="dayOfMonth"/></font>日
星期<font color="blue"><jsp:getProperty name="clock" property="day"/></b></font>
</td>
<BR>當前時間為<jsp:getProperty name="clock" property="time"/>
<BR>今天是今年的第<jsp:getProperty name="clock" property="dayOfYear"/>天
<BR>本周是今年的第<jsp:getProperty name="clock" property="weekOfYear"/>周
<BR>本周是本月的第<jsp:getProperty name="clock" property="weekOfMonth"/>周
</BODY>
</HTML>
分頁beans
PageNumber.java:
public class PageNumber
{ int rowCount=1, //總的記錄數。
pageSize=1, //每頁顯示的記錄數。
showPage=1, //設置欲顯示的頁碼數。
pageCount=1; //分頁之后的總頁數。
public void setRowCount(int n)
{ rowCount=n;
}
public int getRowCount()
{ return rowCount;
}
public void setPageCount(int r,int p)
{ rowCount=r;
pageSize=p;
int n=(rowCount%pageSize)==0?(rowCount/pageSize):(rowCount/pageSize+1) ;
pageCount=n;
}
public int getPageCount()
{return pageCount;
}
public void setShowPage(int n)
{showPage=n;
}
public int getShowPage()
{ return showPage;
}
public void setPageSize(int n)
{ pageSize=n;
}
public int getPageSize()
{ return pageSize;
}
}
分頁顯示記錄的頁面(效果如圖6.34所示)
showList.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<%@ page import="PageNumber" %>
<%@ page import="java.io.*" %>
<jsp:useBean id="handlePage" class="PageNumber" scope="session" >
</jsp:useBean>
<HTML>
<BODY bgcolor=cyan><Size=1>
<%! //聲明一個共享的連接對象:
Connection con=null;
//顯示數據庫記錄的方法:
public void showList(ResultSet rs,javax.servlet.jsp.JspWriter out, int n)
{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>");
for(int i=1;i<=n;i++)
{ 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>") ;
rs.next();
}
out.print("</Table>");
}
catch(Exception e1) {}
}
%>
<% Statement sql=null;
ResultSet rs=null;
int rowCount=0; //總的記錄數。
//第一個客戶負責建立連接對象:
if(con==null)
{ try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{out.print(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 number=rs.getRow();
//獲取記錄數:
rowCount=number;
//設置每頁顯示的記錄數:
handlePage.setPageSize(2);
//計算總頁數:
handlePage.setPageCount(rowCount,handlePage.getPageSize());
out.print("共有"+handlePage.getPageCount()+"頁,");
out.print("每頁顯示"+handlePage.getPageSize()+"條記錄");
}
catch(SQLException e)
{out.print(e);
}
}
//其它客戶通過同步塊使用這個連接:
else
{ synchronized(con)
{ try { sql=
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
//返回可滾動的結果集:
rs=sql.executeQuery("SELECT * FROM students");
//將游標移動到最后一行:
rs.last();
//獲取最后一行的行號:
int number=rs.getRow();
//獲取記錄數:
rowCount=number;
//設置每頁顯示的記錄數:
handlePage.setPageSize(2);
//計算總頁數:
handlePage.setPageCount(rowCount,handlePage.getPageSize());
out.print("共有"+handlePage.getPageCount()+"頁,");
out.print("每頁顯示"+handlePage.getPageSize()+"條記錄");
}
catch(SQLException e)
{out.print(e);
}
}
}
%>
<%--選擇顯示某頁的表單 --%>
<% String str=response.encodeRedirectURL("showList.jsp");
%>
<Form action="<%=str%>" method="post" >
顯示下一頁:<Input Type="hidden" name="a" value="next">
<Input type=submit value="next">
</FORM>
<Form action="<%=str%>" method="post" >
顯示上一頁:<Input Type="hidden" name="a" value="previous">
<Input type="submit" value="previous">
</FORM>
<Form action="<%=str%>" method="post" >
輸入欲要顯示的頁<Input type="text" name="a" value="1">
<Input type="submit" value="submit">
</FORM>
<% //獲取表單提交的信息:
String s=request.getParameter("a");
if(s==null)
{s="1";
}
if(s.equals("next"))
{ int n=handlePage.getShowPage(); //獲取目前的頁數。
n=(n+1); //將頁數增1。
if(n>handlePage.getPageCount())
{ n=1;
}
handlePage.setShowPage(n); //顯示該頁
out.print("目前顯示第"+handlePage.getShowPage()+"頁");
//將游標移到:
rs.absolute((n-1)*handlePage.getPageSize()+1);
//顯示第該頁的內容:
showList(rs,out,handlePage.getPageSize());
}
else if(s.equals("previous"))
{ int n=handlePage.getShowPage(); //獲取目前的頁數。
n=(n-1); //將頁數減1。
if(n<=0)
{ n=handlePage.getPageCount();
}
handlePage.setShowPage(n); //顯示該頁
out.print("目前顯示第"+handlePage.getShowPage()+"頁");
//將游標移到:
rs.absolute((n-1)*handlePage.getPageSize()+1);
//顯示第該頁的內容:
showList(rs,out,handlePage.getPageSize());
}
else
{ int m=Integer.parseInt(s);
handlePage.setShowPage(m);
out.print("目前顯示第"+handlePage.getShowPage()+"頁");
int n=handlePage.getShowPage();
//將游標移到 (n-1)*handlePage.getPageSize()+1;
rs.absolute((n-1)*handlePage.getPageSize()+1);
//顯示該頁的內容:
showList(rs,out,handlePage.getPageSize());
}
%>
</BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -