HomeServlet (file Servlet)
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// TODO Auto-generated method stub
EntityManagerFactory
ef=[Link]("an");
EntityManager em=[Link]();
List<Product> products=[Link]("from
Product").getResultList();
List<Category> cats=[Link]("from
Category").getResultList();
[Link]("products", products);
[Link]("cats", cats);
RequestDispatcher
rd=[Link]("/views/[Link]");
[Link](request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
SaveServlet (file Servlet)
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// TODO Auto-generated method stub
String name=[Link]("name");
String description=[Link]("description");
String price=[Link]("price");
String cat=[Link]("cat");
Product p=new Product();
[Link](name);
[Link](description);
[Link]([Link](price));
EntityManagerFactory
ef=[Link]("an");
EntityManager em=[Link]();
[Link]().begin();
//Luu Doi tuong
Category c=[Link]([Link],[Link](cat));
[Link](c);
[Link](p);
[Link]().commit();
RequestDispatcher rd=[Link]("home");
[Link](request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
DeleteServlet (file Servlet)
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// TODO Auto-generated method stub
int id=[Link]([Link]("product_id"));
EntityManagerFactory
ef=[Link]("an");
EntityManager em=[Link]();
[Link]().begin();
Product b=[Link]([Link],id);
if(b!=null) {
[Link](b);
}
[Link]().commit();
RequestDispatcher rd=[Link]("home");
[Link](request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
Product
@Entity
@Table(name = "PRODUCT")
public class Product {
@Id
@GeneratedValue (strategy = [Link])
private int product_id;
private String name;
private String description;
private float price;
@ManyToOne
@JoinColumn(name = "category_id")
private Category category;
public Product(String name, String description, float price, Category
category) {
super();
[Link] = name;
[Link] = description;
[Link] = price;
[Link] = category;
}
public Product() {
super();
}
public int getProduct_id() {
return product_id;
}
public void setProduct_id(int product_id) {
this.product_id = product_id;
}
public String getName() {
return name;
}
public void setName(String name) {
[Link] = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
[Link] = description;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
[Link] = price;
}
public Category getCategory() {
return category;
}
public void setCategory(Category category) {
[Link] = category;
}
@Override
public String toString() {
return "Product [name=" + name + "]";
}
Category
@Entity
@Table(name = "CATEGORY")
public class Category {
@Id
@GeneratedValue(strategy = [Link])
private int category_id;
private String name;
@OneToMany(mappedBy = "category", cascade = [Link],fetch =
[Link])
private List<Product> products;
public Category(String name, List<Product> products) {
super();
[Link] = name;
[Link] = products;
}
public Category() {
super();
}
public int getCategory_id() {
return category_id;
}
public void setCategory_id(int category_id) {
this.category_id = category_id;
}
public String getName() {
return name;
}
public void setName(String name) {
[Link] = name;
}
public List<Product> getProducts() {
return products;
}
public void setProducts(List<Product> products) {
[Link] = products;
}
@Override
public String toString() {
return "Category [name=" + name + "]";
}
Bước 1 : Chạy Wamp Sever, vào phpmyadmin rồi import file sql vừa giao , mở Eclipse lưu ổ E
Bước 2 : Cài server chọn Tomcat v9.0 ( chọn địa chỉ apache ), vào Window -> WebBroswer -> Chrome
Bước 3: Tạo Dynamic Web Project ( TranMinhTrung_DH52006618) ver 4.0, tick Generate [Link]
Bước 4 : Nhét các thư viện sau đây vào folder lib ở WEB-INF
mysql-connector-java-8.0.30
jstl-api-1.2
jstl-impl-1.2
toàn bộ thư viện trong hibernate 5.6.5
Bước 5: Tạo package : model và controller và folder META-INF ở folder src, sau đó copy file
[Link] vào folder META-INF vừa tạo
Bước 6: sửa lại :
<persistence-unit name="trung" transaction-type="RESOURCE_LOCAL">
<class>[Link]</class> theo tên file java class vừa tạo trong model
<property name="[Link]" value="jdbc:mysql://localhost:3306/bookdb"/>
sửa lại theo tên database vừa tạo
Bước 7: tạo class [Link] ( sửa tên theo database ) trong model sau đó chèn vào :
import [Link].*;
import [Link].*;
@Entity
public class Book {
@Id
@GeneratedValue(strategy = [Link])
private int id;
private String title;
private String author;
private float price;
}
Sửa lại theo giá trị trong database, sau đó chuột phải vào click Source ->
- Generate Contrustor using fields ( select all ) -> enter
- Generate Contrustor using fields ( deselect all ) -> enter
- Generate Getter and Setter ( select all ) -> enter
- Generate toString -> enter
-Generate hashCode() and equal ( chỉ tick id (khóa chính trong bảng ) )
Bước 8 : tạo [Link] trong controller sau đó import :
import [Link].*;
import [Link].*;
và
EntityManagerFactory ef= [Link]("trung");
EntityManager em = [Link]();
Nếu chạy không lỗi thì tới bước này đã thành công
Bước 9: tạo HomeServlet trong folder controller sau đó chỉnh mappings thành /home
chạy run on sever, nếu chạy dc không lỗi thì thành công , nhét vào( đánh bằng tay ) sau void doGet :
EntityManagerFactory ef= [Link]("trung");
EntityManager em = [Link]();
//Lay danh sach book
List<Book> listb = [Link]("from Book").getResultList();
//dong goi ( nho them “s” vao books )
[Link]("books", listb);
//chuyen huong
RequestDispatcher rd=[Link]("[Link]");
[Link](request, response);
Bước 10: tạo [Link] ở folder WebContent
Nhét vào phần đầu :
<%@ taglib uri="[Link] prefix="c" %>
<%@ taglib uri="[Link] prefix="fmt" %>
Nhét vào phần body:
<body>
<h1>DANH SACH BOOKS </h1>
<table>
<tr>
<th>ID</th>
<th>TITLE</th>
<th>AUTHOR</th>
<th>PRICE</th>
<th>DELETE</th>
<th>EDIT</th>
</tr>
<c:forEach items ="${books}" var="x">
<tr>
<td>${[Link]}</td>
<td>${[Link]}</td>
<td>${[Link]}</td>
<td>${[Link]}</td>
<td><a href="delete?id=${[Link]}">Delete</a></td>
<td><a href="edit?id=${[Link]}">Edit</a></td>
</tr>
</c:forEach>
</table>
</body>
Chạy thử
Bước 11 : Tạo DeleteServlet ở package controller ( chỉnh mapping thành /delete ), nhét vào sau doGet
String id = [Link]("id");// Thay id và idd
int idd = [Link](id);
EntityManagerFactory ef= [Link]("trung");
EntityManager em = [Link]();
[Link]().begin();
Book b=[Link]([Link], idd); //Thay Book và idd
[Link](b); //Thay thế b
[Link]().commit();
//chuyen huong
RequestDispatcher rd=[Link]("home");//Quan trong home
[Link](request, response);
sau đó import vào khúc này :
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
nếu bị lỗi thì sửa khúc này Book b=[Link]([Link], idd); ( sửa thành Book model và import [Link];
)
Bước 12: chèn vào trên danh sách book ở [Link] :
<fieldset>
<legend>Form thêm sách </legend>
<form action = "save">
TITLE :<br>
<input type="text" name="title" value =""/> <br>
AUTHOR : <br>
<input type="text" name="author" value =""/> <br>
PRICE :<br>
<input type="text" name="price" value =""/> <br>
<input type="submit" value="Save"/>
</form>
</fieldset>
Bước 13: tạo SaveServlet ở controller package và chỉnh mapping thành /save , nhét vào sau doGet :
String title = [Link]("title");// Thay title
String author = [Link]("author");// Thay author
String price = [Link]("price");// Thay price
float prices = [Link](price);// nhớ thêm s vào price
EntityManagerFactory ef= [Link]("trung");
EntityManager em = [Link]();
[Link]().begin();
Book b = new Book(); // nho viet hoa theo class trong model
[Link](title);
[Link](author);
[Link](prices); // nho them s vao price
[Link](b); //nho thay b
[Link]().commit();
//chuyen huong
RequestDispatcher rd=[Link]("home");//Quan trong home
[Link](request, response);
sau đó chạy thử
Bước 14: Tạo EditServlet và chỉnh mapping thành /edit , sau đó nhét vào sau doGet :
String id = [Link]("id");// Thay id và idd
int idd = [Link](id);
EntityManagerFactory ef= [Link]("trung");
EntityManager em = [Link]();
[Link]().begin();
Book b=[Link]([Link], idd); //Thay Book và idd
[Link]("book", b); // book ko co s
[Link]().commit();
//chuyen huong
RequestDispatcher rd=[Link]("[Link]");//Chinh thanh [Link]
[Link](request, response);
}
nhét import vào :
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
Bước 15 : Tạo file [Link] trong folder WebContent
thêm vào phần đầu :
<%@ taglib uri="[Link] prefix="c" %>
<%@ taglib uri="[Link] prefix="fmt" %>
thêm vào phần sau body :
<c:set value ="${book }" var="bold" scope ="session"></c:set>
<fieldset>
<legend>Form EDIT sách </legend>
<form action = "update">
TITLE :<br>
<input type="text" name="title" value ="${[Link]}"/> <br>
AUTHOR : <br>
<input type="text" name="author" value ="${[Link]}"/> <br>
PRICE :<br>
<input type="text" name="price" value ="${[Link]}"/> <br>
<input type="submit" value="Update"/>
</form>
</fieldset>
Bước 16 : tạo file UpdateServlet và chỉnh mapping thành /update , sau đó nhét vào sau doGet:
String title = [Link]("title");// Thay title
String author = [Link]("author");// Thay author
String price = [Link]("price");// Thay price
float prices = [Link](price);// nhớ thêm s vào price
HttpSession session =[Link]();
Book bold = (Book) [Link]("bold"); // nhớ đổi bold
EntityManagerFactory ef= [Link]("trung");
EntityManager em = [Link]();
[Link]().begin();
[Link](title);
[Link](author);
[Link](prices); // nho them s vao price
[Link](bold); //nho thay bold
[Link]().commit();
//chuyen huong
RequestDispatcher rd=[Link]("home");//Quan trong home
[Link](request, response);
và import vào :
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
[Link] :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="[Link] prefix="c" %>
<%@ taglib uri="[Link] prefix="fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<fieldset>
<legend>Form thêm sách </legend>
<form action = "save">
TITLE :<br>
<input type="text" name="title" value =""/> <br>
AUTHOR : <br>
<input type="text" name="author" value =""/> <br>
PRICE :<br>
<input type="text" name="price" value =""/> <br>
<input type="submit" value="Save"/>
</form>
</fieldset>
<h1>DANH SACH BOOKS </h1>
<table>
<tr>
<th>ID</th>
<th>TITLE</th>
<th>AUTHOR</th>
<th>PRICE</th>
<th>DELETE</th>
<th>EDIT</th>
</tr>
<c:forEach items ="${books}" var="x">
<tr>
<td>${[Link]}</td>
<td>${[Link]}</td>
<td>${[Link]}</td>
<td>${[Link]}</td>
<td><a href="delete?id=${[Link]}">Delete</a></td>
<td><a href="edit?id=${[Link]}">Edit</a></td>
</tr>
</c:forEach>
</table>
</body>
</html>
[Link]:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="[Link] prefix="c" %>
<%@ taglib uri="[Link] prefix="fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<c:set value ="${book }" var="bold" scope ="session"></c:set>
<fieldset>
<legend>Form EDIT sách </legend>
<form action = "update">
TITLE :<br>
<input type="text" name="title" value ="${[Link]}"/> <br>
AUTHOR : <br>
<input type="text" name="author" value ="${[Link]}"/> <br>
PRICE :<br>
<input type="text" name="price" value ="${[Link]}"/> <br>
<input type="submit" value="Update"/>
</form>
</fieldset>
</body>
</html>
[Link] :
package controller;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
/**
* Servlet implementation class HomeServlet
*/
@WebServlet("/home")
public class HomeServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HomeServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
EntityManagerFactory ef=
[Link]("trung");
EntityManager em = [Link]();
List<Book> listb = [Link]("from Book").getResultList();
[Link]("books", listb);
RequestDispatcher rd =[Link]("[Link]");
[Link](request, response);
/**
* @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
[Link] :
package controller;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
/**
* Servlet implementation class DeleteServlet
*/
@WebServlet("/delete")
public class DeleteServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public DeleteServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
String id = [Link]("id");// Thay id và idd
int idd = [Link](id);
EntityManagerFactory ef= [Link]("trung");
EntityManager em = [Link]();
[Link]().begin();
Book b=[Link]([Link], idd); //Thay Book và idd
[Link](b); //Thay thế b
[Link]().commit();
//chuyen huong
RequestDispatcher rd=[Link]("home");//Quan trong home
[Link](request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
[Link] :
package controller;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
/**
* Servlet implementation class EditServlet
*/
@WebServlet("/edit")
public class EditServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public EditServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
String id = [Link]("id");// Thay id và idd
int idd = [Link](id);
EntityManagerFactory ef=
[Link]("trung");
EntityManager em = [Link]();
[Link]().begin();
Book b=[Link]([Link], idd); //Thay Book và idd
[Link]("book", b); // book ko co s
[Link]().commit();
//chuyen huong
RequestDispatcher
rd=[Link]("[Link]");//Chinh thanh [Link]
[Link](request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
[Link]:
package controller;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
/**
* Servlet implementation class SaveServlet
*/
@WebServlet("/save")
public class SaveServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public SaveServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
String title = [Link]("title");// Thay title
String author = [Link]("author");// Thay author
String price = [Link]("price");// Thay price
float prices = [Link](price);// nhớ thêm s vào price
EntityManagerFactory ef= [Link]("trung");
EntityManager em = [Link]();
[Link]().begin();
Book b = new Book(); // nho viet hoa theo class trong model
[Link](title);
[Link](author);
[Link](prices); // nho them s vao price
[Link](b); //nho thay b
[Link]().commit();
//chuyen huong
RequestDispatcher rd=[Link]("home");//Quan trong home
[Link](request, response);
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
[Link] :
package controller;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
/**
* Servlet implementation class UpdateServlet
*/
@WebServlet("/update")
public class UpdateServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public UpdateServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
String title = [Link]("title");// Thay title
String author = [Link]("author");// Thay author
String price = [Link]("price");// Thay price
float prices = [Link](price);// nhớ thêm s vào price
HttpSession session =[Link]();
Book bold = (Book) [Link]("bold"); // nhớ đổi bold
EntityManagerFactory ef=
[Link]("trung");
EntityManager em = [Link]();
[Link]().begin();
[Link](title);
[Link](author);
[Link](prices); // nho them s vao price
[Link](bold); //nho thay bold
[Link]().commit();
//chuyen huong
RequestDispatcher rd=[Link]("home");//Quan
trong home
[Link](request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}