| Monlystar's profileMyonlystar的共享空间BlogGuestbookNetwork | Help |
|
|
September 18 jsp页面实现分页显示数据库查询内容 对于一个中等以上项目来说,庞大的表信息无法实现在一个jsp页面中预览,分页显示势在必行。本程序主要实现jsp页中查询数据分页显示功能:
<%
String sql=null; ResultSet rs=null; int PageSize=5; int Page=1; int totalPage=1; int totalRecord=0; Connection con=splBean.getConnet(); Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); //算出总行数tatalRecord sql="select count(*) as recordcount from student"; rs=stmt.executeQuery(sql); if(rs.next()) totalRecord=rs.getInt("recordcount"); System.out.println(totalRecord); //算出总页数totalPage
if(totalRecord%PageSize==0) totalPage=totalRecord/PageSize; else totalPage=(int)Math.floor(totalRecord/PageSize)+1;//最后还空余一页情况,Math.floor(x):比x小的最大值。 if(totalPage==0) totalPage=1;//数据库中一条数据也没有的处理情况; //捕捉form表单提交的Page元素 if(request.getParameter("Page")==null||request.getParameter("Page")=="") Page=1; else try{ Page=Integer.parseInt(request.getParameter("Page")); }catch(java.lang.NumberFormatException e){ Page=1; } //如果Page非常规数值处理 if(Page>totalPage) Page=totalPage; if(Page<1) Page=1; sql="select * from student"; rs=stmt.executeQuery(sql); rs.absolute((Page-1)*PageSize+1); ResultSetMetaData meta=rs.getMetaData(); int col=meta.getColumnCount();//得到表头有多少列 out.println("<table border='1'>"); //输出表头信息 out.println("<tr>"); for(int i=1;i<col+1;i++) { out.println("<td>"); out.print("列名:"); out.print(meta.getColumnName(i)+"<br>"); out.print("类型:"); out.print(typetoString(meta.getColumnType(i)));//检索并返回指定列的sql类型 out.println("</td>"); } out.println("<td>更改</td>"); out.println("<td>删除</td>"); out.println("</tr>"); for(int iPage=1;iPage<PageSize+1;iPage++) { out.print("<tr><td>"+rs.getString(1)+"</td>"); out.print("<td>"+rs.getString(2)+"</td>"); out.print("<td>"+rs.getString(3)+"</td>"); out.print("<td>"+rs.getString(4)+"</td>"); out.print("<td>"+rs.getString(5)+"</td>"); out.print("<td>"+rs.getString(6)+"</td>"); out.print("<td><a href=\"change.jsp?Xuehao="+rs.getString(1)+"\">修改</a></td>"); out.print("<td><a href=\"del.jsp?Xuehao="+rs.getString(1)+"\">删除</a></td>"); if(!rs.next()) break; } out.println("</table>"); stmt.close(); con.close(); %> 其中的typetoString()函数的作用是转换得到sql相应的结果类型.如typetoString(1)的得到的结果伟integer
截图:
在一个jsp页面中嵌套另一个jsp页面 扎堆实验室已经好几天了,一直在学习jsp,javascript来构建动态网站,还好自己有些java基础,也希望自己能一点一点慢慢的进步,以前一直不明白,页面的布局是怎么实现的,今天才明白原来是依靠一个一个<table>中的<td>镶嵌来实现的。今天终于弄明白了一件事就是:在一个jsp页面中显示另一个页面,原来是依靠<iframe>来实现的。
自己现在知道的在一个jsp页面中嵌套另外一个jsp页面,有三种方法:
1、通过<%@ include file="header.jsp"%>这种方法只能实现静态页面的加载,最常用是在一个项目中实现通用页头header.jsp和footer.jsp的加载。
2、通过<%@ include="tt.jsp"%>这种做法可以实现动态页面的加载,但其需要向页面传递参数;
3、通过<iframe src="jsp的路径">来向页面加载另一个jsp页面,是一个内联框架。
页面处理较仓促,未来的及美工,实例演示在一个jsp页面中嵌套另一个页面。
ps:最近越来越明白一个问题就是,编程学习,犹如逆水行舟,不进则退。上半年还写过自定义标签,现在却有点儿忘了,明天争取一天复习一下自定义标签。
September 04 java中的几个关键字abstract Java 关键字 abstract 关键字可以修改类或方法。 abstract 类可以扩展(增加子类),但不能直接实例化。 abstract 方法不在声明它的类中实现,但必须在某个子类中重写。 示例 public abstract class MyClass
{
}
public abstract String myMethod();
注释 采用 abstract 方法的类本来就是抽象类,并且必须声明为 abstract。 abstract 类不能实例化。 仅当 abstract 类的子类实现其超类的所有 abstract 方法时,才能实例化 abstract 类的子类。这种类称为具体类,以区别于 abstract 类。 如果 abstract 类的子类没有实现其超类的所有 abstract 方法,该子类也是 abstract 类。 abstract 关键字不能应用于 static、private 或 final 方法,因为这些方法不能被重写,因此,不能在子类中实现。 final 类的方法都不能是 abstract,因为 final 类不能有子类。 extends Java 关键字 extends 关键字用在 class 或 interface 声明中,用于指示所声明的类或接口是其名称后跟有 extends 关键字的类或接口的子类。 示例 public class Rectangle extends Polygon
{
}
注释 在上例中,Rectangle 类继承 Polygon 类的所有 public 和 protected 变量和方法。 Rectangle 类可以重写 Polygon 类的任何非 final 方法。 一个类只能扩展一个其他类。 final Java 关键字 final 关键字可以应用于类,以指示不能扩展该类(不能有子类)。 final 关键字可以应用于方法,以指示不能重写任何子类中的方法。 示例 public final class MyFinalClass
{
}
public class MyClass
{
public final String myFinalMethod()
{
<statements>
}
}
注释 一个类不能同时是 abstract 又是 final。abstract 意味着必须扩展类,final 意味着不能扩展类。 一个方法不能同时是 abstract 又是 final。abstract 意味着必须重写方法,final 意味着不能重写方法。 finally Java 关键字 finally 关键字用来定义始终在 try-catch-finally 语句中执行的块。 finally 块通常包含清理代码,用在部分执行 try 块后恢复正常运行。 示例 try
{
<可能引发异常的块>
}
catch (<java.lang.Exception 或子类> e)
{
<处理异常 e 的代码>
}
finally
{
<有异常或无异常情况下都执行的语句>
}
注释 开始和结束标记 { 和 } 是 finally 子句语法的一部分,即使该子句只包含一个语句,也不能省略这两个标记。 每个 try 块都必须至少有一个 catch 或 finally 子句。 如果执行 try 块的任何部分,不论是否出现异常,也不论 try 或 catch 块是否包含 return、continue 或 break 语句,都一定会执行 finally 块中的代码。 如果不出现异常,控件将跳过 try 块,进入 finally 块。 如果在执行 try 块期间出现异常,并且相应的 catch 块包含 break、continue 或 return 语句,控件将首先穿过 finally 块,之后再执行 break、continue 或 return。 implements Java 关键字 implements 关键字在 class 声明中使用,以指示所声明的类提供了在 implements 关键字后面的名称所指定的接口中所声明的所有方法的实现。 示例 public class Truck implements IVehicle
{
}
注释 在上例中,Truck 类必须提供在 IVehicle 接口中所声明的所有方法的实现。 否则,Truck 类将是独立的;它可以声明其他方法和变量,并扩展另一个类。 一个类可以实现多个接口。 instanceof Java 关键字 instanceof 关键字用来确定对象所属的类。 示例 if (node instanceof TreeNode)
{
<statements>
}
注释 在上例中,如果 node 是 TreeNode 类的实例,或者是 TreeNode 的子类的实例,则 instanceof 表达式的值将为 true。 interface Java 关键字 interface 关键字用来声明新的 Java 接口,接口是方法的集合。 接口是 Java 语言的一项强大功能。任何类都可声明它实现一个或多个接口,这意味着它实现了在这些接口中所定义的所有方法。 示例 public interface IPolygon
{
public float getArea();
public int getNumberOfSides();
public int getCircumference();
}
注释 实现了接口的任何类都必须提供在该接口中的所有方法的实现。 一个类可以实现多个接口。 static Java 关键字 static 关键字可以应用于内部类(在另一个类中定义的类)、方法或字段(类的成员变量)。 示例 public class MyPublicClass
{
public final static int MAX_OBJECTS = 100;
static int _numObjects = 0;
static class MyStaticClass
{
}
static int getNumObjects()
{
}
}
注释 通常,static 关键字意味着应用它的实体在声明该实体的类的任何特定实例外部可用。 static(内部)类可以被其他类实例化和引用(即使它是顶级类)。在上面的示例中,另一个类中的代码可以实例化 MyStaticClass 类,方法是用包含它的类名来限定其名称,如 MyClass.MyStaticClass。 static 字段(类的成员变量)在类的所有实例中只存在一次。 可以从类的外部调用 static 方法,而不用首先实例化该类。这样的引用始终包括类名作为方法调用的限定符。在上面的示例中,MyClass 类外部的代码以 MyClass.getNumObjects() 的形式调用 getNumObjects() static 方法。 模式: public final static <type> varName = <value>; 通常用于声明可以在类的外部使用的类常量。在引用这样的类常量时需要用类名加以限定。在上面的示例中,另一个类可以用 MyClass.MAX_OBJECTS 形式来引用 MAX_OBJECTS 常量。 switch Java 关键字 switch 语句用于基于某个表达式选择执行多个代码块中的某一个。 示例 int arg = <some value>;
switch (arg)
{
case 1:
<statements>
break;
case 2:
<statements>
break;
default:
<statements>
break;
}
char arg = <some value>;
switch (arg)
{
case 'y':
case 'Y':
<statements>
break;
case 'n':
case 'N':
<statements>
break;
default:
<statements>
break;
}
注释 switch 条件的计算结果必须等于 byte、char、short 或 int。 case 块没有隐式结束点。break 语句通常在每个 case 块末尾使用,用于退出 switch 语句。 如果没有 break 语句,执行流将进入所有后面的 case 和/或 default 块。 synchronized Java 关键字 synchronized 关键字可以应用于方法或语句块,并为一次只应由一个线程执行的关键代码段提供保护。 示例 public class MyClass
{
public synchronized static String mySyncStaticMethod()
{
}
public synchronized String mySyncMethod()
{
}
{
public class MyOtherClass
{
Object someObj;
public String myMethod()
{
<statements>
synchronized (someObj)
{
<statements affecting someObj>
}
}
}
注释 synchronized 关键字可防止代码的关键代码段一次被多个线程执行。 如果应用于静态方法(如上例中的 MySyncStaticMethod),那么,当该方法一次由一个线程执行时,整个类将被锁定。 如果应用于实例方法(如上例中的 MySyncMethod),那么,当该方法一次由一个线程访问时,该实例将被锁定。 如果应用于对象或数组,当关联的代码块一次由一个线程执行时,对象或数组将被锁定。 throw Java 关键字 throw 关键字用于引发异常。 示例 import java.io.IOException;
public class MyClass
{
public method readFile(String filename) throws IOException
{
<statements>
if (error)
{
throw new IOException("error reading file");
}
}
}
注释 throw 语句将 java.lang.Throwable 作为参数。Throwable 在调用栈中向上传播,直到被适当的 catch 块捕获。 引发非 RuntimeException 异常的任何方法还必须在方法声明中使用 throws 修饰符来声明它引发的异常。 throws Java 关键字 throws 关键字可以应用于方法,以便指出方法引发了特定类型的异常。 示例 import java.io.IOException;
public class MyClass
{
public method readFile(String filename) throws IOException
{
<statements>
if (error)
{
throw new IOException("error reading file");
}
}
}
注释 throws 关键字将逗号分隔的 java.lang.Throwables 列表作为参数。 引发非 RuntimeException 异常的任何方法还必须在方法声明中使用 throws 修饰符来声明它引发的异常。 要在 try-catch 块中包含带 throws 子句的方法的调用,必须提供该方法的调用者。 transient Java 关键字 transient 关键字可以应用于类的成员变量,以便指出该成员变量不应在包含它的类实例已序列化时被序列化。 示例 public class MyClass
{
private transient String password;
}
September 02 关于javaBean中文件绝对路径的自动生成不知不觉在实验室已经待了两个星期多了,为了项目做准备,关于jsp用到的Bean类中怎样生成文件的绝对路径问题埋头苦读了两天,总算有点眉目,现在写出来与大家一起共享:)
思想是:通过jsp页面中获得绝对路径,然后传递给Bean类;关键代码如下:
jsp中:
<jsp:useBean id="splBean" class="xingzuo.XingZuoBean"/>
。。。。。。。。。。。。。
<body>
<% String path=request.getRealPath("/"); String text_path=path+"text"; splBean.setText_path(text_path); %>
这样在javaBean中就可以通过text_path变量得到所要访问的文件:
javaBean中的代码如下:
。。。。。。。
if((m==3&&d>=21)||(m==4&&d<=20)) {x="\\1.txt";y="img/1.gif";}
。。。。。。。
String p=text_path+x;
InputStream is = new FileInputStream(p); 。。。。。。。
这样就会把项目中的相对路径转化成绝对路径了:)不知道这个方法麻烦不,希望大家一起分享:) August 28 男性英文名對照及涵意Aaron 艾倫 巍然的高山 受神啟示的 Rod 羅德 公路服務者 有名氣的 看英语新闻必须记住的60个短语英语新闻标题总是力求用有限的字数来表达新闻的内容,为此,在措词上尤其要狠下功夫,选词尽可能经济达意、简短明了,偏爱选用那些短小精悍或字母最少的动词。这是因为短小易懂、形象生动的措词不仅能增强新闻的简洁性和可读性,而且还能节省版面篇幅。如表示“破坏”或“损坏”一词意义的动词,标题一般不用damage,而用一些较之简短的词,如hit,harm,hurt, ruin或wreck等。又如表示“放弃”这一概念的动词,标题一般不用abandon,而用drop,give up,quit,skip或yield 等,表示“爆炸”之类的动词意义时,一般不用 explode,而用blast,crash, ram或smash等词。简而言之,英语新闻标题大都喜欢选用字形短小、音节不多而意义又比较广泛的词。 这类动词在标题中屡见不鲜,读者平时阅读时不妨多加留意,这对于提高英语水平,尤其是熟悉英语同义动词,无疑是大有裨益的。为便于读者更好地理解英语新闻标题,现再列举一些常见诸报端的标题小词,以备不时之需: aid=assist(帮助,援助) alter=change or modify(改变) ask=inquire(询问) assail=denounce(谴责) axe=dismiss\\\\reduce(解雇,减少) balk=impede(阻碍) ban=prohibit or forbid(禁止) bar=prevent(防止,阻止) bare=expose or reveal(暴露,揭露) blast=explode(爆炸) begin=commence(开始) bid=attempt(努力) bilk=cheat(欺骗) bolt=desert or abandon(放弃) boost=increase(增加,提高) check=examine(检查) claim=ause the death of...(夺去……的生命) clash=disagree strong1y(发生分歧,争议) curb=control or restrict(控制) dip=decIlne or decrease(下降) ease=lessen(减轻,缓和) end=terminate(结束,中止) flay=criticize(批评) flout=insult(侮辱) 求助:相对路径和绝对路径今天把java,jsp.tomcat的相对路径和绝对路径研究了一下,脑袋都大了,付了。。。,还是不慎明了
1.tomcat中根目录是webpps/root/
August 27 CSS中背景图片定位方法这篇笔记很专业,对制作网页不感兴趣的朋友就不用看了。 我总觉得,CSS中背景图片的定位有些似是而非,这个问题困扰我很久了,今天总算搞懂了,一定要记下来,防止忘记。 在CSS中,背景图片的定位方位有3种:
上面这三句语句,都将图片定位在背景的左上角,表面上看效果是一样的,实际上第三种定位机制与前两种完全不同。 前两种定位,都是将背景图片左上角的原点,放置在规定的位置。请看下面这张图,规定的位置是“20px 10px”和"60px 50px",都是图片的原点在那个位置上,图中用X表示。
但是第三种定位,也就是百分比定位,不是这样。它的放置规则是,图片本身(x%,y%)的那个点,与背景区域的(x%,y%)的那个点重合。比如,如果放置位置是“20% 10%”,实际结果如下图,可以看到这个点是在图片本身的“20% 10%”的位置上。
下面是一个有趣的例子。 背景图片是四个边长为100px的方块叠在一起:
请问怎样才能将其横过来:
答案是,在网页中先设置四个div区域:
然后,这样编写CSS:
点击这里查看最后的效果。可以看到第二和第三个方块的设置,并不是一般想象中的“0% 25%”和“0% 75%”。 August 26 sql经典语句create function udf_PreviousWorkDate(@Date datetime) 在平静的生活中,我一步一脚印的走向我的目标。每天会过的很充实,但每天都有新的收获。returns datetime -- 返回 @Date 的上一个工作日 begin /* declare @i int set @i = 3 declare @Date datetime set @Date = '2005-01-02' -- */ return case when (@@Datefirst + datepart(weekday,@Date)) % 7 = 2 -- Monday then dateadd(day,-3,@Date) when (@@Datefirst + datepart(weekday,@Date)) % 7 = 1 -- Sunday then dateadd(day,-2,@Date) else dateadd(day,-1,@Date) end end go create function udf_WorkDateAdd(@i integer,@Date datetime) returns datetime -- 返回 @Date 加上一段 @i 个工作日的新值 begin declare @ int set @ = 0 while @ = 0 then --dbo.udf_nextworkdate(@Date) case when (@@Datefirst + datepart(weekday,@Date)) % 7 = 6 -- Friday then dateadd(day,3,@Date) when (@@Datefirst + datepart(weekday,@Date)) % 7 = 0 -- saturday then dateadd(day,2,@Date) else dateadd(day,1,@Date) end else --dbo.udf_previousworkdate(@Date) case when (@@Datefirst + datepart(weekday,@Date)) % 7 = 2 -- Monday then dateadd(day,-3,@Date) when (@@Datefirst + datepart(weekday,@Date)) % 7 = 1 -- Sunday then dateadd(day,-2,@Date) else dateadd(day,-1,@Date) end end set @ = @ + 1 end return @Date end go create function udf_GetStar (@ datetime) RETURNS varchar(100) -- 返回日期所属星座 BEGIN RETURN ( --declare @ datetime --set @ = getdate() select max(star) from ( select '魔羯座' as star,1 as [month],1 as [day] union all select '水瓶座',1,20 union all select '双鱼座',2,19 union all select '牡羊座',3,21 union all select '金牛座',4,20 union all select '双子座',5,21 union all select '巨蟹座',6,22 union all select '狮子座',7,23 union all select '处女座',8,23 union all select '天秤座',9,23 union all select '天蝎座',10,24 union all select '射手座',11,22 union all select '魔羯座',12,22 ) stars where dateadd(month,[month] - 1,dateadd(year,year(@) - year(0),0)) + [day] - 1 = ( select max(dateadd(month,[month] - 1,dateadd(year,year(@) - year(0),0)) + [day] - 1) from ( select '魔羯座' as star,1 as [month],1 as [day] union all select '水瓶座',1,20 union all select '双鱼座',2,19 union all select '牡羊座',3,21 union all select '金牛座',4,20 union all select '双子座',5,21 union all select '巨蟹座',6,22 union all select '狮子座',7,23 union all select '处女座',8,23 union all select '天秤座',9,23 union all select '天蝎座',10,24 union all select '射手座',11,22 union all select '魔羯座',12,22 ) stars where @ >= dateadd(month,[month] - 1,dateadd(year,year(@) - year(0),0)) + [day] - 1 ) ) end SQL Server 日期算法 一周的第一天 select @@DATEFIRST 一个月的第一天 select dateadd(mm,datediff(mm,0,getdate()),0) 本周的星期一 select dateadd(wk,datediff(wk,0,getdate()),0) 一年的第一天 SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) 季度的第一天 SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) 当天的零时 SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0) 上个月的最后一天 :本月第一天减2ms. SELECT dateadd(ms,-2,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) 本月的最后一天 SELECT dateadd(ms,-2,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) 本月的第一个星期一 去掉时分秒 DATEADD(day, DATEDIFF(day,0,getdate()), 0) 显示星期几 select datename(weekday,getdate()) 如何取得某个月的天数 SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))) 判断是否闰年: SELECT case day(dateadd(mm, 2, dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)))) when 28 then '平年' else '闰年' end 一个季度多少天 declare @m tinyint,@time smalldatetime select @m=month(getdate()) select @m=case when @m between 1 and 3 then 1 when @m between 4 and 6 then 4 when @m between 7 and 9 then 7 else 10 end select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01' select datediff(day,@time,dateadd(mm,3,@time)) April 24 只爱陌生人人的一生会遇见几个让你心甘情愿跟他走的陌生人? 也许有一个,也许有两个,也许你一个也遇不到。 而她遇到了,在那列开往巴黎的火车上。 她告诉他她想成为作家、演员、开一家动物收容站,他告诉她他看见过彩虹里死去的祖母朝他微笑。 我想她应该很喜欢坐火车,摇摇晃晃的前进容易让人有晕眩的感觉,就像坐在回旋木马上。她跟他下了车,她不想要10年或者20年后回想起来后悔当时为什么不下车。 年轻真好,我们可以冲动,可以后悔,我们还有机会重来。 他们在公交车里互相提问,她金色的头发在他的手臂上轻抚;他们在唱片店里听歌,眼神不敢直接相触,只有歌声泄露了彼此内心的秘密。 There's a wind that blows in from the north and it says that loving takes this course come here come here I'm not impossible to touch I have never wanted you so much come here come here Have I never laid down by your side baby let's forget about this pride come here come here 他们一起去看无名公墓里的小女孩,她感叹年华匆匆逝去;他们在流转的摩天轮上远眺,情不自禁的接吻;他们走进教堂,走路都可以听到脚步的回声;他们在午夜的街道上携手同游…… 不知道那个看手相的老人有没有看出来这一夜对他们来说意味着什么,但是那个时候他们俩都知道了这个夜晚承载着他们梦想中的爱。If there's any kind of magic in this world it must be in the attempt of understanding someone sharing something. 也许因为他们拥有的仅仅是这样一夜,一切都变得珍贵起来。她说就算今晚是我们仅有的一夜也不算太坏,可是她也说了其实坐飞机也没有那么可怕。是的,在爱情面前我们都害怕我们都矛盾,他们期待再见面,可是又害怕这样特别的夜晚会因为留下地址电话而变得庸俗起来。到目前为止,他对她,她对他来说都还是陌生人。他们甚至不知道对方的全名。可是这又有什么关系呢?我不用知道你的名字你的电话你的地址你交过几个女朋友,我爱的就是你,而你就在我的身边。陌生意味着你的一切对我来说都是崭新的,跟你在一起时时刻刻都有惊喜。正因为他是陌生人,所以她可以用最真实的一面去爱,对于他来说也是。 我常常梦想这样的场景,在有着淡淡阳光的午后和某人坐在一起聊天,他告诉我他最爱在沙滩边散步,我说我小时候最怕爸爸不给我讲故事,太阳透过树叶斑驳的照在他脸上,那微笑晃得我睁不开眼睛,夜晚的时候我们坐在公车的最后一排,即使再摇晃颠簸也不会感到心慌,因为有他的肩膀。即使我们最后分开,我也不会有遗憾,因为有这样的一刻,我爱着你你也爱着我。 我将于茫茫人海中寻访我唯一灵魂之伴侣,得之,我幸,不得,我命。 Daydream delusion Limousine eyelash Oh,baby,with your pretty face Drop a tear in my wine glass Look at those big eyes See what you mean to me Sweetcakes and milk shakes I am a delusion angel I'm a fantasy parade I want you to know what I think Don't want you to guess anymore You have no idea where I came from We have no idea where we're going Lodged in life Like branches in the river Flowing downstream Caught in the current I carry you You'll carry me That's how it could be Don't you know me? Don't you know me by now? April 04 改变学生终身的100句至理名言1. 择善人而交, 择善书而读, 择善言而听, 择善行而从。
|
|
|