📄 626318.xml
字号:
<?xml version='1.0' encoding='GB2312'?>
<?xml-stylesheet type='text/xsl' href='../csdn.xsl'?>
<Topic>
<Issue>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>110</credit>
<TopicId>626318</TopicId>
<TopicName>使用jsp做一个网站计数器,都有什么方法?</TopicName>
<PostUserId>157597</PostUserId>
<PostUserName>JackJia</PostUserName>
<RoomName>JSP</RoomName>
<ReplyNum>5</ReplyNum>
<PostDateTime>2002-4-5 22:37:43</PostDateTime>
<Point>50</Point>
<ReadNum>0</ReadNum>
<RoomId>28</RoomId>
<EndState>2</EndState>
<Content>使用jsp做一个网站计数器,都有什么方法?
不用数据库怎么实现</Content>
</Issue>
<Replys>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>110</credit>
<ReplyID>4132184</ReplyID>
<TopicID>626318</TopicID>
<PostUserId>157597</PostUserId>
<PostUserName>JackJia</PostUserName>
<Point>0</Point>
<Content>急!!</Content>
<PostDateTime>2002-4-5 22:38:28</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>失去你是我今生最大的痛</PostUserNickName>
<rank>一星(中级)</rank>
<ranknum>star1</ranknum>
<credit>151</credit>
<ReplyID>4134329</ReplyID>
<TopicID>626318</TopicID>
<PostUserId>203548</PostUserId>
<PostUserName>realyfly</PostUserName>
<Point>0</Point>
<Content>可以用读写文件!</Content>
<PostDateTime>2002-4-6 9:52:04</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>烤鸡翅膀,我最爱吃</PostUserNickName>
<rank>四级(中级)</rank>
<ranknum>user4</ranknum>
<credit>100</credit>
<ReplyID>4137556</ReplyID>
<TopicID>626318</TopicID>
<PostUserId>101985</PostUserId>
<PostUserName>offsider</PostUserName>
<Point>0</Point>
<Content>不用数据库只有读写文件了</Content>
<PostDateTime>2002-4-6 14:36:40</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>西风漂流</PostUserNickName>
<rank>四级(中级)</rank>
<ranknum>user4</ranknum>
<credit>100</credit>
<ReplyID>4138440</ReplyID>
<TopicID>626318</TopicID>
<PostUserId>186363</PostUserId>
<PostUserName>xexplorer</PostUserName>
<Point>50</Point>
<Content>counter.java
package UsefulClasses;
import java.sql.*;
public class Counter
{
	private int count;
	private Database Mechanism=new Database();
	public Counter()
	{
		ResultSet rs=Mechanism.executeQuery("select Counter from Counter");
		
		try
		{
			while (rs.next())
			{
				count=rs.getInt("Counter");
			}
		}
		catch(SQLException ex)
		{
			System.err.println("SQL select error:" + ex.getMessage());	
		}
		finally
		{
			Mechanism.closeStmt();
			Mechanism.closeConn();
		}
	}
	synchronized public void Increase()
	{
		count++;
	}
	synchronized public String[] getCountImage()
	{
		char[] chars=String.valueOf(count).toCharArray();
		int numChars=chars.length;
		String[] images=new String[numChars];
		for (int LoopNum=numChars-1;LoopNum>-1;LoopNum--)
		{
			images[LoopNum]=String.valueOf(chars[LoopNum])+".gif";
		}
		return images;
	}
	synchronized public void UpdateCounter()
	{
		Mechanism.executeUpdate("update Counter set Counter="+count);
	}
}
counter.jsp
<table width="110" border="0" cellspacing="0" cellpadding="0">
                    <tr> 
                      <td align="center"> 
                        <%
						if (session.getValue("LogStatus")=="TRUE")
							out.println("<font size=\"2\">"+session.getValue("Username").toString()+Welcome.getWelcomeMessage()+"</font>");
						else
							out.println("<font size=\"2\">"+Welcome.getWelcomeMessage()+"</font>");
					  %>
                      </td>
                    </tr>
                    <tr> 
                      <td><font size="2">您是第</font></td>
                    </tr>
                    <tr> 
                      <td align="center"> 
                        <%
                                    String[] imgs=Counter.getCountImage(); 
                                    for (int LoopNum=0 ; LoopNum<imgs.length ; LoopNum++){ 
                                    out.print("<img src=\"/Images/" + imgs[LoopNum] + "\"height=\"15\" width=\"8\">");
									}
									%>
                      </td>
                    </tr>
                    <tr> 
                      <td align="right"><font size="2">位访客</font></td>
                    </tr>
</table>
</Content>
<PostDateTime>2002-4-6 15:43:45</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>西风漂流</PostUserNickName>
<rank>四级(中级)</rank>
<ranknum>user4</ranknum>
<credit>100</credit>
<ReplyID>4138498</ReplyID>
<TopicID>626318</TopicID>
<PostUserId>186363</PostUserId>
<PostUserName>xexplorer</PostUserName>
<Point>0</Point>
<Content>上面的代码中counter.java是计数器的代码,counter.jsp是引用计数器的jsp代码。还有其中用的Database的代码在下面。
Database.java
package UsefulClasses;
import java.sql.*;
import java.util.*;
import javax.naming.*;
public class Database
{
	//String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
	//String sConnStr = "jdbc:odbc:Mechanism";
	//String sDBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
	//String sConnStr="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Mechanism";
	Context ctx = null;
	Hashtable ht=null;
	javax.sql.DataSource ds = null;
	Connection conn = null;
	Statement stmt = null;
	ResultSet rs = null;
	public Database()
	{
		ht=new Hashtable();
		ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
		ht.put(Context.PROVIDER_URL,"t3://127.0.0.1:80");
		try
		{
			ctx = new InitialContext(ht);
			ds = (javax.sql.DataSource)ctx.lookup("Mechanism");
			//Class.forName(sDBDriver);
		}
		catch(javax.naming.NamingException e)
		{
			System.err.println("SQL Driver not found:" + e.getMessage());
		}
	}
	public void executeInsert(String sql)
	{
		try
		{
			//conn = DriverManager.getConnection(sConnStr,"","");
			conn = ds.getConnection();
			stmt = conn.createStatement();
			stmt.executeUpdate(sql);
			stmt.close();
			conn.close();
		}
		catch(SQLException ex)
		{
			System.err.println("SQL insert error:"+ex.getMessage());
		}
	}
	public ResultSet executeQuery(String sql)
	{
		try
		{
			//conn = DriverManager.getConnection(sConnStr,"user","111111");
			conn = ds.getConnection();
			stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
			rs = stmt.executeQuery(sql);
		}
		catch(SQLException ex)
		{
			System.err.println("SQL query error:"+ex.getMessage());
		}
		return rs;
	}
	public ResultSet executePreparedQuery(String sql)
	{
		try
		{
			//conn = DriverManager.getConnection(sConnStr,"","");
			//stmt = conn.createPreparedStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
			//rs = stmt.executePreparedQuery(sql);
			conn = ds.getConnection();
			stmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
		}
		catch(SQLException ex)
		{
			System.err.println("SQL prepared query error:"+ex.getMessage());
		}
		return rs;
	}
	public void executeUpdate(String sql)
	{
		try
		{
			//conn = DriverManager.getConnection(sConnStr,"user","111111");
			conn = ds.getConnection();
			stmt = conn.createStatement();
			stmt.executeUpdate(sql);
			stmt.close();
			conn.close();
		}
		catch(SQLException ex)
		{
			System.err.println("SQL update error: " + ex.getMessage());
		}
	}
	public void executeDelete(String sql)
	{
		try
		{
			//conn = DriverManager.getConnection(sConnStr,"","");
			conn = ds.getConnection();
			stmt = conn.createStatement();
			stmt.executeUpdate(sql);
			stmt.close();
			conn.close();
		}
		catch(SQLException ex)
		{
			System.err.println("SQL delete error:"+ex.getMessage());
		}
	}
	public void closeStmt()
	{
		try
		{
			stmt.close();
		}
		catch(SQLException e)
		{
			e.printStackTrace();
		}
	}
	public void closeConn()
	{
		try
		{
			conn.close();
		}
		catch(SQLException e)
		{
			e.printStackTrace();
		}
	}
}
</Content>
<PostDateTime>2002-4-6 15:47:42</PostDateTime>
</Reply>
</Replys>
</Topic>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -