一、项目介绍
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上,然后再浏览器就可以访问了哦!
项目有很多可以改进的地方,欢迎大家指点,有疑问的话也欢迎留言哈哈哈哈