gpt4 book ai didi

java - 编写单个 servlet 来添加/编辑/删除项目以及列出项目

转载 作者:行者123 更新时间:2023-11-30 05:00:22 27 4
gpt4 key购买 nike

我需要创建一个 Servlet 来处理一些 Item 的列表、添加新项目、编辑现有项目以及删除项目。

我编写了 JSP 页面来编辑项目并显示项目列表。在 itemslisting.jsp 中,我为每个项目放置了删除和编辑链接,但我不太确定如何在 Servlet 中构造这些方法。

itemslisting.jsp

...
<table>
<c:forEach var="item" items="${items}" varStatus="listCount">

<tr><td>${listCount.count} </td>
<c:url value="edititem" var="edititemurl">

<c:param name="itemId" value="${item.item_id}" />

</c:url>
<td><a href="${edititemurl }" >${item.name}</a></td>
<c:url value="deleteitem" var="deleteitemurl">

<c:param name="itemId" value="${item.item_id}" />

</c:url>

<td><a href="${deleteitemurl}" >DELETE</a></td>

</tr>

</c:forEach>

</table>
...
<a href="<c:url value="addItem"/>">add new item </a>
...

在我们的培训中,我们被要求创建单独的 servlet 来添加、编辑、列出和删除项目。在这些情况下,可以将每个 url 映射到适当的 servlet,但创建那么多 servlet 感觉很愚蠢。如何将上述 jsp 中的不同 url 配置为单个 ItemServlet?我是否必须传递一些额外的参数来指示操作,例如 edititem 以及 edititemurl?

我尝试创建 doGet() 方法的框架:

public void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
String additemop = req.getParameter("additemoperation");
String edititem = req.getParameter("additemoperation");
String itemId = req.getParameter("itemId");
...
if(additemop!=null){
showAddItemPage(req,resp);
}
else if((edititemop!=null) && (itemId != null)){
showEditItemPage(req,resp);
}
else{
showListItemsPage(req,resp);
}

}

不知道这样是否可行,如有错误请指正。

最佳答案

您可以通过网址传递参数,例如:

myapp/item?action=get

不过,对这些使用单独的 url 更容易且不易出错。这很可能就是为什么你一开始就被这样教导的原因。

您需要小心使用 HTTP GET 和 POST 的操作。像在示例中那样使用 GET(添加项目)是不好的,您不想使用 GET 执行任何修改数据的操作。特别是不要使用 GET 进行删除,否则出现的第一个网络爬虫可能会清除您的数据库。 :-O 另请查看名为 Post-Redirect-Get 的内容,这是避免重复表单提交并使页面可添加书签的常见模式。

我建议查看快速开发框架,例如 Play 。这里的原始 jsp/servlet 内容太乏味了,无法进行研究。你已经经历过一次艰难的路了,所以你不会错过任何东西。

关于java - 编写单个 servlet 来添加/编辑/删除项目以及列出项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6946358/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com