我试图从原始servlet的html调用servlet
下面的代码是我的目录servlet代码,我试图在按下any按钮时调用Cartservletone(实际上,上面的servlet从数据库中提取数据并以html表格形式显示,我为每一行添加了一个按钮,现在当按下任何行的按钮时,它应该调用Cartservletone)。 但我得到了404页未找到的状态。有没有办法做到这一点我试图从原始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
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之前