html - 我正在尝试从原始 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
解决方案
改变这个:
out.print("<form action='firstservlet/Cartservletone' method='POST'>");
进入这个
out.print("<form action='/firstservlet/Cartservletone' method='POST'>");
推荐阅读
- java - 如何在没有 try-catch 块的情况下将崩溃记录到服务器?
- flutter - 更改底部导航栏的背景颜色?
- html - 在图像滚动时使帖子标题出现在鼠标悬停/悬停上
- python - 熊猫最近日期变化的合并操作 + / - 3 天
- google-cloud-platform - 当限制已经是 1 时,我还应该增加 GPU 配额吗?
- java - 在 Intellij 中使用 log4j 日志文件格式出现问题
- mysql - MySQL连续数天/连续天数
- python - 如何在opencv中检测仅包含文本的图像是否模糊
- c++ - 尝试将 std::string 分配给 hwProfileInfo 时出现 C++ 错误
- windows - 当 copy_if_different 失败时,如何在 CMake 中复制包含特殊字符的文件?