当前位置: 首页 > 知识库问答 >
问题:

如何在服务器启动时初始化哈希映射?

漆雕洋
2023-03-14
  <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
  <!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-1">
  <title>Login</title>
  </head>
  <body>
  <center>
  <b>LOGIN PAGE</b><br>
  </center>
  <form name="login" method="post" action="UserAuthentication">
  <center>
  USER NAME: <input type="text" name="username"> 
  <br>
  <br>
  PASSWORD: <input type="password" name="password"> 
  <br>
  <br> 
  <input type="submit" value="LOGIN">
  </center>
  </form>
  </body>
  </html>
  public class UserAuthentication extends HttpServlet{

  public void doPost(HttpServletRequest request,HttpServletResponse response)
  throws IOException{

    String username = request.getParameter("username");
    String password = request.getParameter("password");
    PrintWriter out = response.getWriter();


    Map<String,String>users = new HashMap<String,String>();
    users.put("Sheetal", "sss");
    users.put("Raj","rrr");
    users.put("Anjali", "aaa");
    users.put("Bhavya","bbb");

    if(users.containsKey(username) && users.containsValue(password))
    {
        if(password.equals(users.get(username)))
    {
        out.println("<html>"+
                    "<body>"+
                    "Login Successful" + "<br>" +
                    "Welcome " + username + "<br>" +
                    "</body>" +
                    "</html>");
        }
    }
    else
    {
        out.println("<html>"+     
                    "<body>"+
                    "Login Unsuccessful" + "<br>" +
                    "Try again" + "<br>" +
                    "</body>" +
                    "</html>");
      }
   }

   }

共有1个答案

邢乐
2023-03-14

使hashmap在类中成为静态的(我也假设它是final的):

private static final Map<String,String> users = new HashMap<>();

并将其填充到静态初始值设定项块中:

static {
    users.put("Sheetal", "sss");
    users.put("Raj", "rrr");
    users.put("Anjali", "aaa");
    users.put("Bhavya", "bbb");
}

这样,注册类时将填充hashmap

 类似资料:
  • 考虑@data是一个带有日期、类、名称和等级字段的Active记录数组。假设我想以两个哈希结束,一个是每个名称的所有日期的唯一集合;另一个按类、日期和名称细分以显示等级。 > 导致错误: nil:NilClass的未定义方法“[]=”

  • 我需要在我的GAE应用程序中初始化一个驱动服务。我使用OAuth 2.0和3条腿。我使用普通的谷歌账户(没有服务账户)。我在努力: 我得到这个错误: OAuth 2.0流授权正在工作,但访问驱动器时出现上述错误。 我不认为我的GoogleCredentials是错误的,因为我使用相同的方法来获得授权,以便使用Google Picker。 我从用户那里获得GoogleCredential的方式是:

  • 我用一个自动生成的服务运行100个JUnit测试。我有一个名为createArray的服务,该服务在ArrayList中添加值。问题是数组列表中保留的值。当一个新的测试用例运行时,它将自己的值添加到数组中。 每当新的测试用例运行时,我想清除自动生成的creatArray对象。

  • 我的项目的设置是- 用于持久化的Spring JDBC 下面是我的应用程序的日志,它捕获了与数据库的交互。 日志中有两件事是清楚的- 连接池仅在收到执行查询的第一个请求时才开始创建连接 一个包含4个连接的池需要将近30秒的时间来初始化 我的问题是- 如何配置DBCP在启动时自动初始化? 创建连接真的需要那么长时间吗? 注意:请不要建议切换到C3P0或Tomcat连接池。我知道这些解决方案。我更感兴

  • 在jetty嵌入式服务器启动后,我需要运行自己的逻辑。由于类加载器问题,我不会从主类开始。理想的解决方案似乎是从servlet初始化运行我的服务器逻辑。但是在jetty服务器启动后,不会调用init函数和构造函数。在第一个HTTP请求期间,正在创建servlet的一个实例。有没有可能让jetty立即初始化我的servlet,或者我真的需要用我的自定义类加载器加载所有类,然后启动jetty服务器?

  • 我按照步骤创建了HelloWorld示例,但它没有运行。它给出了以下错误: 初始化引导层java.lang.module.FindException时出错:读取模块:F:\Develop\Eclipse\HelloWorld\bin时出错,原因是:java.lang.module.InvalidModuleDescriptoRexception:HelloWorld.class在顶级目录中找到(模