0

我有一个包含几类书籍的菜单。

当我单击一个菜单项时,我想让一个 servlet 查询数据库并返回结果。

我不想重复代码,所以最好只使用一个 servlet,但不知何故让 servlet 识别菜单中的哪个链接被单击并执行适当的操作。

是通过提交表单来做到这一点的唯一方法吗?

另外,我应该提一下,尽管这种做法很糟糕,但我将针对结果设定不同的框架。

4

2 回答 2

0

不,您不需要提交表单。参数通过使用查询字符串的链接传递:

<a href="/books?category=novels">Novels</a>
<a href="/books?category=sf">Science Fiction</a>
...    
于 2013-03-10T22:42:14.543 回答
0

这篇文章可能是旧的。但这是我的答案。
您可以在 jsp 页面中创建这样的链接。

 <a href="${pageContext.request.contextPath}/new">Add New Book</a>

 <a href="${pageContext.request.contextPath}/list">List All Books</a>

并像这样调用您的控制器。

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String action = request.getServletContext().getContextPath()+request.getServletPath();

        try {
            switch (action) {
            case "/new":
                showNewForm(request, response);
                break;
            case "/insert":
                insertBook(request, response);
                break;
            case "/delete":
                deleteBook(request, response);
                break;
            case "/edit":
                showEditForm(request, response);
                break;
            case "/update":
                updateBook(request, response);
                break;
            default:
                listBook(request, response);
                break;
            }
        } catch (SQLException ex) {
            throw new ServletException(ex);
        }
    }

这适用于保留为启动页面的 servlet。
您可以href根据url patternservlet 更新属性。

于 2018-05-22T10:28:06.343 回答