登录Web应用程序

时间:2015-05-19 19:37:19

标签: java html servlets netbeans

我是Java和Java EE的新手,所以请不要讨厌。

我想创建一个应用程序,该应用程序由带有登录表单的html文档组成,该表单将控制转移到用于用户身份验证的servlet。我将按照本教程https://netbeans.org/kb/docs/ide/java-db.html在netbeans中创建一个数据库。

我看到的每个地方都使用了DAO desingn模式,但没有数据库的考试。我的问题是我看到的目的是使用数据库EntityManager。我不知道我们连接到数据库的代码以及EntityManager如何知道要处理哪个表。例如,在这个应用程序中,该表只是一个包含用户电子邮件和密码的表,但如果我为电影添加第二个表,会发生什么呢?

在我看来,实现是这样的:

html页面:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Log in</title>

<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/login.css" rel="stylesheet">

<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
  <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="navbar-header">
    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
    </button>
    <a class="navbar-brand" >JCinema</a>
</div> 
<div class="navbar-collapse collapse">
    <ul class="nav navbar-nav">
        <li><a href="start_page.html">Welcome</a></li>
        <li><a href="#">Book a movie</a></li>
        <li><a  href="#">View schedule</a></li>            
        <li><a href="signup.html">Sign up</a></li>
        <li class="active"><a href="login.html">Log in</a></li>
        <li><a href="#">About us</a></li>
    </ul>
</div>    
</nav>

<div class="container-fluid">             
  <form class="form-signin" method="post" role="form" action="LoginServlet">
    <h2 class="form-signin-heading">Please log in</h2>
    <label for="inputEmail" class="sr-only">Email address</label>
    <input type="email" name="inputEmail" class="form-control" placeholder="Email address" required autofocus>
    <label for="inputPassword" class="sr-only">Password</label>
    <input type="password" name="inputPassword" class="form-control" placeholder="Password" required>
    <div class="checkbox">
      <label>
        <input type="checkbox" value="remember-me"> Remember me
      </label>
    </div>
    <button class="btn btn-lg btn-primary btn-block" type="submit">Log in</button>
  </form>         
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/bootstrap.min.js"></script>

用户类:

@Entity // not sure about this and @Table and @Id, but this is what they used 
       //in this tutorial http://docs.oracle.com/javaee/5/tutorial/doc/bnbrm.html  
@Table ( name = "name_of_table_in_database")
public class User{
  @Id // primary key for tha table
  private String username;
  private String password;
  // setters and getters 
}

现在对于DAO实现我认为我应该有一个包含实体管理器的类,它与数据库一起工作并将它的实例注入到servlet表单中,在它的Post方法中我将检查用户是否有效。

问题是我不知道如何指定实体管理器来处理表。我看到了一些关于persistance.xml文件的内容,但不知道该怎么做。

因此,如果有人可以解释和展示(特别是DAO和实体经理部分)如何做这样的应用程序,将是greta :)。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我不建议您最初使用这些工具在java中编写Web应用程序,是的我同意Netbeans让生活变得轻松但是您必须了解您的页面,Daos,DTO和servlet是否与其他人一起工作所以我建议你使用eclipse创建三个或四个简单的网站,使用servlet jsps和hibernate,直到你掌握它然后转移到自动生成的工具,如netbeans。此链接可能有助于您这样做https://www.youtube.com/watch?v=CrxTOcQJqfw https://javahelpworld.wordpress.com/2014/04/11/simple-crud-using-jsp-servlet-and-mysql/希望这有助于您了解在Java中构建优秀企业解决方案所需的大部分内容。