【问题标题】:HTTP method GET is not supported by this URL -java servlets此 URL 不支持 HTTP 方法 GET -java servlet
【发布时间】:2012-03-13 16:32:33
【问题描述】:

我无法让页面正常工作,我正在做的是当我点击它应该连接到数据库并将数据显示到浏览器的链接时。

这是我的jsp代码:

        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

       </head>
       <body>
       <%  
          String str = (String)request.getAttribute("acId");
        %>
        Account ID: <a href="detailsservlet"> <%= str %>
       </body>
       </html>

这是我的 servlet 代码:

       package com.Project.Hdfc;

       import java.io.IOException;
       import java.io.PrintWriter;
       import java.sql.Connection;   
       import java.sql.DriverManager;
       import java.sql.ResultSet;
       import java.sql.Statement;

       import javax.servlet.ServletException;
       import javax.servlet.http.HttpServlet;   
       import javax.servlet.http.HttpServletRequest;
       import javax.servlet.http.HttpServletResponse;


       public class detailsservlet extends HttpServlet {
@Override 
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {



    res.setContentType("text/html");
    PrintWriter pw = res.getWriter();
    Connection con;
    Statement stmt;
    ResultSet rs;
    try{
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        con = DriverManager.getConnection("jdbc:odbc:DSN","scott","krishna");
        stmt = con.createStatement();
        rs = stmt.executeQuery("Select * from custm");
        pw.println("Id "+ " Name" +" Address" + "<br>");
        while(rs.next())
        {
        pw.println(rs.getInt(1)+" "+rs.getString(2) + " " + rs.getString(3) + "<br>");
        }
        }
        catch (Exception e){
        pw.println(e);
        }
        }

}

【问题讨论】:

    标签: jsp servlets


    【解决方案1】:

    您的 sevlet 代码中有一个 doPost 方法,但没有 doGet 方法。如果只想从jsp页面获取信息,不想post任何数据到数据库,那么只能使用doGet。如果你想post和get,一种解决方案是

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

    或者反过来,这样更好。

    你也不应该在你的 Java 代码中混合 html 标签。

    您的代码的另一个解决方案是将您的 a href="detailssevlet" 更改为元素内的输入类型按钮,因为这将向服务器提供 POST,而不是 GET,如果您想要这样做,但不是在这种情况下,因为您获取数据,而不是将其提交到服务器。

    【讨论】:

    • @krishnabhargavi 我现在编辑了答案。从现在开始,您是否尝试过最简单的解决方案来添加 doGet 方法,如本答案中的示例所示?
    • 不一样的错误,现在的错误是:HTTP method POST is not supported by this URL
    • 所以您将 a 元素更改为表单和输入按钮元素?你已经有一个 doPost 方法,应该添加一个 doGet。确保您同时拥有 doGet 和 doPost,其中一个委托给另一个,然后重新部署您的应用程序。
    【解决方案2】:

    我相信您希望将您的 doPost 方法命名为 doGet

    【讨论】:

    • 您可能需要重新启动您的 servlet 容器才能让它加载您重新编译的代码
    猜你喜欢
    • 2014-01-16
    • 2020-09-17
    • 2016-04-14
    • 2013-11-14
    • 1970-01-01
    • 2015-02-14
    相关资源
    最近更新 更多