一、項目介紹
1.1 寫在前面
本項目僅僅實現了對學生數據的增刪改查,當對數據的操作失敗的時候頁面會空白或者報500錯誤,沒有對錯誤的情況進行處理。歡迎大家在後續進行補充修改
1.2 實現技術
頁面顯示層----------jsp
業務邏輯層----------Servlet
數據訪問層----------DBUtils+C3P0
使用數據庫----------MySQL
服務器----------------Tomcat
使用工具-------------Eclipse+SQLyog
1.3項目結構
二、開發流程
創建數據庫
分爲兩個表,一個是管理員的信息表,另一個是學生的信息表
登錄頁面
對應LoginServlet代碼
package com.gzgs.servlet;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.gzgs.domain.User;
import com.gzgs.service.UserService;
import com.gzgs.service.impl.UserServiceImpl;
/**
* 用來處理管理員的登錄請求的servlet
*
* @author SDL
*
*/
public class LoginServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 處理可能出現的中文亂碼問題
request.setCharacterEncoding("UTF-8");
response.setHeader("Content-Type", "text/html;charset=UTF-8");
// 獲取參數
String username = request.getParameter("username");
String password = request.getParameter("password");
try { // 判斷登錄
UserService userService = new UserServiceImpl();
User user = userService.login(username, password);
if (user != null) {
request.setAttribute("currentPage",1);
request.getRequestDispatcher("StudentListServlet").forward(request, response);
} else {
response.getWriter().write("<h3>登錄失敗,用戶名或密碼錯誤!</h3>");
}
} catch (SQLException e) {
// TODO 自動生成的 catch 塊
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
分頁信息顯示頁面
查詢所有男生信息
添加學生信息
這個可以根據自己情況進行修改
對應添加學生信息的Servlet
package com.gzgs.servlet;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.gzgs.domain.Student;
import com.gzgs.service.StudentService;
import com.gzgs.service.impl.StudentServiceImpl;
/**
* 這個servlet用於處理用戶添加學生的請求
*
* @author SDL
*
*/
public class AddServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
try {
// 獲取用戶傳過來的數據
String sname = request.getParameter("sname");
String gender = request.getParameter("gender");
String phone = request.getParameter("phone");
String birthday = request.getParameter("birthday"); // 1989-10-18
String info = request.getParameter("info");
// 由於愛好可能不止一個,所以這裏用數組來接收愛好
String[] h = request.getParameterValues("hobby");
// 將數組轉換爲字符串
String hobby = Arrays.toString(h);
hobby = hobby.substring(1, hobby.length() - 1);
// 2. 添加到數據庫
// 由於數據庫中出生日期的類型是Date,所以這裏需要轉一下
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(birthday);
Student student = new Student(sname, gender, phone, hobby, info, date);
StudentService service = new StudentServiceImpl();
service.insert(student);
//3. 跳轉到列表頁 這裏注意不能直接跳轉到list_page.jsp頁面,否則會顯示不出新增的學生信息
//servlet除了能跳jsp之外。 還能跳servlet
request.setAttribute("currentPage",1);//傳遞打開的頁碼參數
request.getRequestDispatcher("StudentListServlet").forward(request, response);
} catch (Exception e) {
// TODO 自動生成的 catch 塊
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
修改吳亦凡的學生信息
對應修改信息的Servlet的代碼
package com.gzgs.servlet;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.gzgs.domain.Student;
import com.gzgs.service.StudentService;
import com.gzgs.service.impl.StudentServiceImpl;
/**
* 這個servlet用於處理用戶的跟新學生信息的請求
* @author SDL
*
*/
public class UpdateServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
try {
//1. 獲取客戶端提交上來的數據
int sid = Integer.parseInt(request.getParameter("sid"));
String sname = request.getParameter("sname"); //sname:zhangsan
String gender = request.getParameter("gender");
String phone = request.getParameter("phone");
String birthday = request.getParameter("birthday"); // 1989-10-18
String info = request.getParameter("info");
//String hobby = request.getParameter("hobby");//hobby : 游泳,寫字, 足球。
String[] h = request.getParameterValues("hobby");
// [籃球,足球,寫字] --- 籃球,足球,寫字
String hobby = Arrays.toString(h);
hobby = hobby.substring(1, hobby.length() - 1);
//2. 添加到數據庫
//string -- date
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(birthday);
Student student = new Student(sid ,sname, gender, phone, hobby, info, date);
//2. 更新數據庫數據
StudentService service = new StudentServiceImpl();
service.update(student);
//3. 跳轉界面
request.setAttribute("currentPage",1);//設置傳遞的頁碼參數
request.getRequestDispatcher("StudentListServlet").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
三、完整項目源碼下載
下載鏈接:https://download.csdn.net/download/weixin_45680962/12484282
下載之後部署到tomcat上,然後再瀏覽器就可以訪問了哦!
項目有很多可以改進的地方,歡迎大家指點,有疑問的話也歡迎留言哈哈哈哈