我開發了一個servlet,用戶在其中輸入名稱,並在單擊提交按鈕時向用戶致意,我還想添加它應該顯示當前登錄的用戶數的功能例如,如果我從一個瀏覽器中打開servlet,它應該顯示登錄的用戶數是1,因爲我是第一個用戶,如果其他人從下一個瀏覽器中擊中了servlet,它應該向他顯示他是第2個訪問者,所以通過這種方式,它會顯示他當前登錄的用戶數,請告知如何做到這一點..將功能添加到servlet
該項目的web.xml文件是..
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>FirstDemo</display-name>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.saral.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/helloServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>home.html</welcome-file>
</welcome-file-list>
</web-app>
的HTML是...
<html>
<head>
<title> A Simple web Application</title>
</head>
<body>
<form method="get" action="helloServlet">
Name<input type="text" name="txtName">
<br><input type="submit" value="Login">
</form>
</body>
</html>
請指教如何增加用戶數量的功能登錄。 下面是我的項目結構的快照.. enter link description here
我已經加入反類爲如下所示...
package com.saral;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class SessionCounter implements HttpSessionListener
{
private static int count;
public SessionCounter()
{
}
public void sessionCreated(HttpSessionEvent arg0)
{
count++;
ServletContext sContext = arg0.getSession().getServletContext();
synchronized (sContext)
{
sContext.setAttribute("sessionCount", new Integer(count));
}
}
public void sessionDestroyed(HttpSessionEvent arg0)
{
count--;
ServletContext sContext = arg0.getSession().getServletContext();
synchronized (sContext)
{
sContext.setAttribute("sessionCount", new Integer(count));
}
}
}
,我已經修改了我的servlet也是這個..
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class First
*/
//@WebServlet("/First")
public class MyServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String name=request.getParameter("txtName");
response.setContentType("text/html");
request.getAttribute("sessionCount");
PrintWriter out=response.getWriter();
out.println("Hello,"+name);
out.println("<br> this output is generated by a simple servlet.");
out.println("--->"+(request.getAttribute("sessionCount")));
out.close();
}
}
但我得到的會議是空...在output..http://imageshack.us/photo/my-images/405/sessionoutput.jpg/ output of session
請告知我該怎麼在那裏獲得價值我現在得到空禮,我想要我做第一個請求它應該顯示1,如果我打開第二它應該顯示2,請告知如何實現,因爲我堅持這一點。
CAPS LOOOOOCK !!! – 2012-07-22 16:00:53