package com.zyh.oa.servlet;
import com.mysql.cj.protocol.Resultset;
import com.zyh.oa.javabean.User;
import com.zyh.oa.utils.DBUtils;
import jakarta.servlet.Registration;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
* @author zengyihong
* @create 2022--03--30 20:05
*/
@WebServlet({"/dept/list","/dept/detail","/dept/add","/dept/save","/dept/delete"})
public class DeptServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//模板方法设计模式
/**
* 我们可以获取servlet的路径,根据路径来执行相应的方法
*/
String servletPath = request.getServletPath();
if ("/dept/list".equals(servletPath)){
doList(request,response);
}else if ("/dept/detail".equals(servletPath)){
doDetail(request,response);
}else if ("/dept/add".equals(servletPath)){
doAdd(request,response);
}else if ("/dept/save".equals(servletPath)){
doSave(request,response);
}else if ("/dept/delete".equals(servletPath)){
doMyDelete(request,response);
}
}
/**
* 根据传入的部门编号来删除数据
* @param request
* @param response
*/
private void doMyDelete(HttpServletRequest request, HttpServletResponse response) throws IOException {
String deptno = request.getParameter("deptno");
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
int cnt=0;
try {
conn=DBUtils.getConnection();
String sql="delete from dept where deptno=?";
ps = conn.prepareStatement(sql);
ps.setString(1,deptno);
cnt = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtils.close(conn,ps,rs);
}
if (cnt >0){
response.sendRedirect(request.getContextPath()+"/dept/list");
}
}
/**
* 把修改后的数据保存到数据库
* @param request
* @param response
* @throws IOException
*/
private void doSave(HttpServletRequest request, HttpServletResponse response) throws IOException {
//根据获取的参数来修改数据库中的记录
String deptno = request.getParameter("deptno");
String dname = request.getParameter("dname");
String loc = request.getParameter("loc");
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
int cnt=0;
try {
conn=DBUtils.getConnection();
String sql="update dept set dname=? ,loc=? where deptno=?";
ps = conn.prepareStatement(sql);
ps.setString(1,dname);
ps.setString(2,loc);
ps.setString(3,deptno);
cnt = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtils.close(conn,ps,rs);
}
//修改成功后,回到列表页面
if (cnt > 0){
response.sendRedirect(request.getContextPath()+"/dept/list");
}
}
/**
* 新增部门
* @param request
* @param response
*/
private void doAdd(HttpServletRequest request, HttpServletResponse response) throws IOException {
/**
* 根据获取的参数,来存入数据库中
*/
String deptno = request.getParameter("deptno");
String dname = request.getParameter("dname");
String loc = request.getParameter("loc");
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
int cnt=0;
try {
conn=DBUtils.getConnection();
String sql="insert into dept(deptno,dname,loc) values(?,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1,deptno);
ps.setString(2,dname);
ps.setString(3,loc);
cnt = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtils.close(conn,ps,rs);
}
if (cnt>0){
//说明保存成功,跳转到部门列表页面
response.sendRedirect(request.getContextPath()+"/dept/list");
}
}
/**
* 部门详情功能,点击详情,根据部门编号返回相应的数据
* @param request
* @param response
*/
private void doDetail(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/**
* 首先获取前端浏览器传过来的部门编号信息
* 根据这个信息来查询对应的信息
* 然后返回给详情页面进行展示
*/
String deptno = request.getParameter("deptno");
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
List<User> list=new ArrayList<>();
try {
conn=DBUtils.getConnection();
String sql="select dname,loc from dept where deptno=?";
ps=conn.prepareStatement(sql);
ps.setString(1,deptno);
rs=ps.executeQuery();
//查到数据,返回
while (rs.next()){
User user=new User();
user.setDeptno(deptno);
user.setDname(rs.getString(1));
user.setLoc(rs.getString(2));
list.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtils.close(conn,ps,rs);
}
//把数据给JSP
// 使用转发,因为需要取数据
//因为详情和修改的第一步它们执行的servlet是一样的,所以我们可以根据参数的值来判断到底是详情还是修改
request.setAttribute("list",list);
String f = request.getParameter("f");
if ("detail".equals(f)){
request.getRequestDispatcher("/detail.jsp").forward(request,response);
}else if ("edit".equals(f)){
//走修改页面
request.getRequestDispatcher("/edit.jsp").forward(request,response);
}
}
/**
* 展示部门列表页面
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void doList(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/**
* 使用JDBC连接数据库,查询表中数据
*/
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
List<User> list=new ArrayList<>();
try {
conn= DBUtils.getConnection();
String sql="select deptno,dname,loc from dept";
ps=conn.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()){
String deptno = rs.getString("deptno");
String dname = rs.getString("dname");
String loc = rs.getString("loc");
User user=new User(deptno,dname,loc);
list.add(user);
}
} catch (SQLException
没有合适的资源?快使用搜索试试~ 我知道了~
servlet+jsp练手小项目
共13个文件
jsp:6个
java:3个
iml:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 118 浏览量
2022-04-06
15:54:42
上传
评论 1
收藏 2.23MB RAR 举报
温馨提示
servlet+jsp练手小项目,适合初学者进行项目的练手,可以帮助我们熟悉servlet+jsp的项目流程,掌握转发,重定向,路径等问题,有助于后面框架的学习,而且项目并不复杂,主要是锻炼大家的思路,让我们可以熟悉servlet和jsp
资源推荐
资源详情
资源评论
收起资源包目录
servlet+jsp练手小项目1.rar (13个子文件)
myoa01
myoa01.iml 1KB
src
com
zyh
oa
javabean
User.java 1KB
servlet
DeptServlet.java 8KB
utils
DBUtils.java 2KB
resources
jdbc.properties 105B
web
list.jsp 3KB
detail.jsp 961B
WEB-INF
web.xml 307B
lib
mysql-connector-java-8.0.28.jar 2.36MB
modify.jsp 303B
add.jsp 722B
index.jsp 376B
edit.jsp 2KB
共 13 条
- 1
不断前进的皮卡丘
- 粉丝: 5w+
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页