首页 > 解决方案 > 我正在尝试从原始 servlet 的 html 调用 servlet

问题描述

下面的代码是我的目录 servlet 代码,我试图在按下任何按钮时调用 Cartservletone(实际上,上面的 servlet 从数据库中提取数据并以 html 表格形式显示它,对于每一行我添加了一个按钮,现在当按下任何行的按钮它应该调用cartservletone。但我得到404页面未找到状态。有没有办法做到这一点?

import javax.servlet.*;
import java.sql.*;
import java.io.*;
public class Catalogueservlet extends GenericServlet
{
    public void service(ServletRequest req,ServletResponse res)throws ServletException,IOException
    {

        res.setContentType("text/html");
        PrintWriter out = res.getWriter();
        Connection con=null;
        PreparedStatement st=null;
        ResultSet rs=null;
                //String name=null,pwd=null,email=null,phoneno=null,gender=null,languages=null;
        try
        {
                        String bookname; 
                        String category=req.getParameter("button_clicked");
            Class.forName("oracle.jdbc.driver.OracleDriver");
            con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","Mary16541");
                        st=con.prepareStatement("select Bookname,Author,Price from Catalogue where Category=?");
                        st.setString(1,category);
                        rs=st.executeQuery();
                         //out.print(rs.next());
                          out.print("<form action='firstservlet/Cartservletone' method='POST'>");
                          out.print("<table border=1>");
                          out.print("<th>BookName</th>");
                          out.print("<th>Author/Publisher</th>");
                          out.print("<th>Price</th>");
                          out.print("<th>Add to cart</th>");
                        while(rs.next())
                         {
                          bookname=rs.getString(1); 
                          out.print("<tr>");
                          out.print("<td>"+bookname+"</td>");
                          out.print("<td>"+rs.getString(2)+"</td>");
                          out.print("<td>"+rs.getInt(3)+"</td>");
                          out.print("<td><input type='submit' name='button_pressed' value="+rs.getString(1)+"></input></td>");
                          out.print("</tr>");      

                         } 
                         out.print("</table> "); 
                         out.print("</form>"); 
                         st.close();
                         con.close();


        }

        catch(Exception e)
        {
            out.println("<h1>EXCEPTION  "+e+"</h1>");
        }

    }
    public static void main(String args[])
    {

    }
}   


<web-app>
  <servlet>
    <servlet-name>Loginservlet</servlet-name>
    <servlet-class>Loginservlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>Loginservlet</servlet-name>
    <url-pattern>/firstservlet/Loginservlet</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>Registrationservlet</servlet-name>
    <servlet-class>Registrationservlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>Registrationservlet</servlet-name>
    <url-pattern>/firstservlet/Registrationservlet</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>Catalogueservlet</servlet-name>
    <servlet-class>Catalogueservlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>Catalogueservlet</servlet-name>
    <url-pattern>/firstservlet/Catalogueservlet</url-pattern>
  </servlet-mapping>
   <servlet>
    <servlet-name>Cartservletone</servlet-name>
    <servlet-class>Cartservletone</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>Cartservletone</servlet-name>
    <url-pattern>/firstservlet/Cartservletone</url-pattern>
  </servlet-mapping>

  <welcome-file-list>

<welcome-file>mary2.html</welcome-file>

</welcome-file-list>
</web-app>






this is the error
HTTP Status 404 – Not Found
Type Status Report

Message /firstservlet/firstservlet/firstservlet/Cartservletone

Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

Apache Tomcat/9.0.16

标签: htmlservlets

解决方案


改变这个:

out.print("<form action='firstservlet/Cartservletone' method='POST'>");

进入这个

out.print("<form action='/firstservlet/Cartservletone' method='POST'>");

推荐阅读