2./todo/check?id=当前待办事项编号、/todo/edit?id=当前待办事项编号和/todo/delete?id=当前待办事项编号的URL形式修改为路径参数传递,如类似/todo/check/1、/todo/edit/2、/todo/delete/3。
时间: 2023-09-05 21:08:15 浏览: 73
将URL形式修改为路径参数传递可以提高RESTful API的可读性和简洁性。对于给定的URL形式,可以进行如下修改:
/todo/check/当前待办事项编号
/todo/edit/当前待办事项编号
/todo/delete/当前待办事项编号
这样修改后的URL更加直观,清晰地表示了对待办事项资源的操作,并且路径参数中的数字可以直接表示待办事项的唯一标识符。这种URL设计也符合常见的RESTful API设计原则。
相关问题
/todo/check?id=当前待办事项编号、/todo/edit?id=当前待办事项编号和/todo/delete?id=当前待办事项编号的URL形式修改为路径参数传递
你可以将这些URL形式修改为路径参数传递。例如,将 "/todo/check?id=当前待办事项编号" 修改为 "/todo/check/当前待办事项编号",将 "/todo/edit?id=当前待办事项编号" 修改为 "/todo/edit/当前待办事项编号",将 "/todo/delete?id=当前待办事项编号" 修改为 "/todo/delete/当前待办事项编号"。这样,你可以通过解析路径参数来获取待办事项的编号。这种方式更加直观和语义化,并且可以提高URL的可读性。
使用一个Java Web框架实现简易的待办事项管理系统Todolist。待办事项Todo应保存的信息包括但不限于编号(Id/整型)、内容(Content/字符串类型)、完成状态(Complete/布尔类型)。使用ConcurrentHashMap模拟内存数据库,对待办事项进行储存。GET /todo/list时,显示全部待办事项清单,每个待办事项使用复选框þ表示完成状态,已完成事项内容显示为删除线,如:吃饭。在页面中有一个表单,其中包含一个文本框和按钮。用户在文本框中输入新待办事项内容,点击添加按钮后,将待办事项保存后,重新刷新页面。保存新待办事项的表单处理程序为/todo/save,通过POST方式提交。在每个待办事项为有3个链接,分别指向/todo/check?id=当前待办事项编号、/todo/edit?id=当前待办事项编号和/todo/delete?id=当前待办事项编号。 并给出具体代码
以下是使用Java Web框架实现简易的待办事项管理系统Todolist的代码:
```java
import java.util.concurrent.ConcurrentHashMap;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TodoServlet extends HttpServlet {
private ConcurrentHashMap<Integer, Todo> todoMap = new ConcurrentHashMap<>();
private int idCounter = 1;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Todolist</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Todolist</h1>");
// 显示全部待办事项清单
for (Map.Entry<Integer, Todo> entry : todoMap.entrySet()) {
int id = entry.getKey();
Todo todo = entry.getValue();
String content = todo.getContent();
boolean complete = todo.isComplete();
if (complete) {
out.println("<s>");
}
out.println("<input type='checkbox' " + (complete ? "checked" : "") + " /> " + content);
if (complete) {
out.println("</s>");
}
// 链接到/check、/edit和/delete
out.println(" <a href='/todo/check?id=" + id + "'>Check</a>");
out.println(" <a href='/todo/edit?id=" + id + "'>Edit</a>");
out.println(" <a href='/todo/delete?id=" + id + "'>Delete</a>");
out.println("<br/>");
}
// 添加新待办事项的表单
out.println("<form action='/todo/save' method='post'>");
out.println("<input type='text' name='content' />");
out.println("<input type='submit' value='Add' />");
out.println("</form>");
out.println("</body>");
out.println("</html>");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String content = req.getParameter("content");
// 保存新待办事项
todoMap.put(idCounter, new Todo(content));
idCounter++;
// 重新刷新页面
resp.sendRedirect("/todo/list");
}
}
class Todo {
private int id;
private String content;
private boolean complete;
public Todo(String content) {
this.id = id;
this.content = content;
this.complete = false;
}
public int getId() {
return id;
}
public String getContent() {
return content;
}
public boolean isComplete() {
return complete;
}
}
```
请注意,上述代码仅为示例代码,仍需要根据具体的项目需求进行适当的修改和完善。
阅读全文