学生增删改查

  • `control`
    • 1、AddStudentServlet.java
    • 2、DeleteStudentServlet.java
    • 3、exitServlet.java
    • 4、LoginFilter.java
    • 5、LoginServlet.java
    • 6、SelectStudentServlet.java
    • 7、UpdateStudentServlet.java
  • `dao`
    • 1、StudentDao.java
    • 2、StudentDaoImpl.java
  • `Entity`
    • 1、Student.java
  • `jdbc`
    • 1、JDBCUtils.java
  • `jsp文件`
    • 1、login.jsp
    • 2、showStudentInfo.jsp
    • 3、studentAdd.jsp
    • 4、updateStudent.jsp

control

1、AddStudentServlet.java

doGet

        StudentDao studentDao = new StudentDaoImpl();//1.接受表单提交信息String name=request.getParameter("name");int sno=Integer.parseInt(request.getParameter("sno"));String sclass=request.getParameter("sclass");String dpSno=request.getParameter("dpSno");//操作类型(添加/删除)String type=request.getParameter("type");     //2.创建学生对象Student stu=new Student();if("add".equals(type)) {//将表单信息赋值给学生对象stu.setsName(name);stu.setSno(sno);stu.setDpSno(dpSno);stu.setSclass(sclass);// 向Student表插入一个用户信息         boolean b=studentDao.insert(stu);if(b) {request.setAttribute("message", "插入成功!");}else {request.setAttribute("message", "插入失败!");}            }else {stu.setsName(name);stu.setSno(sno);stu.setDpSno(dpSno);stu.setSclass(sclass);studentDao.update(stu);}ArrayList<Student> list=new ArrayList<Student>();list=studentDao.findAllStudent();request.setAttribute("list", list);request.getRequestDispatcher("/showStudentInfo.jsp").forward(request,response);}

2、DeleteStudentServlet.java

doPost

        int sno=Integer.parseInt(request.getParameter("sno"));// 删除一个学生StudentDao studentDao = new StudentDaoImpl();boolean b=studentDao.deleteStudentBySno(sno);if(b) {request.setAttribute("message", "删除成功!");}else {request.setAttribute("message", "删除失败!");}ArrayList<Student> list=new ArrayList<Student>();list=studentDao.findAllStudent();request.setAttribute("list", list);request.getRequestDispatcher("/showStudentInfo.jsp").forward(request,response);

3、exitServlet.java

doGet

        HttpSession session=request.getSession();if(session.getAttribute("s")!=null) {session.removeAttribute("s");}request.getRequestDispatcher("/login.jsp").forward(request, response);

4、LoginFilter.java

doFilter

        //转换request和response对象HttpServletRequest req=(HttpServletRequest) request;HttpServletResponse res=(HttpServletResponse) response;//创建session对象HttpSession session=req.getSession();//获取学生信息Student s=(Student)session.getAttribute("s");//判断学生是否登录if(s==null) {//没有登录req.getRequestDispatcher("/login.jsp").forward(request, response);}else {//放行chain.doFilter(request, response);}

5、LoginServlet.java

doGet

        //1、获取表单信息int sno=Integer.parseInt(request.getParameter("sno"));//2、创建数据库访问层接口对象StudentDao dao=new StudentDaoImpl();//3、根据学号查询学生Student s=dao.findStudentBySno(sno);if(s!=null) {//学生存在//4、创建session对象HttpSession session=request.getSession();//5、将学生放入到session对象session.setAttribute("s",s);//请求并转发request.getRequestDispatcher("/SelectStudentServlet").forward(request,response);}else {//学生不存在//存储错误request.setAttribute("errorMessage", "该学生不存在!");//请求并转发登录页面request.getRequestDispatcher("/login.jsp").forward(request,response);}

6、SelectStudentServlet.java

doGet

        StudentDao studentDao = new StudentDaoImpl();ArrayList<Student> list=new ArrayList<Student>();list=studentDao.findAllStudent();request.setAttribute("list", list);request.getRequestDispatcher("/showStudentInfo.jsp").forward(request,response);

7、UpdateStudentServlet.java

doPost

        StudentDao studentDao = new StudentDaoImpl();int sno=Integer.parseInt(request.getParameter("sno"));Student stu=studentDao.findStudentBySno(sno);request.setAttribute("stu", stu);request.getRequestDispatcher("/updateStudent.jsp").forward(request,response);

dao

1、StudentDao.java

/*** 数据库接口* @author Administrator**/
public interface StudentDao {/*** 插入一个学生* @param student* @return*/public boolean insert(Student student);/*** 查询所有学生数据* @return 学生集合*/public ArrayList<Student> findAllStudent();/*** 根据学号获取学生信息* @param sno 学号* @return 查询学生对象*/public Student findStudentBySno(int sno);/*** 根据学号删除学生* @param sno 学号* @return true/false*/public boolean deleteStudentBySno(int sno);/*** 更新一个学生信息(根据学号sno)* @param student* @return true/false*/public boolean update(Student student);

2、StudentDaoImpl.java

public class StudentDaoImpl implements StudentDao {/*** 插入一个学生* @param student* @return*/public boolean insert(Student student) {try {String sql = "insert into student(sName,sno,dpSno,sclass) "+"values('"+ student.getsName()+ "',"+ student.getSno()+ ",'"+ student.getDpSno()+ "','"+ student.getSclass()+ "')";boolean flag = JDBCUtils.executeUpdate(sql);return flag;} catch (Exception e) {e.printStackTrace();}return false;}/*** 查询所有学生数据* @return*/public ArrayList<Student> findAllStudent() {//定义学生集合ArrayList<Student> list = new ArrayList<Student>();try {String sql = "select * from student";ResultSet rs = JDBCUtils.executeQuery(sql);//循环遍历结果集并放入学生集合中while (rs.next()) {Student student = new Student();student.setsName(rs.getString("sName"));student.setSno(rs.getInt("sno"));student.setDpSno(rs.getString("dpSno"));student.setSclass(rs.getString("sclass"));list.add(student);}return list;} catch (Exception e) {e.printStackTrace();} return null;}// 根据学号查询某个学生(前题学号是唯一)public Student findStudentBySno(int sno) {try {String sql = "select * from student where sno=" + sno;ResultSet rs = JDBCUtils.executeQuery(sql);while (rs.next()) {Student student = new Student();student.setsName(rs.getString("sName"));student.setSno(rs.getInt("sno"));student.setDpSno(rs.getString("dpSno"));student.setSclass(rs.getString("sclass"));return student;}return null;} catch (Exception e) {e.printStackTrace();}return null;}/*** 根据学号删除学生* @param sno 学号* @return true/false*/public boolean deleteStudentBySno(int sno) {try {String sql = "delete from student where sno=" + sno;boolean flag = JDBCUtils.executeUpdate(sql);return flag;} catch (Exception e) {e.printStackTrace();}return false;}/*** 更新一个学生信息(根据学号sno)* @param student* @return true/false*/public boolean update(Student student) {try {String sql = "update student set sName='" + student.getsName()+ "',dpSno='"+student.getDpSno()+"',sclass='"+ student.getSclass() + "' where sno=" + student.getSno();boolean flag = JDBCUtils.executeUpdate(sql);return flag;} catch (Exception e) {e.printStackTrace();}return false;}}

Entity

1、Student.java

/*** 学生实体类* @author Administrator**/
public class Student {private String sName;private int sno;private String dpSno;private String sclass;public String getsName() {return sName;}public void setsName(String sName) {this.sName = sName;}public int getSno() {return sno;}public void setSno(int sno) {this.sno = sno;}public String getDpSno() {return dpSno;}public void setDpSno(String dpSno) {this.dpSno = dpSno;}public String getSclass() {return sclass;}public void setSclass(String sclass) {this.sclass = sclass;}}

jdbc

1、JDBCUtils.java

/*** 数据库连接工具包* @author Administrator**/
public class JDBCUtils {static Connection conn =null;static Statement stmt=null;static ResultSet rs=null;/*** 加载驱动* @return 数据库连接对象* @throws ClassNotFoundException* @throws SQLException*/public static Connection getConnection() throws ClassNotFoundException, SQLException  {Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/st?useUnicode=true&characterEncoding=utf-8";String username = "root";String password = "root";conn = DriverManager.getConnection(url, username, password);return conn;}/*** 释放数据库连接资源*/public static void release() {if (stmt != null) {try {stmt.close();} catch (SQLException e) {e.printStackTrace();}stmt = null;}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}conn = null;}if (rs != null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}rs = null;}}/*** 执行查询SQL语句,并返回结果集* @param sql* @return*/public static ResultSet executeQuery(String sql){try {conn = getConnection();stmt = conn.createStatement();rs = stmt.executeQuery(sql);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return rs;}/*** 执行查询SQL语句,并返回是否成功* @param sql* @return*/public static boolean executeUpdate(String sql){int num=0;try {conn = getConnection();stmt = conn.createStatement();num = stmt.executeUpdate(sql);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}if(num>0) {return true;}else {return false;}}
}

jsp文件

1、login.jsp

<body><h1>${errorMessage }</h1><form action="loginServlet" method="get" name="adminMsg">学号:<input type="text" name="sno"/><br/><br/><input type="submit" value="登录" /></form>
</body>

2、showStudentInfo.jsp

<body><h1>学生列表</h1><table border="1"><tr><th width="100px;">姓名</th><th width="100px;">学号</th><th width="100px;">班级</th><th width="100px;">系别</th><th width="100px;">操作</th></tr><c:if test="${list!=null }"><c:forEach items="${list}" var="s"><tr align="center"><td>${s.sName}</td><td>${s.sno}</td><td>${s.sclass}</td><td>${s.dpSno}</td><td><a href="updateStudentServlet?sno=${s.sno}">修改</a>&nbsp;<a href="deleteStudentServlet?sno=${s.sno}">删除</a></td></tr></c:forEach></c:if></table><br/><a href="studentAdd.jsp">返回继续添加</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="exitServlet">退出登录</a>
</body>

3、studentAdd.jsp

<body><h1>学生注册</h1><form action="addStudentServlet" method="get" name="stuInfo"><input name="type" type="hidden" value="add"/>学生姓名:<input type="text" name="name"/><br/><br/>学号:<input type="text" name="sno"/><br/><br/>班级:<select name="sclass"><option value="计本1801班">计本1801班</option><option value="计本1802班">计本1802班</option><option value="计本1803班">计本1803班</option></select><br/><br/>系别:<select name="dpSno"><option value="C10001">计算机系</option><option value="E10001">英语系</option><option value="M10001">数学系</option></select><br/><br/><input type="submit" value="注册"/>      </form>
</body>

4、updateStudent.jsp

<body><h1>学生注册</h1><form action="addStudentServlet" method="get" name="stuInfo"><input name="type" type="hidden" value="update"/>学生姓名:<input type="text" name="name" value="${stu.sName }"/><br/><br/>学号:<input type="text" name="sno" value="${stu.sno }"/><br/><br/>班级:<select name="sclass">              <option value="计本1801班" <c:if test="${stu.sclass=='计本1801班'}">selected</c:if>>计本1801班</option><option value="计本1802班" <c:if test="${stu.sclass=='计本1802班'}">selected</c:if>>计本1802班</option><option value="计本1803班" <c:if test="${stu.sclass=='计本1803班'}">selected</c:if>>计本1803班</option></select><br/><br/>系别:<select name="dpSno"><option value="C10001"<c:if test="${stu.dpSno=='C10001'}">selected</c:if>>计算机系</option><option value="E10001"<c:if test="${stu.dpSno=='E10001'}">selected</c:if>>英语系</option><option value="M10001"<c:if test="${stu.dpSno=='M10001'}">selected</c:if>>数学系</option></select><br/><br/><input type="submit" value="修改"/>        </form>
</body>

学生增删改查jsp完整源码相关推荐

  1. 增删查改html模板,dataGrid增删改查(EasyUI)示例源码

    源码示例前台套用easyui,利用ajax调用sql数据库对学生信息表进行增删改查 资源下载此资源下载价格为2D币,请先登录 资源文件列表 GridDemos.sln , 907 JSonHelper ...

  2. 【SpringBoot实战】员工部门管理页面,增删改查,含源码

    简介 基于SpringBoot,整合MyBatis, Hibernate, JPA, Druid, bootstrap, thymeleaf等,进行增删改查操作的Demo bootstrap-curd ...

  3. (Java/JDBC)对MySQL数据库实现基础的增删改查操作(含源码)

    文章目录 前言 注(常用PreparedStatement方法) 源码展示 前言 实现数据库连接 → Java连接MySQL数据库(含源码) (实现简单的增删查改更改正确的SQL语句即可) 增:ins ...

  4. java servlet dao_Java+MyEclipse+Tomcat 详解Servlet和DAO数据库增删改查操作(源码)

    [实例简介] 该资源主要参考自己的博客http://blog.csdn.net/eastmount/article/details/45936121 讲诉Java+MyEclipse+Tomcat 详 ...

  5. springboot整合mybatis实现简单的单表增删改查(完整代码可下载)

    搭建项目 项目简单效果,前端效果丑的一批,主要是后端功能实现: springboot增删改查 csdn完整代码下载链接: springboot+mybatis Gitee下载地址: Gitee下载地址 ...

  6. servlet增删改查实例_SpringBoot系列(2)整合MongoDB实现增删改查(完整案例)

    自己本科时候一直使用的是Mysql,目前的课题组使用的是MongoDB,因此就花了一部分时间整理了一下,实现springboot与MongoDB的整合,并且实现基本的增删改查操作,从头到尾给出一个完整 ...

  7. Node.js+Express+MongoDB 实现学生增删改查

    前言 选用Node.js,Express,MongoDB来实现一个学生信息的增删改查. Express框架搭建服务器 art-template模板实现页面 MongoDB数据库 Mongoose操作数 ...

  8. java增删改查 jsp生成_jsp+servlet实现最简单的增删改查代码分享

    话不多说,请看代码 package ceet.ac.cn.dao; import java.sql.Connection; import java.sql.PreparedStatement; imp ...

  9. 【iOS】日历行程的增删改查(完整)

    前言 我们可以使用系统提供的EventKit框架来访问和操作用户的日历日程和提醒(虽然日历和提醒是两个独立的app,但是是用同一个框架来处理数据).同样地,日历和提醒的数据的数据,都是存储在同一个叫做 ...

最新文章

  1. Typora链接跳转,页内和页外
  2. 在Vmware中安装Hyper-V
  3. 数据中心未来会被以太网交换器商用IC占领吗?
  4. Java将异常入库_Exception异常库
  5. Visual Studio附加到进程调试
  6. wingide的使用方法积累
  7. C++:21---仿函数
  8. Ubuntu中安装、生成、导入、导出、Python3虚拟环境
  9. 悬赏17万:美国“知乎”的沙雕问题,需要AI来识别
  10. ELK 使用filebeat替代Logstash收集日志
  11. 1042. Shuffling Machine
  12. Oracle数据库内存使用情况分析查看
  13. Qt下的综合练习—汽车信息管理系统(一)主界面设计
  14. 自定义UI控件:弹出键盘添加“完了”按钮
  15. QuantLib 金融计算——基本组件之 ExchangeRate 类
  16. 微信小程序w-picker组件关于颗粒度“时“即hour时“日“初始化不显示问题处理
  17. 更好玩的跑步机,还有丰富课程资源,赤兔Air跑步机体验
  18. 前端开发面试问题及答案收录
  19. 搭建CTF-AWD训练平台
  20. 做服务号还是订阅号?

热门文章

  1. 树莓派4B安装系统,pytorch,opencv搭建深度学习目标检测模型
  2. 微知库计算机应用基础,《现代职业教育》杂志2021年第2期改革探索实践栏目重点选题...
  3. docker-compose vmwkmip
  4. 在hta中使用select下拉框
  5. wireshark分析arp攻击
  6. usb68013Bulkloop固件程序
  7. Windows Server 2016 新功能HCI(超融合基础架构) By S2D
  8. c语言程序设计库搜索app,C语言编程宝典app
  9. windows server 2003 DCOM 10016错误事件的解决
  10. linux文件系统xilinx,EETOP 赛灵思(Xilinx) 社区