不使用<form> html标记调用GET方法

时间:2016-04-14 05:01:02

标签: java html servlets

我很想知道是否有办法调用GET方法而不必使用<form> HTML标记。我只想要一个按钮,在单击它时调用我的doGet() servlet方法。如果我不发送任何数据,我不应该创建一个完整的表单。 我在考虑这样的事情:<button method="get" action="MyServlet">。对不起,我目前正在学习Java Web开发和HTML,所以这个问题最初可能听起来很愚蠢

3 个答案:

答案 0 :(得分:3)

有几个http动词(GET,POST,PUT,DELETE,PATCH)。但是当你谈论老派网络开发时,实际上只有2个(GET和POST)。表单可以选择使用GET或POST提交,但每次在浏览器的地址栏中键入URL时,您实际上都在发出GET请求。这意味着每次点击链接时都会发出GET请求。

这基本上是一个漫长的方式,说明您需要添加的所有内容:

<a href="http://example.com/path/to/whatever?q=ifyouneedtoaddquerystrings">Click On Me!!</a>

此处的踢球者是您无法将数据添加到您的请求正文中。但似乎并不是你需要的。

答案 1 :(得分:0)

有两种方法。首先: -

<a href="UserController?id=MyString">Click Me</a>

和第二: -

<img width="200" height="180" src="UserController?id=1234" id="id" alt="Image">

和相应的servlet是: -

public class UserController extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    String text=request.getParameter("id");
    try (PrintWriter out = response.getWriter()) {
        /* TODO output your page here. You may use following sample code. */
        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet UserController</title>");            
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Value of text " +text+"</h1>");
        out.println("</body>");
        out.println("</html>");
    }
}

}

答案 2 :(得分:0)

  

我只想要一个调用我的doGet()servlet方法的按钮   点击

试试这段代码:

<a href="MyServlet"><button>Call MyServlet</button></a>