我是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 :)。提前谢谢。
答案 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中构建优秀企业解决方案所需的大部分内容。