Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过不使用<;表格>;html标签_Java_Html_Servlets - Fatal编程技术网

Java 通过不使用<;表格>;html标签

Java 通过不使用<;表格>;html标签,java,html,servlets,Java,Html,Servlets,我很想知道是否有一种方法可以调用GET方法而不必使用HTML标记。我只需要一个按钮,当它被单击时,可以调用我的doGet()servlet方法。如果我不发送任何数据,我想创建一个完整的表单是不值得的。 我在想这样的事情:。抱歉,我目前正在学习Java Web开发和HTML,所以这个问题一开始听起来可能很愚蠢有几个http动词(GET、POST、PUT、DELETE、PATCH)。但是,当你谈论旧式的web开发时,实际上只有两种(GET和POST)。表单可以选择使用GET或POST提交,但每次在浏

我很想知道是否有一种方法可以调用GET方法而不必使用
HTML标记。我只需要一个按钮,当它被单击时,可以调用我的
doGet()
servlet方法。如果我不发送任何数据,我想创建一个完整的表单是不值得的。
我在想这样的事情:
。抱歉,我目前正在学习Java Web开发和HTML,所以这个问题一开始听起来可能很愚蠢

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

这基本上是一条很长的路,你需要做的就是添加:

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


这里的关键是你不能向你的请求主体中添加数据。但这似乎不是你所需要的。

有两种方法。第一:-

<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>");
    }
}
public类UserController扩展了HttpServlet{
@凌驾
受保护的void doGet(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
setContentType(“text/html;charset=UTF-8”);
String text=request.getParameter(“id”);
尝试(PrintWriter out=response.getWriter()){
/*TODO在此处输出您的页面。您可以使用以下示例代码*/
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“Servlet用户控制器”);
out.println(“”);
out.println(“”);
out.println(“文本值”+文本+”);
out.println(“”);
out.println(“”);
}
}
}

我只需要一个按钮,当我的doGet()servlet方法 点击

请尝试以下代码:

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


在GET url中附加一些查询参数会有什么问题吗?当然不会。这就是他们在那里的原因。但是你需要确保对你添加的任何东西进行编码。e、 g.“我和我的狗”应变为“我%20%26%20my%20dog”,因为和符号和空格在URI中无效。您可以使用
encodeURIComponent()
来实现这一点(如果您完全控制了链接的内容,那么您可以确保它可以工作。我假设这可能是用户输入的结果)感谢您指出这一点,我完全忘记了使用URL!