修改另一个JSP文件中的现有对象

时间:2014-05-17 20:48:11

标签: java jsp

我想将注册JSP文件中的另一个用户添加到我的主页中创建的HashMap中,但是当我尝试注册用户时,似乎正在创建另一个HashMap。

如何从另一个主页JSP文件访问HashMap?

这是我的基类:

package com.jakub.spring;
import java.util.HashMap;

public class registeredUsers {

         public HashMap<String, String> userSource;

            public registeredUsers() {
                userSource=new HashMap<String, String>();
            }

            public void register(String name, String password) {
                userSource.put(name, password);
            }

            public String userExists(String user) {

                String passwordFromSource = userSource.get(user);
                if(passwordFromSource != null) {
                    return passwordFromSource;
                }else
                    return "";
            }


}

这是我的主页:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="true" %>
<html>
<head>
    <title>Home</title>
</head>
<body bgcolor="#CCCFFF">

<form method="post" action="validate.jsp">
<p align="left">Podaj login:</p>
<input type="text" name="name" />
<p align="left">Podaj haslo:</p>
<input type="text" name="password" />
<input type="submit" value="Zaloguj" />
</form>

<a href="register.jsp">Rejestracja</a>

<jsp:useBean id="registeredUsers"
        class="com.jakub.spring.registeredUsers" scope="application"></jsp:useBean>


<%

    out.println("Dostepni uzytkownicy w systemie: \n");
    out.print(registeredUsers.userSource.keySet()); 


%>

</body>
</html>

这是我的注册页面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-2"
    pageEncoding="ISO-8859-2"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
<title>Konto utworzone</title>
</head>
<body>

    <jsp:useBean id="registeredUsers"
        class="com.jakub.spring.registeredUsers" scope="application"></jsp:useBean>


       <%   

       registeredUsers.register(request.getParameter("name"),request.getParameter("password"));  

       out.print("Konto zostało utworzone");
       out.print(registeredUsers.userSource.keySet()); 


       %> 
       <a href="/spring/">Powrót do strony glownej</a>



</body>
</html>

1 个答案:

答案 0 :(得分:0)

使用ConcurrentHashMap代替HashMap,因为它位于应用程序范围中,并且可以同时由多个线程同时访问,并导致{{ 3}}

请查看ConcurrentModificationException