package com.example.demo.util
import java.sql.DriverManager
import java.sql.ResultSet
import java.sql.SQLException
import java.sql.Statement
import java.sql.Connection
public class DBConnection {
private static final String driverName = "com.mysql.cj.jdbc.Driver"
private static final String url = "jdbc:mysql://localhost:3306/testdb?serverTimezone=GMT%2B8&characterEncoding=utf-8"
private static final String user = "root"
private static final String password = "111111"
private DBConnection() {
}
static {
try {
Class.forName(driverName)
} catch (Exception e) {
e.printStackTrace()
}
}
public static Connection getConnection() throws SQLException {
return (Connection) DriverManager.getConnection(url, user, password)
}
public static void close(ResultSet rs, Statement st, Connection conn) {
try {
if (rs != null) {
rs.close()
}
} catch (SQLException e) {
e.printStackTrace()
} finally {
try {
if (st != null) {
st.close()
}
} catch (SQLException e) {
e.printStackTrace()
} finally {
if (conn != null) {
try {
conn.close()
} catch (SQLException e) {
e.printStackTrace()
}
}
}
}
}
}
package com.example.demo
import java.sql.*
import com.example.demo.util.DBConnection
import com.mysql.cj.xdevapi.Statement
public class StudentCRUD {
private Connection conn
public static void main(String[] args)throws SQLException {
StudentCRUD crud = new StudentCRUD()
// 测试添加记录
// crud.add(1, "张三", 20, "男","jsjs")
//
// // 测试查询全部记录
// crud.listAll()
//////
//// // 测试更新记录
// crud.update(1, "李四", 21, "女","js")
crud.getSnameAndClassBySno(123456)
////
//// // 测试删除记录
// crud.delete(2)
// // 再次测试查询全部记录
// crud.listAll()
}
public StudentCRUD() throws SQLException {
// 获得链接对象
conn= DBConnection.getConnection()
// TODO 自动生成的构造函数存根
}
public void add(int id, String name, int age, String gender,String department) {
// 定义sql
String sql="insert into student(id,name,gender,age,department) value(?,?,?,?,?)"
try {
PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql)
pstmt.setInt(1, id)
pstmt.setString(2, name)
pstmt.setString(3, gender)
pstmt.setInt(4, age)
pstmt.setString(5, department)
pstmt.executeUpdate()
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace()
}
}
public void listAll() {
String sql="select * from student"
try {
// Statement stmt = (Statement) conn.createStatement()
// ResultSet rs=((StatementImpl) stmt).executeQuery(sql)
PreparedStatement pstmt = conn.prepareStatement(sql)
ResultSet rs=pstmt.executeQuery(sql)
while (rs.next()) {
int id = rs.getInt("id")
String name = rs.getString("name")
int age = rs.getInt("age")
String gender = rs.getString("gender")
String department=rs.getString("department")
System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age + ", Gender: " + gender+",department:"+department)
}
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace()
}
}
public void update(int id, String name, int age, String gender,String department) {
String sql = "update student set name=?,gender=?,age=?,department=?where id=?"
// UPDATE student SET name = ?, age = ?, gender = ? WHERE id = ?
PreparedStatement pstmt
try {
pstmt = conn.prepareStatement(sql)
pstmt.setString(1, name)
pstmt.setInt(3, age)
pstmt.setString(2, gender)
pstmt.setString(4, department)
pstmt.setInt(5, id)
pstmt.executeUpdate()
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace()
}
}
public void delete(int id) {
String sql = "delete from student where id=?"
PreparedStatement pstmt
try {
pstmt = (PreparedStatement) conn.prepareStatement(sql)
pstmt.setInt(1, id)
pstmt.executeUpdate()
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace()
}
}
}
package com.example.demo
import com.example.demo.util.DBConnection
import java.sql.Connection
import java.sql.PreparedStatement
import java.sql.ResultSet
import java.sql.SQLException
public class TransactionTest {
public Connection conn
public static void main(String[] args) throws SQLException {
Transaction(1,2,500)
}
public TransactionTest() throws SQLException {
// 获得链接对象
conn= DBConnection.getConnection()
// TODO 自动生成的构造函数存根
}
public static void Transaction(int fromid,int toid,float money) throws SQLException {
Connection conn
conn= DBConnection.getConnection()
//查询余额
conn.setAutoCommit(false)
float yue= balance(fromid)
if (yue < money) {
System.out.println("余额不足")
return
}
updatebalance(fromid,yue-money)
updatebalance(toid,balance(toid)+money)
conn.commit()
}
private static void updatebalance(int id, float v) throws SQLException {
Connection conn
conn= DBConnection.getConnection()
String sql = "update user set money=?where id=?"
// UPDATE student SET name = ?, age = ?, gender = ? WHERE id = ?
PreparedStatement pstmt
try {
pstmt = (PreparedStatement) conn.prepareStatement(sql)
pstmt.setFloat(1, v)
pstmt.setInt(2, id)
pstmt.executeUpdate()
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace()
}
}
private static float balance(int id) throws SQLException {
Connection conn
conn= DBConnection.getConnection()
String sql="select * from user"
PreparedStatement pstmt = null
try {
pstmt = conn.prepareStatement(sql)
ResultSet rs=pstmt.executeQuery(sql)
while (rs.next()) {
if(rs.getInt("id")==id){
return rs.getFloat("money")
}
}
} catch (SQLException e) {
throw new RuntimeException(e)
}
return 0
}
}
package com.example.demo1
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import java.io.IOException
import java.io.PrintWriter
public class TestServlet extends HelloServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
System.out.println("这是TestServlet")
}
}
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>com.example.demo1.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/TestServlet</url-pattern>
</servlet-mapping>
package com.example.demo1
import java.io.IOException
import javax.servlet.ServletException
import javax.servlet.annotation.WebServlet
import javax.servlet.http.HttpServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
@WebServlet("/TestServlet2")
public class TestServlet2 extends HelloServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
System.out.println("这是TestServlet2")
}
}
<form id="reg-form" action="/demo1_war_exploded/registerServlet1" method="post">
<table>
<tr>
<td>用户名</td>
<td class="inputs">
<input name="username" type="text" id="username">
<br>
<span id="username_err" class="err_msg" style="display: none">用户名不太受欢迎</span>
</td>
</tr>
<tr>
<td>密码</td>
<td class="inputs">
<input name="password" type="password" id="password">
<br>
<span id="password_err" class="err_msg" style="display: none">密码格式有误</span>
</td>
</tr>
<tr>
<td>性别</td>
<td class="inputs" >
<input type="radio" name="gender" value="male" > Male
<input type="radio" name="gender" value="female"> Female
<input type="radio" name="gender" value="other"> Other
</td>
</tr>
<tr>
<td>爱好</td>
<td class="inputs" style="color: #333333">
<input type="checkbox" name="fruit" value="王者荣耀">王者荣耀
<input type="checkbox" name="fruit" value="火影忍者">火影忍者
</td>
</tr>
</table>
<div class="buttons">
<input value="注 册" type="submit" id="reg_btn">
</div>
<br class="clear">
</form>
package com.example.demo1.web
import com.example.demo1.HelloServlet
import com.example.demo1.util.CRUD
import com.example.demo1.util.User
import javax.servlet.ServletException
import javax.servlet.annotation.WebServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import java.io.IOException
import java.io.PrintWriter
import java.sql.SQLException
@WebServlet("/registerServlet1")
public class registerServlet extends HelloServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html
request.setCharacterEncoding("UTF-8")
String username=request.getParameter("username")
String password=request.getParameter("password")
String gender=request.getParameter("gender")
String []fruit = request.getParameterValues("fruit")
response.setContentType("text/html
PrintWriter writer= response.getWriter()
try {
if(new CRUD().selsct(username)){
new CRUD().add(username,password)
writer.println(username+password+gender+fruit[0]+fruit[1])
}else {
System.out.println(456)
}
} catch (SQLException e) {
throw new RuntimeException(e)
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doGet(req, resp)
}
}
package com.example.demo1.web
import com.example.demo1.HelloServlet
import com.example.demo1.util.Student
import javax.servlet.ServletException
import javax.servlet.annotation.WebServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import javax.servlet.http.HttpSession
import java.io.IOException
@WebServlet("/RequestScopeServlet")
public class RequestScopeServlet extends HelloServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
Student student= new Student("鹿津愉",21)
request.setAttribute("student",student)
HttpSession session = request.getSession()
session.setAttribute("student",student)
getServletContext().setAttribute("student",student)
try {
request.getRequestDispatcher("/receive").forward(request,response)
} catch (ServletException e) {
throw new RuntimeException(e)
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp)
}
}
package com.example.demo1.web
import com.example.demo1.HelloServlet
import com.example.demo1.util.Student
import javax.servlet.ServletException
import javax.servlet.annotation.WebServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import javax.servlet.http.HttpSession
import java.io.IOException
@WebServlet("/RequestScopeServlet2")
public class RequestScopeServlet2 extends HelloServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
Student student= new Student("鹿津愉",21)
request.setAttribute("student",student)
HttpSession session = request.getSession()
session.setAttribute("student",student)
getServletContext().setAttribute("student",student)
response.sendRedirect( request.getContextPath() + "/receive2")
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp)
}
}
package com.example.demo1.web
import com.example.demo1.HelloServlet
import com.example.demo1.util.Student
import javax.servlet.ServletException
import javax.servlet.annotation.WebServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import javax.servlet.http.HttpSession
import java.io.IOException
import java.io.PrintWriter
@WebServlet(urlPatterns = "/receive")
//@WebServlet( "/receive")
public class ReceiveServlet extends HelloServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
// Student student= new Student("鹿津愉",21)
// request.setAttribute("student",student)
Student pagestudent= (Student) request.getAttribute("student")
Student sessionstudent= (Student) request.getSession().getAttribute("student")
//
// HttpSession session = request.getSession()
// session.setAttribute("student",student)
//
// getServletContext().setAttribute("student",student)
Student applicationstudent= (Student) request.getServletContext().getAttribute("student")
System.out.println(pagestudent.toString())
System.out.println(sessionstudent.toString())
System.out.println(applicationstudent.toString())
response.setContentType("text/html
PrintWriter writer= response.getWriter()
writer.write("pagestudent:"+pagestudent.toString())
writer.write("sessionstudent:"+sessionstudent.toString())
writer.write("applicationstudent:"+applicationstudent.toString())
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp)
}
}
package com.example.demo1.web
import com.example.demo1.HelloServlet
import com.example.demo1.util.Student
import javax.servlet.ServletException
import javax.servlet.annotation.WebServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import java.io.IOException
import java.io.PrintWriter
@WebServlet(urlPatterns = "/receive2")
//@WebServlet( "/receive")
public class ReceiveServlet2 extends HelloServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
// Student student= new Student("鹿津愉",21)
// request.setAttribute("student",student)
// Student pagestudent= (Student) request.getAttribute("student")
Student sessionstudent= (Student) request.getSession().getAttribute("student")
//
// HttpSession session = request.getSession()
// session.setAttribute("student",student)
//
// getServletContext().setAttribute("student",student)
Student applicationstudent= (Student) request.getServletContext().getAttribute("student")
// System.out.println(pagestudent.toString())
System.out.println(sessionstudent.toString())
System.out.println(applicationstudent.toString())
response.setContentType("text/html
PrintWriter writer= response.getWriter()
// writer.write("pagestudent:"+pagestudent.toString())
writer.write("sessionstudent:"+sessionstudent.toString())
writer.write("applicationstudent:"+applicationstudent.toString())
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp)
}
}
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2" 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_2.xsd">
<persistence-unit name="dome">
<class>model.College</class>
<class>model.School</class>
<class>model.Classa</class>
<class>model.Student</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/testdb?characterEncoding=utf8&serverTimezone=UTC&rewriteBatchedStatements=true"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="111111"/>
</properties>
</persistence-unit>
</persistence>
package util
import javax.persistence.EntityManager
import javax.persistence.EntityManagerFactory
import javax.persistence.Persistence
public class EntityManagerUtil {
private static final EntityManagerFactory entityManagerFactory
static {
try {
entityManagerFactory = Persistence.createEntityManagerFactory("dome")
} catch (ExceptionInInitializerError ex) {
System.err.println("初始化工厂失败" + ex)
throw new ExceptionInInitializerError(ex)
}
}
public static EntityManager getEntityManager() {
return entityManagerFactory.createEntityManager()
}
}
package model
import java.io.Serializable
import javax.persistence.*
import java.util.Date
import java.util.List
/**
* The persistent class for the student database table.
*
*/
@Entity
@NamedQuery(name="Student.findAll", query="SELECT s FROM Student s")
public class Student implements Serializable {
private static final long serialVersionUID = 1L
@Id
private String stuid
private int age
@Temporal(TemporalType.DATE)
private Date birthday
private String className
private String name
private String sex
//bi-directional one-to-one association to Classa
@OneToOne(mappedBy="student2")
private Classa classa
@Override
public String toString() {
return "Student [stuid=" + stuid + ", age=" + age + ", birthday=" + birthday + ", className=" + className
+ ", name=" + name + ", sex=" + sex + " ]"
}
public Student() {
}
public String getStuid() {
return this.stuid
}
public void setStuid(String stuid) {
this.stuid = stuid
}
public int getAge() {
return this.age
}
public void setAge(int age) {
this.age = age
}
public Date getBirthday() {
return this.birthday
}
public void setBirthday(Date birthday) {
this.birthday = birthday
}
public String getClassName() {
return this.className
}
public void setClassName(String className) {
this.className = className
}
public String getName() {
return this.name
}
public void setName(String name) {
this.name = name
}
public String getSex() {
return this.sex
}
public void setSex(String sex) {
this.sex = sex
}
public Classa getClassa() {
return this.classa
}
public void setClassa(Classa classa) {
this.classa = classa
}
}
package model
import java.io.Serializable
import javax.persistence.*
/**
* The persistent class for the classas database table.
*
*/
@Entity
@Table(name="classas")
@NamedQuery(name="Classa.findAll", query="SELECT c FROM Classa c")
public class Classa implements Serializable {
@Override
public String toString() {
return "Classa [id=" + id + ", name=" + name + "]"
}
private static final long serialVersionUID = 1L
@Id
private int id
private String name
//bi-directional many-to-one association to Student
//bi-directional one-to-one association to Student
@OneToOne
@JoinColumn(name="monitor_id")
private Student student2
public Classa() {
}
public int getId() {
return this.id
}
public void setId(int id) {
this.id = id
}
public String getName() {
return this.name
}
public void setName(String name) {
this.name = name
}
public Student getStudent2() {
return this.student2
}
public void setStudent2(Student student2) {
this.student2 = student2
}
}
package model
import java.io.Serializable
import javax.persistence.*
/**
* The persistent class for the colleges database table.
*
*/
@Entity
@Table(name="colleges")
@NamedQuery(name="College.findAll", query="SELECT c FROM College c")
public class College implements Serializable {
@Override
public String toString() {
return "College [id=" + id + ", name=" + name + "]"
}
private static final long serialVersionUID = 1L
@Id
private String id
private String name
//bi-directional many-to-one association to School
@ManyToOne
@JoinColumn(name="school_id")
private School school
public College() {
}
public String getId() {
return this.id
}
public void setId(String id) {
this.id = id
}
public String getName() {
return this.name
}
public void setName(String name) {
this.name = name
}
public School getSchool() {
return this.school
}
public void setSchool(School school) {
this.school = school
}
}
package model
import java.io.Serializable
import javax.persistence.*
import java.util.List
/**
* The persistent class for the schools database table.
*
*/
@Entity
@Table(name="schools")
@NamedQuery(name="School.findAll", query="SELECT s FROM School s")
public class School implements Serializable {
private static final long serialVersionUID = 1L
@Id
private String id
private String name
//bi-directional many-to-one association to College
@OneToMany(mappedBy="school")
private List<College> colleges
public School() {
}
public String getId() {
return this.id
}
public void setId(String id) {
this.id = id
}
public String getName() {
return this.name
}
public void setName(String name) {
this.name = name
}
public List<College> getColleges() {
return this.colleges
}
public void setColleges(List<College> colleges) {
this.colleges = colleges
}
@Override
public String toString() {
return "School [id=" + id + ", name=" + name + "]"
}
public College addCollege(College college) {
getColleges().add(college)
college.setSchool(this)
return college
}
public College removeCollege(College college) {
getColleges().remove(college)
college.setSchool(null)
return college
}
}
package dao
import javax.persistence.EntityManager
import java.util.ArrayList
import java.util.List
import javax.persistence.EntityManager
import javax.persistence.Query
import org.junit.jupiter.api.Test
import model.Classa
import model.College
import model.School
import model.Student
import util.EntityManagerUtil
public class Studentinfodao {
@Test
public List<Student> getStudents() {
EntityManager em=EntityManagerUtil.getEntityManager()
Query query=em.createNamedQuery("Student.findAll")
List<Student> students=query.getResultList()
em.close()
return students
}
public void addStudents(String id, String name,String classname){
EntityManager em=EntityManagerUtil.getEntityManager()
Student student=new Student()
student.setStuid(id)
student.setName(name)
student.setAge(0)
student.setClassName(classname)
em.getTransaction().begin()
em.persist(student)
em.getTransaction().commit()
em.close()
}
public void updateStudent(Student student){
EntityManager em=EntityManagerUtil.getEntityManager()
em.getTransaction().begin()
em.merge(student)
em.getTransaction().commit()
em.close()
}
//public void updateStudent(String classname){
// EntityManager em=EntityManagerUtil.getEntityManager()
// String jpql="update Student s set s.name=concat(s.name,'*') where s.classinfo.className=:classname"
// Query query=em.createQuery(jpql).setParameter("classname", classname)
// em.getTransaction().begin()
// query.executeUpdate()
// em.getTransaction().commit()
//}
public Student getUserById(String studentid){
EntityManager em=EntityManagerUtil.getEntityManager()
Student user=em.find(Student.class, studentid)
return user
}
////根据已定义好的Query语句名查询
//public List<S> getUsers(){
// EntityManager em=EntityManagerUtil.getEntityManager()
// Query query=em.createNamedQuery("User.findAll")
// List<User> users=query.getResultList()
// return users
//}
//
//public List<User> getUsersByName(String username){
// EntityManager em=EntityManagerUtil.getEntityManager()
// Query query=em.createQuery("SELECT u FROM User u where u.name like :name")
// List<User> users=query.setParameter("name", "%"+username+"%").getResultList()
//// query.getSingleResult()
// return users
//}
public void delUser(Integer studentid){
EntityManager em=EntityManagerUtil.getEntityManager()
Student student=em.find(Student.class, studentid)
em.getTransaction().begin()
em.remove(student)
em.getTransaction().commit()
}
public Student as() {
EntityManager em=EntityManagerUtil.getEntityManager()
Classa aClassa = em.find(Classa.class, 1)
Student studen=aClassa.getStudent2()
return studen
}
public School school() {
EntityManager em=EntityManagerUtil.getEntityManager()
College college = em.find(College.class, "1")
return college.getSchool()
}
public List<College> co() {
EntityManager em=EntityManagerUtil.getEntityManager()
School school= em.find(School.class, "1")
System.out.println(school)
return school.getColleges()
}
}
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>登陆窗口</title>
</head>
<body>
<form action="LoginValid.jsp" method="post">
<table border=0>
<tr>
<td>用户名:</td>
<td><input name='name' type='text' value=''/></td>
</tr>
<tr>
<td>密码:</td>
<td><input name='password' type='password' value=''/></td>
</tr>
<tr>
<td colspan=2 align=right>
<input type="reset" value="重置" class="btn">
<input type='submit' value='提交'/>
<a href="http://localhost:8080/student/register.jsp">注册</a>
</td>
</tr>
<tr>
<td colspan=2 align=right>${param.error}</td>
</tr>
</table>
</form>
<%--<%--%>
<%-- response.sendRedirect("myName.jsp")
<%--%>--%>
<%--<%--%>
<%--response.sendRedirect("myName.jsp")
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: 联想
Date: 2023/11/10
Time: 15:50
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>listStudent</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/getUserListServlet" method="post">
用户名:<input type="text" name="username" value="${param.username}"/> 
性别:<input type="text" name="sex" value="${param.sex}"/>
<input type="submit" value="查询"/>
<a href="${pageContext.request.contextPath}/student/AddUser.jsp">添加</a>
</form>
<table class="mtable2">
<caption>学生列表</caption>
<tr>
<th>序号</th>
<th>用户id</th>
<th>用户名</th>
<th>密码</th>
<th>性别</th>
<th>年龄</th>
<th>出生日期</th>
<th>操作</th>
</tr>
<c:forEach var="tmp" items="${requestScope.users}" varStatus="s">
<tr>
<td>${s.index+1}</td>
<td>${tmp.userid}</td>
<td>${tmp.username}</td>
<td>${tmp.password}</td>
<td>${tmp.sex}</td>
<td>${tmp.age}</td>
<td>${tmp.birthday}</td>
<td><a href="${pageContext.request.contextPath}/student/UpdateUser.jsp?userid=${tmp.userid}">修改</a>
<a href="${pageContext.request.contextPath}/DeleteUserServlet?userid=${tmp.userid}"
onclick="if(!confirm('确定要删除吗?')) return false;">删除</a></td>
</tr>
</c:forEach>
</table>
<div class="pager">
<c:set var="maxPage" value="${sessionScope.maxPage}"/>
<span style="margin-right: 15px">
<c:choose>
<c:when test="${sessionScope.PageNo > 1}">
<a href="http://localhost:8080/getUserListServlet?pageNo=1&username=${param.username}&sex=${param.sex}">首页</a>
</c:when>
<c:otherwise>
首页
</c:otherwise>
</c:choose>
</span>
<span style="margin-right: 15px">
<c:choose>
<c:when test="${sessionScope.PageNo > 1}">
<a href="http://localhost:8080/getUserListServlet?pageNo=${sessionScope.PageNo - 1}&username=${param.username}&sex=${param.sex}">上一页</a>
</c:when>
<c:otherwise>
上一页
</c:otherwise>
</c:choose>
</span>
${sessionScope.PageNo}
<span style="margin-left: 15px">
<c:choose>
<c:when test="${sessionScope.PageNo < sessionScope.maxPage}">
<a href="http://localhost:8080/getUserListServlet?pageNo=${sessionScope.PageNo + 1}&username=${param.username}&sex=${param.sex}">下一页</a>
</c:when>
<c:otherwise>
下一页
</c:otherwise>
</c:choose>
</span>
<span style="margin-left: 15px">
<c:choose>
<c:when test="${sessionScope.PageNo < sessionScope.maxPage}">
<a href="http://localhost:8080/getUserListServlet?pageNo=${maxPage}&username=${param.username}&sex=${param.sex}">尾页</a>
</c:when>
<c:otherwise>
尾页
</c:otherwise>
</c:choose>
</span>
</div>
${error}
</body>
</html>
package servlet
import java.io.IOException
import java.util.Map
import javax.servlet.ServletException
import javax.servlet.annotation.WebServlet
import javax.servlet.http.HttpServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import bean.UserBean
/**
* Servlet implementation class AddUserServlet
*/
@WebServlet("/AddUserServlet")
public class AddUserServlet extends HttpServlet {
private static final long serialVersionUID = 1L
/**
* @see HttpServlet
*/
public AddUserServlet() {
super()
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8")
response.setCharacterEncoding("utf-8")
UserBean newuser=new UserBean()
newuser.setUserid(request.getParameter("userid"))
newuser.setUsername(request.getParameter("username"))
newuser.setSex(request.getParameter("sex"))
String age=request.getParameter("age")
if(age.equals("")) age=null
newuser.setAge(age)
newuser.setBirthday(request.getParameter("birthday"))
newuser.setPassword(request.getParameter("password"))
newuser.setConfirmpassword(request.getParameter("confirmpassword"))
Map<String, String> errors=null
try{
errors=newuser.checkUser()
if(errors.size()==0) newuser.addUser()
}catch(Exception e){
errors.put("othererr", "增加失败:"+e.getMessage())
}
if(errors.size()!=0){
request.setAttribute("errors", errors)
request.getRequestDispatcher("/user/AddUser.jsp").forward(request, response)
}else{
request.getRequestDispatcher("/user/MagUser.jsp").forward(request, response)
}
}
/**
* @see HttpServlet
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response)
}
}
package servlet
import java.io.IOException
import java.util.Map
import javax.servlet.ServletException
import javax.servlet.annotation.WebServlet
import javax.servlet.http.HttpServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import bean.UserBean
/**
* Servlet implementation class AddUserServlet
*/
@WebServlet("/AddUserServlet")
public class AddUserServlet extends HttpServlet {
private static final long serialVersionUID = 1L
/**
* @see HttpServlet
*/
public AddUserServlet() {
super()
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8")
response.setCharacterEncoding("utf-8")
UserBean newuser=new UserBean()
newuser.setUserid(request.getParameter("userid"))
newuser.setUsername(request.getParameter("username"))
newuser.setSex(request.getParameter("sex"))
String age=request.getParameter("age")
if(age.equals("")) age=null
newuser.setAge(age)
newuser.setBirthday(request.getParameter("birthday"))
newuser.setPassword(request.getParameter("password"))
newuser.setConfirmpassword(request.getParameter("confirmpassword"))
Map<String, String> errors=null
try{
errors=newuser.checkUser()
if(errors.size()==0) newuser.addUser()
}catch(Exception e){
errors.put("othererr", "增加失败:"+e.getMessage())
}
if(errors.size()!=0){
request.setAttribute("errors", errors)
request.getRequestDispatcher("/user/AddUser.jsp").forward(request, response)
}else{
request.getRequestDispatcher("/user/MagUser.jsp").forward(request, response)
}
}
/**
* @see HttpServlet
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response)
}
}
package servlet
import java.io.IOException
import javax.servlet.ServletException
import javax.servlet.annotation.WebServlet
import javax.servlet.http.HttpServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import bean.UserBean
/**
* Servlet implementation class DeleteUserServlet
*/
@WebServlet("/DeleteUserServlet")
public class DeleteUserServlet extends HttpServlet {
private static final long serialVersionUID = 1L
/**
* @see HttpServlet
*/
public DeleteUserServlet() {
super()
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8")
String userid=request.getParameter("userid")
String error=""
try{
UserBean userbean=new UserBean()
userbean.setUserid(userid)
userbean.delUserById()
}catch(Exception e){
error="删除[userid:"+userid+"]出错:"+e.getMessage()
}
request.setAttribute("error", error)
request.getRequestDispatcher("/GetUsersServlet").forward(request,response)
}
/**
* @see HttpServlet
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response)
}
}
package servlet
import java.io.IOException
import java.util.List
import javax.servlet.ServletException
import javax.servlet.annotation.WebServlet
import javax.servlet.http.HttpServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import bean.UserBean
import bpo.UserBpo
/**
* Servlet implementation class GetUsersServlet
*/
@WebServlet("/GetUsersServlet")
public class GetUsersServlet extends HttpServlet {
private static final long serialVersionUID = 1L
/**
* @see HttpServlet
*/
public GetUsersServlet() {
super()
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8")
response.setCharacterEncoding("utf-8")
String username=request.getParameter("username")
String sex=request.getParameter("sex")
String error=""
List<UserBean> users=null
try{
UserBpo userbpo=new UserBpo()
users=userbpo.getUsers(username, sex)
}catch(Exception e){
error="查询用户出错:"+e.getMessage()
}
request.setAttribute("error", error)
request.setAttribute("users", users)
request.getRequestDispatcher("/user/MagUser.jsp").forward(request,response)
}
/**
* @see HttpServlet
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response)
}
}
package servlet
import java.io.IOException
import java.util.HashMap
import java.util.Map
import javax.servlet.ServletException
import javax.servlet.annotation.WebServlet
import javax.servlet.http.HttpServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import bean.UserBean
/**
* Servlet implementation class UpdateUserServlet
*/
@WebServlet("/UpdateUserServlet")
public class UpdateUserServlet extends HttpServlet {
private static final long serialVersionUID = 1L
/**
* @see HttpServlet
*/
public UpdateUserServlet() {
super()
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8")
UserBean user=this.getUserFromRequest(request)
Map<String,String> errors=this.valid(user)
try {
user.updateUser()
} catch (Exception e) {
errors.put("othererr", "更新数据失败:"+e.getMessage())
}
if(errors.size()!=0){
request.setAttribute("errors", errors)
request.setAttribute("updateuser", user)
request.getRequestDispatcher("/user/UpdateUser.jsp").forward(request, response)
}else{
response.sendRedirect(request.getContextPath()+"/user/MagUser.jsp")
}
}
private Map<String,String> valid(UserBean user){
Map<String,String> errors=new HashMap<String,String>()
if(user.getUsername().equals("")) errors.put("username", "用户名不能为空!")
return errors
}
private UserBean getUserFromRequest(HttpServletRequest request){
String userid=request.getParameter("userid")
String username=request.getParameter("username")
String sex=request.getParameter("sex")
String age=request.getParameter("age")
String birthday=request.getParameter("birthday")
UserBean user=new UserBean()
user.setUserid(userid)
user.setUsername(username)
user.setSex(sex)
user.setAge(age)
user.setBirthday(birthday)
return user
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response)
}
}
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" errorPage="/error.jsp" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ include file="/LoginCheck.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>增加用户信息</title>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/style.css" />
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/common.css" />
</head>
<body>
<div id="wrapper">
<!-- header -->
<div class="header">
<jsp:include page="/header.jsp" flush="true"/>
</div>
<!-- menu -->
<div class="menu">
<jsp:include page="/user/menu.jsp"/>
</div>
<!-- content -->
<div class="content">
<form action="${pageContext.request.contextPath}/AddUserServlet" method="post">
<table class="mtable3" align=center>
<caption>增加用户基本信息</caption>
<tr><td>用户id:</td>
<td><input type="text" name="userid" value="${newuser.userid}"/>${errors.userid}</td></tr>
<tr><td>用户名:</td>
<td><input type="text" name="username" value="${newuser.username}"/>${errors.username}</td></tr>
<tr>
<td>密码:</td><td><input type="password" name="password"/>${errors.password}</td></tr>
<tr>
<td>确认密码:</td><td><input type="password" name="confirmpassword"/>${errors.confirmpassword}</td></tr>
<tr><td>性别</td><td><input type="text" name="sex" value="${newuser.sex}"/></td></tr>
<tr><td>年龄</td><td><input type="text" name="age" value="${newuser.age}"/></td></tr>
<tr><td>出生日期</td><td><input type="text" name="birthday" value="${newuser.birthday}"/></td></tr>
<tr><td><input type="reset" value="重置"/><input type="submit" value="提交"/></td></tr>
</table>
${errors.othererr}
</form>
</div>
<!-- footer -->
<div class="footer">
<jsp:include page="/footer.jsp" flush="true"/>
</div>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" errorPage="/error.jsp" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ include file="/LoginCheck.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>用户管理</title>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/style.css"/>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/common.css" />
</head>
<body>
<div id="wrapper">
<!-- header -->
<div class="header">
<jsp:include page="/header.jsp" flush="true"/>
</div>
<!-- menu -->
<div class="menu">
<jsp:include page="/user/menu.jsp"/>
</div>
<!-- content -->
<div class="content">
<form action="${pageContext.request.contextPath}/GetUsersServlet" method="post">
用户名:<input type="text" name="username" value="${param.username}"/> 
性别:<input type="text" name="sex" value="${param.sex}"/>
<input type="submit" value="查询"/>
</form>
<table class="mtable2">
<caption>用户列表</caption>
<tr><th>序号</th><th>用户id</th><th>用户名</th><th>密码</th><th>性别</th><th>年龄</th><th>出生日期</th><th>操作</th></tr>
<c:forEach var="tmp" items="${users}" varStatus="s">
<tr>
<td>${s.index+1}</td>
<td>${tmp.userid}</td>
<td>${tmp.username}</td>
<td>${tmp.password}</td>
<td>${tmp.sex}</td>
<td>${tmp.age}</td>
<td>${tmp.birthday}</td>
<td><a href="${pageContext.request.contextPath}/user/UpdateUser.jsp?userid=${tmp.userid}">修改</a>
 
<a href="${pageContext.request.contextPath}/DeleteUserServlet?userid=${tmp.userid}"
onclick="if(!confirm('确定要删除吗?')) return false;">删除</a></td>
</tr>
</c:forEach>
</table>
${error}
</div>
<!-- footer -->
<div class="footer">
<jsp:include page="/footer.jsp" flush="true"/>
</div>
</div>
</body>
</html>
package src.servlet
import src.dao.UserDao
import src.model.User
import java.io.IOException
import java.io.PrintWriter
import javax.servlet.ServletException
import javax.servlet.annotation.WebServlet
import javax.servlet.http.HttpServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
/**
* Servlet implementation class Login
*/
@WebServlet("/Login")
public class Login extends HttpServlet {
private static final long serialVersionUID = 1L
/**
* @see HttpServlet
*/
public Login() {
super()
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String username =request.getParameter("name")
String password =request.getParameter("password")
System.out.println(username)
response.setContentType("text/html
UserDao userdao=new UserDao()
User user=userdao.validLogin(username, password)
System.out.println(user.toString())
PrintWriter writer= response.getWriter()
if(user==null){
writer.write("登陆失败")
}else {
request.getSession().setAttribute("user", user)
String usertype=user.getType()
if(usertype.equals("管理员")) response.sendRedirect(request.getContextPath()+"/LoginSuccess.jsp")
if(usertype.equals("学生")) response.sendRedirect(request.getContextPath()+"/LoginSuccess.jsp")
}
// }
}
/**
* @see HttpServlet
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response)
}
}
package src.dao
import src.model.Student
import src.model.User
import src.util.EntityManagerUtil
import javax.persistence.EntityManager
import javax.persistence.NoResultException
import javax.persistence.Query
import java.util.List
public class UserDao {
public User validLogin(String username, String password){
User user=new User()
EntityManager em= EntityManagerUtil.getEntityManager()
Query query=em.createNamedQuery("User.valid")
try{
user=(User)query.setParameter("username", username).setParameter("password", password).getSingleResult()
}catch(NoResultException e){
user=null
}
return user
}
public List<Student> getStudents(){
EntityManager em=EntityManagerUtil.getEntityManager()
Query query=em.createNamedQuery("Student.findAll")
List<Student> students=query.getResultList()
em.close()
return students
}
public static void main(String[] args) {
UserDao userDao= new UserDao()
List<Student> students=userDao.getStudents()
for ( Student use:students) {
System.out.println(use.getName())
}
// UserDao userDao= new UserDao()
// User user=userDao.validLogin("2","1" )
// System.out.println(user.toString())
}
}
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" errorPage="error.jsp" %>
<%@ include file="LoginCheck.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>登陆成功</title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
<div id="wrapper">
<!-- header -->
<div class="header">
<jsp:include page="header.jsp" flush="true"/>
</div>
<!-- menu -->
<div class="menu">
<ul>
<li><a href="user/MagUser.jsp">用户管理</a></li>
<li><a href="#">学生管理</a></li>
<li><a href="#">课程管理</a></li>
</ul>
</div>
<!-- content -->
<div class="content">
</div>
<!-- footer -->
<div class="footer">
<jsp:include page="footer.jsp" flush="true"/>
</div>
</div>
</body>
</html>