Eclipse中运行jsp文件,出现404( Not Found).运行之后可以在浏览器中运行localhost:8080并正确显示但不能显示项目中的jsp,xml,html等文件。

解决方案 »

  1.   

    你要在webxml中配置中增加类似这种 <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.jpg</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.gif</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.png</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.js</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.css</url-pattern>
      </servlet-mapping>很有可能是你配置把这些文件过滤了
      

  2.   

    补充楼上的观点,web.xml加入下面配置试试:       
    <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
    </welcome-file-list>
      

  3.   

    404一般是路径问题,路径错误
    访问的方式有两种:
    1.在web.xml文件中配置访问路径
     
        <servlet>
            <servlet-name>helloServlet</servlet-name>
            <servlet-class>com.servlet.HelloServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>helloServlet</servlet-name>
            <url-pattern>/servlet/helloServlet</url-pattern>
        </servlet-mapping>
    访问servlet流程图如下
    2.使用注解
    如果使用注解,web.xml文件不用如上配置,只需要在servlet那个类的前面加上
    @WebServlet(name = "HelloServlet", urlPatterns = "/HelloServlet")
    其中
    name 属性等价于上一种方式的  <servlet-name>helloServlet</servlet-name>
    urlPatterns 等价于上一种方式的 <url-pattern>/servlet/helloServlet</url-pattern>,即就是访问路径
    代码如下:@WebServlet(name = "AddServlet", urlPatterns = "/AddServlet")
    public class AddServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("utf-8");      // 处理请求乱码问题
            doGet(request, response);
        }    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8"); // 处理响应乱码问题
          //进行其他操作
        }
    }