我是Java和Java EE的新手,所以请不要太讨厌。
我想创建一个应用程序,它由一个带有登录表单的html文档组成,该表单将控制转移到servlet以对用户进行身份验证。我将按照本教程在netbeans中创建一个数据库- https://netbeans.org/kb/docs/ide/java-db.html。
我看到的所有地方都使用DAO设计模式,但没有数据库的例子。我的问题是,我看到了使用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>
User类:
@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方法中,我将检查用户是否有效。
问题是我不知道如何指定实体管理器与表一起工作。我看到了persistence .xml文件的一些内容,但不知道在那里做什么。
所以如果有人能解释和展示(特别是DAO和实体管理器部分)如何做这样一个应用程序,那将是很好的:)。
我不建议你一开始就使用这些工具来用java编写web应用程序,是的,我同意Netbeans使生活变得简单,但是你必须了解你的页面、dao、dto和servlet是如何相互工作的,所以我建议你使用eclipse使用servlet jsp和hibernate创建三到四个简单的网站,直到你掌握了它,然后转移到自动生成的工具,如Netbeans。这个链接可能会帮助你这样做https://www.youtube.com/watch?v=CrxTOcQJqfwhttps://javahelpworld.wordpress.com/2014/04/11/simple-crud-using-jsp-servlet-and-mysql/希望这将帮助您理解在java中构建优秀企业解决方案所需的大部分内容。