我试图从原始servlet的html调用servlet

我试图从原始servlet的html调用servlet,html,servlets,Html,Servlets,下面的代码是我的目录servlet代码,我试图在按下any按钮时调用Cartservletone(实际上,上面的servlet从数据库中提取数据并以html表格形式显示,我为每一行添加了一个按钮,现在当按下任何行的按钮时,它应该调用Cartservletone)。 但我得到了404页未找到的状态。有没有办法做到这一点 import javax.servlet.*; import java.sql.*; import java.io.*; public class Catalogueservlet

下面的代码是我的目录servlet代码,我试图在按下any按钮时调用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
import javax.servlet.*;
导入java.sql.*;
导入java.io.*;
公共类catalogeservlet扩展了GenericServlet
{
公共无效服务(ServletRequest-req、ServletResponse-res)抛出ServletException、IOException
{
res.setContentType(“文本/html”);
PrintWriter out=res.getWriter();
连接con=null;
PreparedStatement st=null;
结果集rs=null;
//字符串名称=null,pwd=null,email=null,phoneno=null,性别=null,语言=null;
尝试
{
字符串书名;
String category=req.getParameter(“单击按钮”);
类forName(“oracle.jdbc.driver.OracleDriver”);
con=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:xe”、“system”、“Mary16541”);
st=con.prepareStatement(“从目录中选择书名、作者、价格,其中类别=?”;
st.setString(1类);
rs=圣执行机构();
//打印(rs.next());
输出。打印(“”);
输出。打印(“”);
打印(“书名”);
印刷品(“作者/出版商”);
打印(“价格”);
打印(“添加到购物车”);
while(rs.next())
{
bookname=rs.getString(1);
输出。打印(“”);
打印(“+bookname+”);
out.print(“+rs.getString(2)+”);
打印(“+rs.getInt(3)+”);
输出。打印(“”);
输出。打印(“”);
} 
输出。打印(“”);
输出。打印(“”);
圣克洛斯();
con.close();
}
捕获(例外e)
{
out.println(“异常”+e+”);
}
}
公共静态void main(字符串参数[])
{
}
}   
罗金瑟夫莱特酒店
罗金瑟夫莱特酒店
罗金瑟夫莱特酒店
/firstservlet/Loginservlet
注册服务
注册服务
注册服务
/firstservlet/Registrationservlet
目录服务器
目录服务器
目录服务器
/firstservlet/Catalogeservlet
卡瑟夫莱通
卡瑟夫莱通
卡瑟夫莱通
/firstservlet/Cartservletone
mary2.html
这就是错误所在
HTTP状态404–未找到
类型状态报告
Message/firstservlet/firstservlet/firstservlet/Cartservletone
说明源服务器找不到目标资源的当前表示形式,或者不愿意透露存在该表示形式。
ApacheTomcat/9.0.16
更改此选项:

out.print("<form action='firstservlet/Cartservletone' method='POST'>");
out.print(“”);
进入这个

out.print("<form action='/firstservlet/Cartservletone' method='POST'>");
out.print(“”);
/
”在firstservlet/Cartservletone之前