Servlet实现请假-ajax方式 作者:马育民 • 2022-02-14 16:20 • 阅读:10039 # 说明 创建封装类 `JsonResult`,封装返回结果,并将 java对象 转成 `json` 字符串 # html ``` 请假 假期类型: 请选择 事假 病假 产假 婚假 开始日期: 结束日期: 请假事由: ``` # servlet ``` package com.zrgj.servlet; import java.io.IOException; import java.io.PrintWriter; import java.sql.SQLException; 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 com.zrgj.util.DateUtil; import com.zrgj.util.DbUtils; import com.zrgj.vo.JsonResult; @WebServlet(urlPatterns="/leaveServlet2") public class LeaveServlet2 extends HttpServlet{ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setContentType("text/html; charset=UTF-8"); String type=req.getParameter("type"); //start_date命名方式不符合java的规范,应用小驼峰命名方式 String startDate=req.getParameter("start_date"); String endDate=req.getParameter("end_date");//ctrl+alt+↓ 复制一行 String reason=req.getParameter("reason");//ctrl+alt+↓ 复制一行 PrintWriter out = resp.getWriter(); //校验结束日期 大于等于 开始日期 //比较日期时 ,就不能用String,用Date类型 try{ boolean b=DateUtil.beforeAndEquals(startDate, endDate); if(!b){ // ! 表示取反 out.write( JsonResult.fail(100, "开始日期要早于结束日期,请重新填写!") ); return; } }catch(Exception e){ e.printStackTrace(); } DbUtils dbUtils=new DbUtils(); try { dbUtils.connect("com.mysql.jdbc.Driver" , "jdbc:mysql://127.0.0.1:3308/scott?useSSL=false&useUnicode=true&characterEncoding=utf-8" ,"root" ,""); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } String sql="INSERT INTO t_leave (l_type,start_date,end_date,reason,user_name) " + "VALUES (?,?,?,?,?)"; String[] paras={type,startDate,endDate,reason,null}; try { int i = dbUtils.update(sql, paras); System.out.println("影响的行数:"+i); //在公司开发中,不要打印 if(i>0){ //TODO:用转发实现 out.write( JsonResult.success("提交成功!") ); }else{ out.write( JsonResult.fail(100, "提交失败,请联系管理员!") ); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { dbUtils.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } ``` # JsonResult 详见: https://www.malaoshi.top/show_1IX2rn0kwlcB.html 原文出处:http://malaoshi.top/show_1IX2mFBwC1Ak.html