java-servlet页面调用未找到错误404
我用java编写了一个servlet页面,用于从MySQL中的表中检索记录。然后,我将在JSP页面中调用servlet页面,以在浏览器上显示结果 MyServlet.java:java-servlet页面调用未找到错误404,java,web-applications,Java,Web Applications,我用java编写了一个servlet页面,用于从MySQL中的表中检索记录。然后,我将在JSP页面中调用servlet页面,以在浏览器上显示结果 MyServlet.java: @WebServlet(name = "MyServlet") public class MyServlet extends HttpServlet { private Statement statement; protected void doGet(HttpServletRequest req
@WebServlet(name = "MyServlet")
public class MyServlet extends HttpServlet {
private Statement statement;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out=response.getWriter();
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection( "jdbc:mysql://126.32.3.11:3306/test", "root", "root");
String sql ="Select * from filequeue;";
statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
String str = "<table border=1><tr><th>UniqueID</th><th>FilePath</th><th>Status</th><th>DateTime</th><th>Error</th></tr>";
while(resultSet.next()){
str += "<tr><td>"+ resultSet.getString(1) + "</td><td>" + resultSet.getString(2)+ "</td><td>" +resultSet.getString(3)+ "</td><td>" +resultSet.getString(4)+ "</td><td>" +resultSet.getString(5)+"</td></tr>";
// display each record
}
str+= "</table>";
out.println(str);
resultSet.close();
statement.close();
conn.close();
}catch(Exception e){
System.out.println(e);
}finally {
out.close();
}
}
}
@WebServlet(name=“MyServlet”)
公共类MyServlet扩展了HttpServlet{
私人声明;
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
response.setContentType(“text/html”);
PrintWriter out=response.getWriter();
试一试{
Class.forName(“com.mysql.jdbc.Driver”);
Connection conn=DriverManager.getConnection(“jdbc:mysql://126.32.3.11:3306/test“,”根“,”根“);
String sql=“从文件队列中选择*”;
statement=conn.createStatement();
ResultSet ResultSet=statement.executeQuery(sql);
String str=“UniqueIDFilePathStatusDateTimeError”;
while(resultSet.next()){
str+=''+resultSet.getString(1)+''+resultSet.getString(2)+''+resultSet.getString(3)+''+resultSet.getString(4)+''+resultSet.getString(5)+'';
//显示每条记录
}
str+=”;
out.println(str);
resultSet.close();
语句。close();
康涅狄格州关闭();
}捕获(例外e){
系统输出打印ln(e);
}最后{
out.close();
}
}
}
在my web.xml中:
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<description></description>
<display-name>Servlet</display-name>
<servlet-name>MyServlet</servlet-name>
<servlet-class> MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/Servlet</url-pattern>
</servlet-mapping>
</web-app>
Servlet
MyServlet
MyServlet
MyServlet
/Servlet
在my index.jsp中:
<body>
<h1>Simple File Queue table</h1>
<a href="MyServlet">View table</a>
</body>
简单文件队列表
但是,当我点击“查看表”时,它会显示错误:404未找到
。我不知道为什么,因为它应该在页面中显示记录。我在这里犯了什么错误吗
编辑:
这是我的文件结构的屏幕截图:
尝试删除MyServlet
中的空间,最好从MyServlet类中添加一个包。比如org.app.MyServlet
/Servlet
表示此Servlet的URL是{hostname:port}/Servlet
,而不是MyServlet
(
)
不要忘记应用程序名。如果您的项目部署名为“myapp”(并且您的索引页为{host:port}/myapp),那么您的所有servlet都会拦截此路径:“{host:port}/myapp/{url pattern from servlet mapping}
”
在web.xml中尝试以下操作:
<servlet>
<description></description>
<display-name>Servlet</display-name>
<servlet-name>MyServlet</servlet-name>
<servlet-class>MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/servlet</url-pattern>
</servlet-mapping>
Servlet
MyServlet
MyServlet
MyServlet
/servlet
index.jsp:
<body>
<h1>Simple File Queue table</h1>
<a href="/{application-name}/servlet">View table</a>
</body>
简单文件队列表
请重构代码以提高可读性。我知道您尝试了各种方法,但如果您不能正确阅读java,那么帮助您并不容易。谢谢有什么需要更改的?我删除了空格,但还是一样issue@Daredevil您的MyServlet(文件中的第一行代码)的包装是什么?没有包装,可能我附上了一个屏幕截图。见编辑post@Daredevil您使用什么URL来打开索引页?