IDEA JavaWeb项目启动运行后出现404错误的解决方法

 更新时间:2019年12月08日 15:55:13   作者:chaimhao  
这篇文章主要介绍了IDEA JavaWeb项目启动运行后出现404错误的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

404这个错误真的是一言难尽!不过大多是配置文件出错,认真修改还是可以的

1.web.xml配置错误:

默认首页没有写的,在web.xml添加一个就行(前提是你有jsp页面,名字不要写错):
比如这个:

<welcome-file-list>
 <welcome-file>Login.jsp</welcome-file>
 </welcome-file-list>

2.IDEA JavaWeb项目运行找不到对应Servlet映射的JSP页面

在servlet3.0以后提供了注解配置,这样就不需要在web.xml中配置。使用IDEA生成的servlet文件的注解配置如下(第一行):

@WebServlet(value = "/AdminServlet")
public class AdminServlet extends HttpServlet {

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  doPost(request, response);
 }
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 }
}

在这里插入图片描述

对于怎样配置请看:

路径:File > Settings > Editor > File and Code Templates > Other > Web > Java code templates 下第二个点开右边编辑模板
如下(这是我的模板):

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")
@javax.servlet.annotation.WebServlet(value = "/${Entity_Name}")
public class ${Class_Name} extends javax.servlet.http.HttpServlet {

 protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException {
   doPost(request,response); 
 }
 protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException {
 } 
}

3.创建了一个和以前项目名称相同的项目(项目名称结构一样),把以前的覆盖了 然后运行就404了;

第一时间想到的就是配置文件有错就开始找 :这个是我刚发现的解决办法:

启动运行后跳转的页面发现不是你定义的页面报404错误,这就需要你在workspace.xml里面找了:

你的项目名 > .idea > workspace.xml,找到里面不是你首次跳转的jsp的名字,修改为你定义的jsp名字

具体在这里:把名字修改一下就好了

在这里插入图片描述

 <component name="RunManager">
 <configuration name="tomcat" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat 7.0.47" ALTERNATIVE_JRE_ENABLED="true" ALTERNATIVE_JRE_PATH="C:\Program Files\Java\jdk1.8.0_191\jre">
  <option name="OPEN_IN_BROWSER_URL" value="http://localhost:8080/Login.jsp" />
  <option name="UPDATING_POLICY" value="restart-server" />
  <deployment>
  <artifact name="SuShe:war exploded">
   <settings>
   <option name="CONTEXT_PATH" value="/" />
   </settings>
  </artifact>
  </deployment>
  <server-settings>
  <option name="BASE_DIRECTORY_NAME" value="Login_jsp_SuShe" />
  </server-settings>
  <predefined_log_file id="Tomcat" enabled="true" />
  <predefined_log_file id="Tomcat Catalina" enabled="true" />
  <predefined_log_file id="Tomcat Manager" enabled="false" />
  <predefined_log_file id="Tomcat Host Manager" enabled="false" />
  <predefined_log_file id="Tomcat Localhost Access" enabled="false" />
  <RunnerSettings RunnerId="Debug">
  <option name="DEBUG_PORT" value="61238" />
  </RunnerSettings>
  <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Cover">
  <option name="USE_ENV_VARIABLES" value="true" />
  <STARTUP>
   <option name="USE_DEFAULT" value="true" />
   <option name="SCRIPT" value="" />
   <option name="VM_PARAMETERS" value="" />
   <option name="PROGRAM_PARAMETERS" value="" />
  </STARTUP>
  <SHUTDOWN>
   <option name="USE_DEFAULT" value="true" />
   <option name="SCRIPT" value="" />
   <option name="VM_PARAMETERS" value="" />
   <option name="PROGRAM_PARAMETERS" value="" />
  </SHUTDOWN>
  </ConfigurationWrapper>
  <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Debug">
  <option name="USE_ENV_VARIABLES" value="true" />
  <STARTUP>
   <option name="USE_DEFAULT" value="true" />
   <option name="SCRIPT" value="" />
   <option name="VM_PARAMETERS" value="" />
   <option name="PROGRAM_PARAMETERS" value="" />
  </STARTUP>
  <SHUTDOWN>
   <option name="USE_DEFAULT" value="true" />
   <option name="SCRIPT" value="" />
   <option name="VM_PARAMETERS" value="" />
   <option name="PROGRAM_PARAMETERS" value="" />
  </SHUTDOWN>
  </ConfigurationWrapper>
  <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Run">
  <option name="USE_ENV_VARIABLES" value="true" />
  <STARTUP>
   <option name="USE_DEFAULT" value="true" />
   <option name="SCRIPT" value="" />
   <option name="VM_PARAMETERS" value="" />
   <option name="PROGRAM_PARAMETERS" value="" />
  </STARTUP>
  <SHUTDOWN>
   <option name="USE_DEFAULT" value="true" />
   <option name="SCRIPT" value="" />
   <option name="VM_PARAMETERS" value="" />
   <option name="PROGRAM_PARAMETERS" value="" />
  </SHUTDOWN>
  </ConfigurationWrapper>
  <method v="2">
  <option name="BuildArtifacts" enabled="true">
   <artifact name="SuShe:war exploded" />
  </option>
  </method>
 </configuration>
 </component>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • IDEA之启动参数,配置文件默认参数的操作

    IDEA之启动参数,配置文件默认参数的操作

    这篇文章主要介绍了IDEA之启动参数,配置文件默认参数的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Freemarker 最简单的例子程序

    Freemarker 最简单的例子程序

    Freemarker最简单的例子程序是通过String来创建模版对象,并执行插值处理。
    2016-04-04
  • 深入探究Java线程不安全的原因与解决

    深入探究Java线程不安全的原因与解决

    线程不安全这个问题,一般在学Java时,我们老师会让我们背诵一段长长的话。"当不同线程同时能访问同一个变量时,可能会导致线程不安全"。实际上,这句话重点想突出的只有原子性。而我们往往考虑线程不安全的原因,会从三方面进行考虑:就是原子性,可见性,有序性
    2022-04-04
  • java中符号@的作用及用法举例详解

    java中符号@的作用及用法举例详解

    在Java编程语言中,@符号被称为注解(Annotation),下面这篇文章主要介绍了java中符号@的作用及用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • 使用Feign传递请求头信息(Finchley版本)

    使用Feign传递请求头信息(Finchley版本)

    这篇文章主要介绍了使用Feign传递请求头信息(Finchley版本),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • JAVA中ArrayList和数组的转换与遇到的问题解决

    JAVA中ArrayList和数组的转换与遇到的问题解决

    做研发的朋友都知道,在项目开发中经常会碰到ArrayList与数组类型之间的相互转换,这篇文章主要给大家介绍了关于JAVA中ArrayList和数组的转换与遇到的问题解决,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • java Export大量数据导出和打包

    java Export大量数据导出和打包

    这篇文章主要为大家介绍了java Export大量数据的导出和打包实现过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • myBatis组件教程之缓存的实现与使用

    myBatis组件教程之缓存的实现与使用

    这篇文章主要给大家介绍了关于myBatis组件教程之缓存的实现与使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • springboot使用filter获取自定义请求头的实现代码

    springboot使用filter获取自定义请求头的实现代码

    这篇文章主要介绍了springboot使用filter获取自定义请求头的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • Java JVM运行时数据区(Run-Time Data Areas)

    Java JVM运行时数据区(Run-Time Data Areas)

    运行时数据区,是java虚拟机定义的在程序执行期间使用的各种运行时的数据区,通过JVM运行时数据区图例给大家展示的很详细,对JVM 运行时数据区相关知识感兴趣的朋友跟随小编一起看看吧
    2021-06-06

最新评论