还在发愁吗?第一个用idea搭建SSM的Login小案例出现404资源无法访问错误怎么办?看这里,一招教你永久解决!

HTTP状态 404 - 未找到

目录

HTTP状态 404 - 未找到

前言

1 问题描述

2 项目部署

2.1 项目结构

2.2 开源代码

3 解决过程:

3.1 进入项目结构

3.2 选择自定义模块输出路径

3.3 添加资源目录到项目依赖

3.4 添加导入项目的资源到outPutLayou

3.5 检查结果

4.最后总结


 


前言

这里我为了熟悉SSM框架,在学习完SpringMVC后开始上手一个比较好练手的login项目,于是随便写了点代码然后运行tomcat后发现了这个资源404错误,我猜测肯定是路径的问题,后来在网上找了很多解决方法,发现都不太适应我的项目(有大佬已经总结了好多404相关的原因,比较具体看这里→:springmvc不进入Controller导致404),然后又去了解了一下tomcat,思考了几天,开始从项目结构下手,后来问题得到了解决,具体可以看我接下来的介绍:

1 问题描述

类型 状态报告

描述 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。
Apache Tomcat/9.0.35

注意:这是一个典型的资源路径与类路径不匹配的问题

还在发愁吗?第一个用idea搭建SSM的Login小案例出现404资源无法访问错误怎么办?看这里,一招教你永久解决!_第1张图片 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示

 

2 项目部署

2.1 项目结构

1.定义pojo包下的User类,然后是dao层以及数据库映射文件UserMapper.xml的配置,接下来就是service层的配置,最后就是controller层。

2.接下来我们开始配置resources资源,需要配置的有:

applicationContext.xml

Mybatis.xml

springDao.xml

UserService.xml

UserServlet.xml

3.另外,需要在web/WEB-INF目录下配置web.xml,然后编写一个简单的主页index.jsp,这个主页取决于自己的需求,当然我这里只是练练手所以简简单单写了一点,具体往下看。

还在发愁吗?第一个用idea搭建SSM的Login小案例出现404资源无法访问错误怎么办?看这里,一招教你永久解决!_第2张图片

2.2 开源代码

需要代码查看链接去下载:https://download.csdn.net/download/qq_44140450/18815923

我这里直接上配置文件,其他java类暂时省略,请谅解,如果需要可以直接查看上面的链接下载。

2.2.1 在applicationContext.xml引入SpringMvc配置文件以及dao层和sevice层的配置文件。




    
    
    

2.2.2 在SpringDao.xml中配置数据源、SqlSessionFactory以及UserMapper对应得dao和mybatis工厂。



    
    
        
        
        
        
        
        
        
        
    

    
    
        
        
    

    
    
        
        
    

2.2.3 配置UserService.xml,扫描对应的service包。



    

    
        
    

    
        
    

2.2.4 配置SpringMVC配置文件UserServlet.xml



    
    
    
    
    
    
    
    

    
        
        
        
    

2.2.5 Mybatis.xml




    
        
    
    
        
        
    

2.2.6 在web.xml部署dispatcherServlet,并指定init-param加载元素为applicatiionContext.xml。



    
        dispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:applicationContext.xml
        
        1
    
    
        dispatcherServlet
        /
    

2.2.7 index.jsp,包含一个登录表单对表单元素进行简要的布局与渲染,让结构稍微合理一点。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


  
  
  
  登录
  


Login

没有账号?去登录

 

3 解决过程:

解决问题的思路是正确匹配类路径与访问路径。

3.1 进入项目结构

这里有两种方式:

(1)直接点击右上角的项目图标,看图:

还在发愁吗?第一个用idea搭建SSM的Login小案例出现404资源无法访问错误怎么办?看这里,一招教你永久解决!_第3张图片

(2)进入左上角的File菜单选择Project Structure:

还在发愁吗?第一个用idea搭建SSM的Login小案例出现404资源无法访问错误怎么办?看这里,一招教你永久解决!_第4张图片

3.2 选择自定义模块输出路径

进入模块选择自定义路径,我们分五步介绍:

(1)进入项目结构(Project Structure)找打Modules;

(2)单击项目loginExp_07;

(3)选择Paths;

(4)我们自定义Compoler output路径:

(5)选择之前创建项目时在web/WEB-INF/下建好的classes目录,作为类输出目录。

(6)以上步骤完成后点击Apply。

还在发愁吗?第一个用idea搭建SSM的Login小案例出现404资源无法访问错误怎么办?看这里,一招教你永久解决!_第5张图片

3.3 添加资源目录到项目依赖

1.进入依赖选项,单击项目loginExp_07,选中Dependencies,开始导入资源到项目:

还在发愁吗?第一个用idea搭建SSM的Login小案例出现404资源无法访问错误怎么办?看这里,一招教你永久解决!_第6张图片

2. 选着右边的+号,弹出对话框后选中第一个选项“JARs or directories...”:

还在发愁吗?第一个用idea搭建SSM的Login小案例出现404资源无法访问错误怎么办?看这里,一招教你永久解决!_第7张图片

3.此时,选择我们项目下的resources目录:

还在发愁吗?第一个用idea搭建SSM的Login小案例出现404资源无法访问错误怎么办?看这里,一招教你永久解决!_第8张图片

4.弹出对话框后选择Classes,点击ok:

还在发愁吗?第一个用idea搭建SSM的Login小案例出现404资源无法访问错误怎么办?看这里,一招教你永久解决!_第9张图片

5.这样我们可以看到Dependencies目录下出现了新的项,然后apply,这样我们就添加成功了:

还在发愁吗?第一个用idea搭建SSM的Login小案例出现404资源无法访问错误怎么办?看这里,一招教你永久解决!_第10张图片

3.4 添加导入项目的资源到outPutLayou

在完成了3.3 添加资源目录到项目依赖后,进行以下操作。

1.首先在项目结构中找到Artifacts,找到我们的发现带有波浪线,说明结构有问题,缺少内容。我们点击右边的Available Elements选中LoginExp_07:

还在发愁吗?第一个用idea搭建SSM的Login小案例出现404资源无法访问错误怎么办?看这里,一招教你永久解决!_第11张图片

 2.选中LoginExp_07后,右击鼠标弹出对话框后选择Put into /WEB_INF/classes,这里的classes为我们之前3.3节自定义的字节码输出路径,目的就是将导入到依赖的资源与类路径进行匹配,解决最终的无法通过路径访问资源的问题。

还在发愁吗?第一个用idea搭建SSM的Login小案例出现404资源无法访问错误怎么办?看这里,一招教你永久解决!_第12张图片

3.5 检查结果

运行tomcat服务器,发现成功进入了index.jsp,并且在提交表单后跳转成功:

还在发愁吗?第一个用idea搭建SSM的Login小案例出现404资源无法访问错误怎么办?看这里,一招教你永久解决!_第13张图片

4.最后总结

404资源无法访问的问题除了一部分原因是因为语法错误等,大部分是由于资源路径与类路径不匹配的问题,也就是说没有正确匹配路径,我们需要指定class输出路径和resources,然后将他们进行匹配和关联,而默认的class输出路径与resources路径会因为默认配置环境而冲突(对于部分情况来讲确实会出现此类问题),直接导致资源无法访问。所有我们直接绕开idea的默认配置主动进行配置,直接掌控资源路径与类路径,这样问题就永久解决了。

 

你可能感兴趣的:(学习,笔记,intellij,idea,springmvc,mybatis,spring,tomcat)