详解Tomcat出现404的解决方法

Tomcat测试出现404问题出现的问题如下:

HTTP状态 404 - 未找到
类型 状态报告
消息 请求的资源[/chapter06/IndexServlet]不可用
描述 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。
Apache Tomcat/9.0.37

问题原因,浏览器不能直接访问Java文件

问题的解决方法

1、提交表单时遇到此问题

<form name = "reg" action="/login" method="post">
 <meta charset="UTF-8">
 账号:<input type="text" name="username"/><br>
 密码:<input type="password" name="passward"/><br>
 <input type="submit" value="提交" id="bt">
</form>

其中的<form name = "reg" action="/login" method="post">action=" "里面引用的必须为路由地址(这个路由地址需要自己配置的(如:我自己配置的负责接收表单的Java类中的路由为 /login,而不是自身的Java类的访问路径 /chapter06/src/LoginServlet)
对Java文件配置路由方式在下面:

2、访问src路径里的Java文件报错

需要对目标Java文件配置路由,具体配置有两种方式:(这里只是简述如果想了解更详细内容点击这里)

(1):基于注解的方式配置

只适用于Tomcat3以上版本(好像是3,记不清了)
在Java类里添加

package cn.itcast.chapter06.session.example;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/logout")   //这里就是路由的配置

public class LogoutServlet extends HttpServlet {
 @Override
 public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  req.getSession().removeAttribute("user");
  resp.sendRedirect("/wel");
 }

 @Override
 public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  doGet(req, resp);
 }
}

**@WebServlet("/logout") //这里就是路由的配置,此方法也是最常用的方法。**引号里面就是路由

(2)基于xml文件配置方式

点击打开web.xml文件,然后对web.xml代码进行更改,在< /app >前面添加映射

<servlet>
	 <servlet-name>hello</servlet-name>
	 <servlet-class>com.southwind.servlet.HelloServlet</servlet-class>
 </servlet>
<servlet-mapping>
	<servlet-name>hello</servlet-name>
	<url-pattern>/demo2</url-pattern>
</servlet-mapping>

将demo2和hello进行映射 在浏览器直接访问demo2就可以映射HelloServlet

到此这篇关于详解Tomcat出现404的解决方法的文章就介绍到这了,更多相关Tomcat出现404内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决idea导入ssm项目启动tomcat报错404的问题

    用idea写ssm项目,基于之前一直在用spring boot 对于idea如何运行ssm花费了一番功夫 启动Tom act一直在报404 我搜了网上各种解决办法都不行,花费一天多的时间解决不了 就是在pom中添加下面代码 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin<

  • 在Tomcat中配置404自定义错误页面详解

    一直使用tomcat,今天想到一个问题,自定义404错误页面, 为了获得很好的用户感受,是不应当向用户暴露404这样的页面的, 问题的出发点是我在Struts2中定义错误页面, 在Struts2中是这样定义的: <default-action-ref name="pagenotfound"></default-action-ref> <action name="pagenotfound"> <result>/pagen

  • 解决在启动eclipse的tomcat进行访问时出现404问题的方法

    有段时间没部署项目到tomcat,今天部署出现了404问题. 一.环境 tomcat7   jdk1.7    eclipse-jee-luna-R-win32 二.问题描述 1.创建完web项目时,在eclilpse中创建一个tomcat server,添加web项目到该server,在eclipse中启动该server,启动是成功的.在浏览器输入:http://localhost:8080,页面出现404,如图所示 2.即便该tomcat下面不添加任何项目,在eclipse中启动tomcat

  • vue-cli history模式实现tomcat部署报404的解决方式

    vue-cli开发过程中路由#不好看,去掉可使用history模式,开发模式路径访问都没问题,部署到服务器之后访问路径时报404,这种情况需要配置服务器默认访问路径index.html.官网只提供了apache.nginx的配置方式,没有tomcat的配置方式,下面以个例子来完成整个配置. 范例:vue-cli项目使用路由,tomcat作为服务器,项目文件夹名myvue 1.npm run build 打包生成的build文件夹中内容拷贝到myvue文件夹如下图: 2.myvue文件夹下新建WE

  • Tomcat正常启动,访问所有页面均报404异常,404异常总结分析

    404异常,很常见,大多情况是路径错误.web.xml文件映射路径写错.服务器设置.servlet的jar包未导进去或者没有随项目发布等等. 如果是路径错误,仔细检查即可解决问题. 服务器没设置好也会报这个错误,这一般是新手刚开始学时遇到的问题,就是要把eclipse中的tomcat的server location设置为use tomcat installation,在eclipse界面双击tomcat server见如图设置: 如果是servlet的jar包问题,则通过build path引入

  • Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案

    遇到的问题 使用webpack打包vue后,将打包好的文件,发布到Tomcat上,访问成功,但是刷新后页面报404错. 在网上查找了一下,原来是HTML5 History 模式引发的问题,具体为什么,vue官方已经给出了解释,你可以看https://router.vuejs.org/zh-cn/essentials/history-mode.html 但是看完问题又来了,官方给出的解决方案中没有说tomcat下,怎么决解. 解决方案 根据官方给出的解决方案原理 你要在服务端增加一个覆盖所有情况的

  • 详解Tomcat出现404的解决方法

    Tomcat测试出现404问题出现的问题如下: HTTP状态 404 - 未找到 类型 状态报告 消息 请求的资源[/chapter06/IndexServlet]不可用 描述 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示. Apache Tomcat/9.0.37 问题原因,浏览器不能直接访问Java文件 问题的解决方法 1.提交表单时遇到此问题 <form name = "reg" action="/login" method=&qu

  • 详解maven依赖冲突以及解决方法

    什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类包版本冲突 依赖冲突的原因 依赖冲突很经常是类包之间的间接依赖引起的.每个显式声明的类包都会依赖于一些其它的隐式类包,这些隐式的类包会被maven间接引入进来,从而造成类包冲突 如何解决依赖冲突 首先查看产生依赖冲突的类jar,其次找出我们不想要的依赖类jar,手工将其排除在外就可以了.具体执行步骤如下 1.查看依赖冲突 a.通过dependency:tree是命令来检查版本冲突 mvn -Dverbose dep

  • 详解mysql5.7密码忘记解决方法

    ENV: [root@centos7 ~]# uname -r 3.10.0-514.el7.x86_64 [root@centos7 ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) [root@centos7 ~]# rpm -qa mysql [root@centos7 ~]# rpm -qa |grep mysql mysql-community-common-5.7.26-1.el7.x86_64 mysq

  • 详解tomcat部署静态html网站方法

    一.首先下载tomcat(apache-tomcat-8.5.6) 二.将静态html页面以及相关文件放在一个目录,如A目录 三.将A目录放在..:\apache-tomcat-8.5.6\webapps目录下 四.指定tomcat访问端口号(在如图所示目录下找到server.xml文件并打开) 五.找到port端口行,修改自己想用的端口号即可(只要不被占用)如图所示: 六.在此文件最后加入一行代码,其中docBase路径从tomcat写到你的A目录即可(A目录下的xml文件就是你的访问地址的绝

  • 详解Tomcat双击startup.bat闪退的解决方法

    作为一个刚学习Tomcat的程序猿来说,这是会经常出现的错误. 1.环境变量问题 1.1 首先需要确认java环境是否配置正确,jdk是否安装正确 win+R打开cmd,输入java 或者 javac 出现下图所示就说明jdk配置正确: 如果没有,则参考jdk的安装及配置 如果以上都没有问题,则向下看. 1.2确认Tomcat的环境变量配置 对于免安装版的Tomcat来说,在启动Tomcat时,需要读取环境变量和配置信息,缺少了这些信息,就不能登记环境变量,导致闪退. 解决方法: 1:在已解压的

  • 详解tomcat热部署和热加载的方法

    详解tomcat热部署和热加载的方法 我在项目开发过程中,经常要改动Java/JSP 文件,但是又不想从新启动服务器(服务器从新启动花时间),想直接获得(debug)结果.有两种方式热部署 和热加载: 1.热加载:在server.xml -> context 属性中 设置 reloadable="true" <Context docBase="xxx" path="/xxx" reloadable="true"/&

  • Vue 2.5.2下axios + express 本地请求404的解决方法

    最近在学习Vue,今天尝试了使用axios模拟本地网络请求.使用的过程中发现接口请求一直404,后来发现在当期的Vue-cli构建的最新的项目中,接口请求应该这样写. 1.引入相关依赖 var axios = require('axios') const express = require('express'); var app = express(); var apiRoutes = express.Router(); app.use('/api', apiRoutes); 2.处理网络请求

  • 对Django中static(静态)文件详解以及{% static %}标签的使用方法

    在一个网页中,不仅仅只有一个html骨架,还需要css样式文件,js执行文件以及一些图片等.因此在DTL中加载静态文件是一个必须要解决的问题.在DTL中,使用static标签来加载静态文件.要使用static标签,首先需要{% load static %}. 加载静态文件的步骤如下: 首先确保django.contrib.staticfiles已经添加到settings.INSTALLED_APPS中. 确保在settings.py中设置了STATIC_URL. 注意: 上面两条都是在创建Dja

  • 详解用Nginx搭建CDN服务器方法(图文)

    利用Nginx的proxy_cache搭建缓存服务器一:编译ngx_cache_purge 1.Nginx的Proxy_cache是根据Key值md5哈希存储缓存,支持任意的Key,例如你可以根据"域名.URI.参数"组合成key,也支持非200状态码,如404/302等. 2.要利用Nginx的Proxy_cache,你需要在Nginx编译进ngx_cache_purge 模块,执行:nginx -V,查看有没有ngx_cache_purge 字样,没有的话需要自己手动编译. Ngi

  • 详解linux 使用docker安装mongodb方法

    1.xshell远程到一台安装了docker和docker-conpose的服务器(安装方法见其他学习文件) 2.到home目录下新建Mongotest文件夹,进入这个文件夹,执行vi docker-compose.yml,插入如下内容 ,退出并保存 3.执行docker-compose up -d 然后添加防火墙:firewall-cmd --add-port=27017/tcp --permanent 重启防火墙:firewall-cmd --reload 4.查看进程 docker ps

随机推荐