JSP簡單練習-一個簡單的計數器,jsp練習計數器
在JSP中,在"<%"和"%>"之間書寫的程式碼成為java程式片。
一個JSP頁面中可以有多個java程式片。要注意的是,在Java程式片中聲明的變數在它們所在JSP頁面的所用程式片及運算式中都有效。基於此,可以把一個較大的程式片分成幾個小的程式片,還可在其中插入HTML語句,以便編寫的程式碼更具有可讀性。
在程式片中聲明的變數只在頁面有效,是局部變數,它在不同的客戶訪問同一個頁面時,此變數是不能共用的。但如果是在"<%!"和"%>"之間聲明的變數就可以在不同的客戶之間共用,其有效範圍是整個Web應用,在伺服器關閉後變數才會被釋放。
用"<%="和"%>"可以直接輸出變數或運算式的值,變數或運算式的值將作為一個字串在瀏覽器中輸出。這種方法在JSP編程中是比較常用的,特別在與HTML標記混合編寫時較為常用。如下代碼:
<%@ page contentType="text/html; charset=gb2312" %><html><body> <%! int counter=0; synchronized void counterFunction() { counter++; } %> <%counterFunction();%> 網站計數器<br> 你是第<%=counter %>位訪問者</body></html>該程式首先在"<%!“和”%>"之間聲明了一個計數器變數和計數的方法,計數器變數將在客戶之間共用,直至伺服器關閉。計數方法實際上就是對計數變數做增1處理,在方法的前面加了sychronized關鍵字,這個關鍵字可防止客戶在同時調用此方法更改計數變數的值時發生衝突,因此對方法作了序列化處理。
【jsp】用session打了一個簡單的計數器,但是還存在問題……
request.getSession(true);這句話沒有用,你最好這樣:
Object rValue=session.getValue("usercount");
if (rValue==null)
{
count=1;
usercount = String.valueOf(count);
session.putValue("usercount",usercount);
}
out.print("您是本站第 "+rValue.toString());
JSP看 用getparameter()方法編寫一個簡單的計數器,實現計算1到n的連續與,平方,立方3種運算
這個存成一個jsp檔案.我在tomcat下測試通過了.
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%
int count = 0;
int num = 0;
if (request.getParameter("count") != null) {
count = Integer.parseInt(request.getParameter("count"));
count++;
}
if (request.getParameter("num") != null) {
num = Integer.parseInt(request.getParameter("num"));
}
num = num * num * num; //這裡替換其他演算法即可
%>
</head>
<body>
<center>
<form name="form1" method="post">
<table>
<tr>
輸入一個數:
</tr>
<tr>
<input name="num" type="text" value="<%=num%>" />
</tr>
<tr>
<input type="submit" value="求立方" />
</tr>
<tr>
<td>
計數:
</td>
<td>
<input name="count" type="text" value="<%=count%>" />
</td>
</tr>
</table>
</form>
</body>
</html>...餘下全文>>