【问题标题】:Fix JDBC in dynamic web project修复动态 Web 项目中的 JDBC
【发布时间】:2019-11-10 15:47:44
【问题描述】:

我试图通过servlet检查数据库中的数据,但是html页面没有读取servlet页面..

错误:

源服务器没有找到目标的当前表示 资源或不愿透露存在的资源。

我的登录页面:

<form action="validate" method="Post">
    User name:
    <br>
    <input type="text" name="username">
    <br>
    User password:
    <br>
    <input type="password" name="psw">
    <input type="submit" value="Submit">
</form>

我的 servlet 代码:

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.SetContenttype("text/html");
    String uname = request.getParameter("username");
    String password = request.getParameter("psw");

    Class.forName("com.mysql.jdbc.Driver");
    Connection Con = DriverManager.getConnection("jdbc:mysql://localhost:3306/students", "root", "1234");
    PreparedStatement pstmt = Con.prepareStatement("SELECT * FROM data WHERE username = ? AND password = ?");
    pstmt.setString(1, uname);
    pstmt.setString(2, password);
    ResultSet rs = pstmt.executeQuery();
    if (rs.next()) {
        System.out.println("record found");
        RequestDispatcher rd = request.getRequestDispatcher("Stu.jsp");
        rd.forward(request, response);
    } else {
        System.out.println("record not found");
        RequestDispatcher rd = request.getRequestDispatcher("Login.html");
        rd.forward(request, response);
    }
    rs.close();
    pstmt.close();
    Con.close();

    doGet(request, response);
}

【问题讨论】:

    标签: java html jsp servlets


    【解决方案1】:

    在您的登录页面中,您应该指定

        <form action="/LoginServlet" method="post">  
    

    还要检查您是否在 web.xml 中指定了 servlet 映射或使用注释您的 servlet 类 @WebServlet("/LoginServlet")

          <servlet>
            <servlet-name>servletname</servlet-name>
            <servlet-class>/LoginServlet</servlet-class>
          </servlet>
    
          <servlet-mapping>
            <servlet-name>servletname</servlet-name>
            <url-pattern>*.html</url-pattern>
          </servlet-mapping>
    

    希望对你有帮助!

    【讨论】:

      【解决方案2】:

      当操作找不到指定的 servlet 时,就会出现此问题,并且可能有很多原因。

      • 请检查您的@WebServlet 注释,它可能是

        @WebServlet(name="validate")

      类似的东西,你必须给它

      @WebServlet(urlPatterns = "/validate")

      ,或者你可以使用

      @WebServlet("/validate")

      您可以在操作部分的表单中添加其他问题

      <form action="${requestScope.getContextPath}/validate" method="Post">
      

      希望我能有所帮助。

      【讨论】:

        猜你喜欢
        • 2019-04-05
        • 2012-12-08
        • 2017-08-27
        • 2016-09-27
        • 2015-08-03
        • 1970-01-01
        • 1970-01-01
        • 2011-06-03
        • 1970-01-01
        相关资源
        最近更新 更多