[b]Resultset求行数和列数[/b]

[quote="javaeyes"]在Java中,获得ResultSet的总行数的方法有以下几种。
第一种:利用ResultSet的getRow方法来获得ResultSet的总行数

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);    
ResultSet rset = stmt.executeQuery("select * from yourTableName");    
rset.last();    
int rowCount = rset.getRow(); //获得ResultSet的总行数




第二种:利用循环ResultSet的元素来获得ResultSet的总行数



ResultSet rset = stmt.executeQuery("select * from yourTableName");    
int rowCount = 0;    
while(rset.next()) {    
   rowCount++;    
}



rowCount就是ResultSet的总行数。



第三种:利用sql语句中的count函数获得ResultSet的总行数


ResultSet rset = stmt.executeQuery("select count(*) totalCount from yourTableName");    
int rowCount = 0;    
if(rset.next()) {    
   rowCount=rset .getInt("totalCount ");    
}



rowCount就是ResultSet的总行数。 [/quote]



[size=medium][b]rs中指针的用法[/b][/size]



//取得结果集
	public static ResultSet doSelect(String sql){
		conn=getConn();
		try {
			stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
			rs=stmt.executeQuery(sql);
		} catch (SQLException e1) {
			e1.printStackTrace();
		}
		return rs;
	}
	//取得数据记录数
	public static int getRsRow(String sql){
		int rsRow=0;
		rs=doSelect(sql);
		try {
			rs.last();
			rsRow=rs.getRow();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return rsRow;
	}

stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); 
不带参数使用默认值:             
 createStatement()=createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY) 
1.TYPE_FORWORD_ONLY,只可向前滚动;       

 2.TYPE_SCROLL_INSENSITIVE,双向滚动,但不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反应出来。       

 3.TYPE_SCROLL_SENSITIVE,双向滚动,并及时跟踪数据库的更新,以便更改ResultSet中的数据。




[b]如何在Javascript中使用JSP语句?[/b]


Javascript的语句体放在<%     %>标记对中就可以使用了。如   
  <script   language=javascript>   
      function   show(arg)   {   
          <%   String   hello="hello   world!";%>   
          if(arg==1)   {   
                alert("<%=hello%>");   
          }   
      }   
  </script>   
  象这里的hello就是JSP的变量,可以在JS中使用。





查看sql执行的条数,计算select查询出来的条数,查询数据条数



select count(*) from (SELECT * FROM kk.kkhmd)

这样的结果就显示kk.kkhmd表中的记录数,而不是把数据全部查出来

  COUNT(*)
----------
        51





[size=medium][b]三目运算符[/b][/size]


 [quote]<表达式1>?<表达式2>:<表达式3>; "?"运算符的含义是: 先求表达式1的值, 如果为真, 则求表达式2 的值并把它作为整个表达式的值; 如果表达式1 的值为假, 则求表达式3 的值并把它作为整个表达式的值.[/quote]



[size=medium][b]window.onload[/b][/size]



[quote]

<html>

<head>

<title></title>
<script type="text/javascript">
window.onload=function chagep(){//页面加载时即加载此函数
    alert("a");//弹出对话框
    document.location.href="b.htm";//将URL改到b.htm,实现的页面效果是弹出对话框事件后,页面转到b.htm
}
</script>
</head>

<body>
A
</body>

</html>




[/quote]



[b][size=medium]JS中Replace()方法的用法[/size][/b]



[quote]replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。




如:将使用 "W3School" 替换字符串中的 "Microsoft":




<script type="text/javascript">

var str="Visit Microsoft!"
document.write(str.replace(/Microsoft/, "W3School"))

</script>

输出


Visit W3School![/quote]



[size=medium][b]document.location.href和document.location.replace[/b][/size]



[quote]document.location.href和document.location.replace都可以实现从A页面切换到B页面,但他们的区别是:



用document.location.href切换后,可以退回到原页面。



而用document.location.replace切换后,不可以通过“后退”退回到原页面。



关于document.location.href或其他可回退的切换方式,我还发现一个细节,



用个例子来说明:



假设有A.htm B.htm C.htm三个页面



A.htm里有这样一句:document.location.href="b.htm";



b.htm里有这样一句:document.location.href="c.htm";



注意两个都是可回退的切换。




1:当从A切换到B再切换到C时,实际内存中保留了三个页面:A、B、C



2:回退到B时,C页面被清出内存!



3:再次回退,到A页面时,B页面也被清出内存!



4:再次向前(不是用切换而是用向前)转到B页面时,



内存中保留的是A和B



>>>当一个文档被location.replace()替换后,它就会从当前的历史对象中移除了[/quote]




[b][size=large]JavaScript indexOf() 方法[/size][/b]



[quote]indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。


indexOf() 方法对大小写敏感!



如果要检索的字符串值没有出现,则该方法返回 -1。



用法:


语法


stringObject.indexOf(searchvalue,fromindex)参数 描述


searchvalue 必需。规定需检索的字符串值。


fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。



说明


该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。




在本例中,我们将在 "Hello world!" 字符串内进行不同的检索:



<script type="text/javascript">

var str="Hello world!"
document.write(str.indexOf("Hello") + "<br />")
document.write(str.indexOf("World") + "<br />")
document.write(str.indexOf("world"))

</script>




以上代码的输出:



0
-1
6

[/quote]



[size=large][b]JSP下如何取得站点根目录[/b]?[/size]



request.getRealPath("") 
就是取得你当前运行文件在服务器上的绝对路径. 


request.getRealPath("/") 
取得当前站点的根目录.



request.getRealPath() 方法现在已经过期,目前推荐使用下面的方法:

request.getSession().getServletContext().getRealPath(""); 

   [code="jsp"] String url=request.getRealPath("/");//取得根目录
    String proUrl=url+"WEB-INF\\classes\\Utils\\jdbc.properties";//取得根目录下的jdbc.properties文件的路径

[/code]




[size=medium][b]在按钮中调用JS并实现传值。[/b][/size]


[quote]


基本的按钮:


<input type=”button” value=”注册”/>



加入JS事件:<input type=”button” value=”注册” οnclick=”此处加入JS函数调用名称”/>


<input type=”button” value=”注册”  onclick=”此处加入JS函数调用名称” />




//是否确定删除
<%--	是否确定删除--%>
		<script type="text/javascript">
			function deleteForm(id){ 
				if(confirm("确定删除此条公告吗?")){
				 window.location.href="delBsNotice.do?id="+id;
				}
			}
		</script>




相关知识:


[quote]Window.location.href


Location.href 最常用的属性之一,用于获得或设置窗口的URL,类似于document的URL属性


改变该属性的值就可以导航到新的页面,这里加上了JSP中的利用URL进行传值的特性。将Id传向后台进行处理。[/quote][/quote]




[size=medium][b]在连接中调用JS并实现传值?[/b][/size]



[quote]1.在基本的连接中加入JS事件:


基本的按钮:<a href=http://www.gogog.com></a>


加入JS事件:<a href="javascript:deleteForm(3)" >删除</a><br/>



<a href="javascript:deleteForm(3)" >//在body 处加入



//是否确定删除  在head处加入
<%--	是否确定删除--%>
		<script type="text/javascript">
			function deleteForm(id){ 
				if(confirm("确定删除此条公告吗?")){
				 window.location.href="delBsNotice.do?id="+id;
				}
			}
		</script>




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>

<%--		是否确定删除--%>
<script type="text/javascript">
		function deleteForm(id){ 
			if(confirm("确定删除吗?")){
			 window.location.href="delBsNotice.do?id="+id;
			}
		}
		function alter(){
		alert("goggo")
		}
</script>

<%--		更改发布状态--%>
		<script type="text/javascript">
			function checkIssueForm(id,issue){
				if(issue==1){
					if(confirm("此条公告已发布,要取消此条公告的发布吗?")){
						window.location.href="unIssueBsNotice.do?id="+id;

					}
				}else{
						window.location.href="ifIssueBsNotice.do?id="+id;
					}
			}
		</script>

</head>

<body>

	<a href="javascript:deleteForm(3)" >删除</a><br/>

	<a href="javascript:checkIssueForm(3,2)">修改</a>
</body>
</html>

[/quote]




[size=medium][b]单行文本框控制用户输入的字符数[/b][/size]


对于单行文本框<input type=”text”>和密码框<input type=”password”/>而言,可以利用自身的maxlength属性控制用户输入字符的个数。

<input type="password" name="password"  size="21" maxlength="6"/>