用户能进行任务管理。安排的任务可以分为未完成任务、已完成任务,未完成任务完成后将归档到已完成任务项,用户可以根据任务的性质来对任务进行分类,在调度任务时,可以按状态分组(所有任务、已完成任务,未完成任务)、按时间分组、按日期分组来查询。Javaweb代码
时间: 2023-06-27 16:05:04 浏览: 47
以下是一个简单的Javaweb代码实现任务管理系统:
Task.java
```java
public class Task {
private int id;
private String name;
private String description;
private Date createTime;
private Date finishTime;
private boolean isCompleted;
// constructors and getters/setters
}
```
TaskDao.java
```java
public class TaskDao {
private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
private static final String DB_URL = "jdbc:mysql://localhost:3306/tasks?useSSL=false&serverTimezone=UTC";
private static final String USER = "root";
private static final String PASS = "password";
private Connection conn;
public TaskDao() {
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(DB_URL, USER, PASS);
} catch (Exception e) {
e.printStackTrace();
}
}
public List<Task> getAllTasks() {
List<Task> tasks = new ArrayList<>();
String sql = "SELECT * FROM task";
try {
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Task task = new Task();
task.setId(rs.getInt("id"));
task.setName(rs.getString("name"));
task.setDescription(rs.getString("description"));
task.setCreateTime(rs.getDate("create_time"));
task.setFinishTime(rs.getDate("finish_time"));
task.setCompleted(rs.getBoolean("is_completed"));
tasks.add(task);
}
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return tasks;
}
public List<Task> getTasksByStatus(boolean isCompleted) {
List<Task> tasks = new ArrayList<>();
String sql = "SELECT * FROM task WHERE is_completed = ?";
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setBoolean(1, isCompleted);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Task task = new Task();
task.setId(rs.getInt("id"));
task.setName(rs.getString("name"));
task.setDescription(rs.getString("description"));
task.setCreateTime(rs.getDate("create_time"));
task.setFinishTime(rs.getDate("finish_time"));
task.setCompleted(rs.getBoolean("is_completed"));
tasks.add(task);
}
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return tasks;
}
public List<Task> getTasksByDate(Date date) {
List<Task> tasks = new ArrayList<>();
String sql = "SELECT * FROM task WHERE create_time >= ? AND create_time < ?";
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setDate(1, new java.sql.Date(date.getTime()));
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, 1);
ps.setDate(2, new java.sql.Date(calendar.getTimeInMillis()));
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Task task = new Task();
task.setId(rs.getInt("id"));
task.setName(rs.getString("name"));
task.setDescription(rs.getString("description"));
task.setCreateTime(rs.getDate("create_time"));
task.setFinishTime(rs.getDate("finish_time"));
task.setCompleted(rs.getBoolean("is_completed"));
tasks.add(task);
}
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return tasks;
}
public boolean addTask(Task task) {
String sql = "INSERT INTO task (name, description, create_time) VALUES (?, ?, ?)";
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, task.getName());
ps.setString(2, task.getDescription());
ps.setDate(3, new java.sql.Date(task.getCreateTime().getTime()));
int rows = ps.executeUpdate();
ps.close();
return rows > 0;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
public boolean completeTask(int taskId) {
String sql = "UPDATE task SET is_completed = ?, finish_time = ? WHERE id = ?";
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setBoolean(1, true);
ps.setDate(2, new java.sql.Date(System.currentTimeMillis()));
ps.setInt(3, taskId);
int rows = ps.executeUpdate();
ps.close();
return rows > 0;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
}
```
TaskServlet.java
```java
@WebServlet("/tasks")
public class TaskServlet extends HttpServlet {
private TaskDao taskDao;
public void init() {
taskDao = new TaskDao();
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
if (action == null) {
List<Task> allTasks = taskDao.getAllTasks();
request.setAttribute("tasks", allTasks);
} else if (action.equals("completed")) {
List<Task> completedTasks = taskDao.getTasksByStatus(true);
request.setAttribute("tasks", completedTasks);
} else if (action.equals("unfinished")) {
List<Task> unfinishedTasks = taskDao.getTasksByStatus(false);
request.setAttribute("tasks", unfinishedTasks);
} else if (action.equals("today")) {
List<Task> todayTasks = taskDao.getTasksByDate(new Date());
request.setAttribute("tasks", todayTasks);
} else if (action.equals("date")) {
String dateString = request.getParameter("date");
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = format.parse(dateString);
List<Task> tasksByDate = taskDao.getTasksByDate(date);
request.setAttribute("tasks", tasksByDate);
} catch (ParseException e) {
e.printStackTrace();
}
}
request.getRequestDispatcher("index.jsp").forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
if (action.equals("add")) {
String name = request.getParameter("name");
String description = request.getParameter("description");
Task task = new Task();
task.setName(name);
task.setDescription(description);
task.setCreateTime(new Date());
taskDao.addTask(task);
} else if (action.equals("complete")) {
int taskId = Integer.parseInt(request.getParameter("id"));
taskDao.completeTask(taskId);
}
response.sendRedirect("tasks");
}
}
```
index.jsp
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Task Management</title>
</head>
<body>
<h1>Task Management</h1>
<form action="tasks" method="post">
<input type="hidden" name="action" value="add" />
<label>Name:</label>
<input type="text" name="name" required /><br />
<label>Description:</label>
<textarea name="description" required></textarea>
<button type="submit">Add Task</button>
</form>
<br />
<h2>All Tasks</h2>
<table>
<tr>
<th>ID</th>
<th>Name</th>
<th>Description</th>
<th>Create Time</th>
<th>Finish Time</th>
<th>Status</th>
<th>Action</th>
</tr>
<c:forEach items="${tasks}" var="task">
<tr>
<td>${task.id}</td>
<td>${task.name}</td>
<td>${task.description}</td>
<td>${task.createTime}</td>
<td>${task.finishTime}</td>
<td>${task.isCompleted ? 'Completed' : 'Unfinished'}</td>
<td>
<c:if test="${!task.isCompleted}">
<form action="tasks" method="post" style="display: inline">
<input type="hidden" name="action" value="complete" />
<input type="hidden" name="id" value="${task.id}" />
<button type="submit">Complete</button>
</form>
</c:if>
</td>
</tr>
</c:forEach>
</table>
<br />
<h2>Completed Tasks</h2>
<form action="tasks" method="get" style="display: inline">
<input type="hidden" name="action" value="completed" />
<button type="submit">Show Completed Tasks</button>
</form>
<br />
<h2>Unfinished Tasks</h2>
<form action="tasks" method="get" style="display: inline">
<input type="hidden" name="action" value="unfinished" />
<button type="submit">Show Unfinished Tasks</button>
</form>
<br />
<h2>Tasks for Today</h2>
<form action="tasks" method="get" style="display: inline">
<input type="hidden" name="action" value="today" />
<button type="submit">Show Tasks for Today</button>
</form>
<br />
<h2>Tasks for a Specific Date</h2>
<form action="tasks" method="get">
<input type="hidden" name="action" value="date" />
<label>Date:</label>
<input type="date" name="date" required />
<button type="submit">Show Tasks</button>
</form>
</body>
</html>
```
这个简单的任务管理系统包含了基本的CRUD操作,以及根据不同条件查询任务的功能。它使用MySQL作为数据库,使用JDBC连接数据库并执行SQL语句。用户可以在前端页面上添加任务、标记任务为已完成、查看所有任务、查看已完成任务、查看未完成任务、查看今天的任务、查看指定日期的任务。