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