无法访问 JSP 中的 servlet 页面

问题描述 投票:0回答:1

我创建了一个名为 ORMS1 的项目,在其中我有以下目录结构。

这是 myfile.java 文件的代码(内部操作包)

package action;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * Servlet implementation class myfile
 */
@WebServlet(name="up", urlPatterns= {"/myfile"} )
public class myfile extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public myfile() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

这是我的 web.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="5.0">
  <display-name>ORMS_1</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>default.htm</welcome-file>
  </welcome-file-list>
   <servlet>
    <description></description>
    <display-name>fileupload</display-name>
    <servlet-name>fileupload</servlet-name>
    <servlet-class>fileupload</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>fileupload</servlet-name>
    <url-pattern>/fileupload</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>myfile</display-name>
    <servlet-name>myfile</servlet-name>
    <servlet-class>action.myfile</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>myfile</servlet-name>
    <url-pattern>/myfile</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>myfileupload</display-name>
    <servlet-name>myfileupload</servlet-name>
    <servlet-class>sample1.myfileupload</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>myfileupload</servlet-name>
    <url-pattern>/myfileupload</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>upload</display-name>
    <servlet-name>upload</servlet-name>
    <servlet-class>pkg.upload</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>upload</servlet-name>
    <url-pattern>/try</url-pattern>
  </servlet-mapping>
  
</web-app>

问题是,每当我访问任何 jsppage 时,它都会通过错误为什么会发生这种情况?

当我重新加载它时,它将显示以下错误页面

当我创建任何新的 servlet 或访问默认的 Servlet 时,我无法访问该 servlet 我不知道是什么原因。

java jsp servlets http-status-code-404
1个回答
0
投票

fileapload
不存在的问题

你应该从 web.xml 中删除这些行

    <servlet-name>fileupload</servlet-name>
    <servlet-class>fileupload</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>fileupload</servlet-name>
    <url-pattern>/fileupload</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>myfile</display-name>
    <servlet-name>myfile</servlet-name>
    <servlet-class>action.myfile</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>myfile</servlet-name>
    <url-pattern>/myfile</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>myfileupload</display-name>
    <servlet-name>myfileupload</servlet-name>
    <servlet-class>sample1.myfileupload</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>myfileupload</servlet-name>
    <url-pattern>/myfileupload</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>upload</display-name>
    <servlet-name>upload</servlet-name>
    <servlet-class>pkg.upload</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>upload</servlet-name>
    <url-pattern>/try</url-pattern>
  </servlet-mapping>

然后将映射添加到现有的servlet

/**
 * Servlet implementation class myfile
 */
@WebServlet("/fileupload")
public class myfile extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public myfile() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.