By GokiSoft.com|
19:58 16/09/2023|
JSP Servlet
[Share Code] Dự án quản lý sinh viên + CSDL - Database SQL Server - MySQL - Lập trình JSP/Servlet
Dự án quản lý sinh viên + CSDL - Database SQL Server - MySQL - Lập trình JSP/Servlet
#student-list.jsp
<%--
Document : student-list.jsp
Created on : Sep 16, 2023, 7:17:23 PM
Author : teacher
--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Danh Sach Sinh Vien</title>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
<style>
.form-group {
margin-bottom: 20px;
}
</style>
<script>
function deleteItem(id) {
if(confirm('Ban chac chan muon xoa sinh vien nay khong?')) {
$.post('student-list', {
action: "delete",
id: id
}, function(data) {
console.log("delete successfully")
location.reload()
})
}
}
</script>
</head>
<body>
<div class="container">
<h1>Danh Sach Sinh Vien</h1>
<table class="table table-hover table-bordered">
<thead>
<tr>
<th>No</th>
<th>Fullname</th>
<th>Age</th>
<th>Address</th>
<th style="width: 50px"></th>
</tr>
</thead>
<tbody>
<c:forEach var="item" items="${stdList}" varStatus="loop">
<tr>
<td>${loop.index + 1}</td>
<td>${item.fullname}</td>
<td>${item.age}</td>
<td>${item.address}</td>
<td>
<button class="btn btn-danger" onclick="deleteItem(${item.id})">Delete</button>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<h1>Nhap Thong Tin Sinh Vien</h1>
<form method="post">
<div class="form-group">
<label>Full Name</label>
<input type="hidden" class="form-control" name="action" value="add"/>
<input type="text" class="form-control" name="fullname"/>
</div>
<div class="form-group">
<label>Age</label>
<input type="number" class="form-control" name="age"/>
</div>
<div class="form-group">
<label>Address</label>
<input type="text" class="form-control" name="address"/>
</div>
<div class="form-group">
<button class="btn btn-success">Save</button>
</div>
</form>
</div>
</body>
</html>
#StudentServlet.java
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/JSP_Servlet/Servlet.java to edit this template
*/
package aptech;
import entities.Student;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author teacher
*/
public class StudentServlet extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// response.setContentType("text/html;charset=UTF-8");
// try ( PrintWriter out = response.getWriter()) {
// /* TODO output your page here. You may use following sample code. */
// out.println("<!DOCTYPE html>");
// out.println("<html>");
// out.println("<head>");
// out.println("<title>Servlet StudentServlet</title>");
// out.println("</head>");
// out.println("<body>");
// out.println("<h1>Servlet StudentServlet at " + request.getContextPath() + "</h1>");
// out.println("</body>");
// out.println("</html>");
// }
EntityManagerFactory factory = Persistence.createEntityManagerFactory("BT1812PU");
EntityManager em = factory.createEntityManager();
Query query = em.createNamedQuery("Student.findAll", Student.class);
List<Student> stdList = query.getResultList();
request.setAttribute("stdList", stdList);
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/student-list.jsp");
dispatcher.forward(request, response);
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String action = request.getParameter("action").toString();
if(action.equalsIgnoreCase("delete")) {
int id = Integer.parseInt(request.getParameter("id").toString());
EntityManagerFactory factory = Persistence.createEntityManagerFactory("BT1812PU");
EntityManager em = factory.createEntityManager();
Student std = em.find(Student.class, id);
em.getTransaction().begin();
em.remove(std);
em.getTransaction().commit();
} else {
String fullname = request.getParameter("fullname").toString();
String age = request.getParameter("age").toString();
String address = request.getParameter("address").toString();
EntityManagerFactory factory = Persistence.createEntityManagerFactory("BT1812PU");
EntityManager em = factory.createEntityManager();
Student std = new Student();
std.setFullname(fullname);
std.setAddress(address);
std.setAge(Integer.parseInt(age));
em.getTransaction().begin();
em.persist(std);
em.getTransaction().commit();
}
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
#Student.java
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package entities;
import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
/**
*
* @author teacher
*/
@Entity
@Table(name = "student")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Student.findAll", query = "SELECT s FROM Student s"),
@NamedQuery(name = "Student.findById", query = "SELECT s FROM Student s WHERE s.id = :id"),
@NamedQuery(name = "Student.findByFullname", query = "SELECT s FROM Student s WHERE s.fullname = :fullname"),
@NamedQuery(name = "Student.findByAge", query = "SELECT s FROM Student s WHERE s.age = :age"),
@NamedQuery(name = "Student.findByAddress", query = "SELECT s FROM Student s WHERE s.address = :address")})
public class Student implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Size(max = 50)
@Column(name = "fullname")
private String fullname;
@Column(name = "age")
private Integer age;
@Size(max = 200)
@Column(name = "address")
private String address;
public Student() {
}
public Student(Integer id) {
this.id = id;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getFullname() {
return fullname;
}
public void setFullname(String fullname) {
this.fullname = fullname;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Student)) {
return false;
}
Student other = (Student) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "entities.Student[ id=" + id + " ]";
}
}
#persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="BT1812PU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>entities.Student</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3307/bt1812?serverTimezone=UTC"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.password" value=""/>
</properties>
</persistence-unit>
</persistence>
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)