在tomcat生成的HTML中调用servlet中的方法

时间:2009-11-04 23:14:57

标签: java jsp tomcat

我在Apache Tomcat中使用的一个简单的博客servlet中有一段Java代码。我根据上一页中的表单生成页面,其中包含发布帖子的链接。我希望用户点击该链接以稍后在课程中调用方法。这是可能的,如果是的话,怎么样?

2 个答案:

答案 0 :(得分:1)

链接生成GET请求。因此,如果要在GET请求期间执行某些Java代码,则需要创建一个实现doGet()的Servlet,并相应地执行所需的代码逻辑。

如果有必要,您可以使用通常的查询字符串方式传递请求参数,例如href="myservlet?name1=value1&name2=value2"或 - 更多SEO友好 - 作为href="myservlet/value1/value2"之类的路径的一部分,您可以使用HttpServletRequest#getPathInfo()访问

在处理请求之后,servlet需要将请求转发到JSP以显示页面。这可以通过request.getRequestDispatcher("page.jsp").forward(request, response)来完成。

myservlet后面的servlet类显然要映射到url-pattern的{​​{1}}。

希望这有帮助。

[编辑],您稍后的评论之一显示,您希望将请求范围的数据传递给下一个请求。这种情况,只需将它们作为请求参数传递给下一个请求。如果它们已作为请求参数可用,那么只需执行:

/myservlet/*

否则,如果它们仅作为模型数据使用,则执行以下操作:

href="myservlet?name1=${param.name1}&name2=${param.name2}"

href="myservlet?name1=${data.name1}&name2=${data.name2}" 方法中,您可以通过doGet()通常的方式重新获取它们。

祝你好运。

答案 1 :(得分:1)

是。链接可以指向该servlet(或任何servlet),当您处理请求时,请调用您喜欢的任何方法。

public void doGet(HttpServletRequest req, HttpServletResponse res)
    throws IOException, ServletException {

    ... whatever I want ...

    anyMethod(req, res);

    ... whatever I want again ...
}