繁体   English   中英

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

[英]Calling a method from within a servlet in tomcat generated HTML

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

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

如有必要,您可以使用常见的查询字符串方式(例如href="myservlet?name1=value1&name2=value2"或-more SEO friendly-)传递请求参数,作为href="myservlet/value1/value2"这样的路径的一部分,您可以使用HttpServletRequest#getPathInfo()访问。

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

myservlet后面的servlet类显然要映射到/myservlet/*url-pattern

希望这可以帮助。

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

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

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

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

doGet()方法内部,您可以通过HttpServletRequest#getParameter()

祝好运。

是。 该链接可以指向该servlet(或任何servlet),并且在处理请求时,请调用所需的任何方法。

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

    ... whatever I want ...

    anyMethod(req, res);

    ... whatever I want again ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM