为什么一直是404

为什么一直是404

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<img alt="" src="/images/desktop.jpg">
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<img alt="" src="/images/mobile.jpg" style="width:100%">
</body>
</html>
package com.zt.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DeviceAdapter implements Filter {

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		HttpServletRequest req=(HttpServletRequest)request;
		HttpServletResponse res=(HttpServletResponse)response;
		
		String url=req.getRequestURI();
		System.out.println(url);
		
		if(url.startsWith("/desktop") || url.startsWith("/mobile")) {
			chain.doFilter(request, response);
		}else {
			String userAgent=req.getHeader("user-agent").toLowerCase();
			String newUrl="";
			if(userAgent.indexOf("iPhone")!=-1 || userAgent.indexOf("android")!=-1) {
				newUrl="/mobile" + url;
				System.out.println("移动设备正在访问,重写跳转URL:"+newUrl);
			    res.sendRedirect(newUrl);
			}else {
				newUrl="/desktop" + url;
				System.out.println("移动设备正在访问,重写跳转URL:"+newUrl);
			    res.sendRedirect(newUrl);
				
			}
		}
		
	}



}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>filter</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <filter>
  <filter-name>filterName</filter-name>
  <filter-class>com.zt.filter.DeviceAdapter</filter-class>
  </filter>
  
  <filter-mapping>
  <filter-name>filterName</filter-name>
   <url-pattern>*.html</url-pattern>
  </filter-mapping>
</web-app>

直接输入locallhost:8080 也是404,这是为什么

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕小班 2019-12-05 10:07:51

同学你好,直接访问localhost:8080没有访问成功可能与没有设置默认页面有关系,同学可以重新配置一下tomcat的默认页面,例如:

    1、停止项目,移除tomcat中的项目,清理缓存

http://img1.sycdn.imooc.com//climg/5de865a4099719bd05400473.jpg

      2、添加运行页面的默认信息

http://img1.sycdn.imooc.com//climg/5de86655097cd2d209050602.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕小班 2019-12-04 18:23:40

同学你好,1、如果tomcat没有启动成功,那么在地址栏直接输入locallhost:8080是访问不到这个页面的。

http://img1.sycdn.imooc.com//climg/5de7888b09703dec13850419.jpg

        2、进入移动端,再进行加载index.html的时候显示的还是桌面端,检查同学代码,同学使用的是iphone手机端吧,请求头获取到的是iphone,同学比较的是iPhone,大小写不一致导致匹配失败,同学可以将iPhone修改为iphone,再试一下。

http://img1.sycdn.imooc.com//climg/5de7892709c5b01104300057.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕仔0431810 #1
    不行啊,老师iPhone 大小写都试过了,都不行,只有选择安卓的可以加载移动页面,iPhone的都不行
    2019-12-04 20:49:59
  • 提问者 慕仔0431810 #2
    可以了,老师,研究了半天,发现是ecplise的缓存问题。在启动tomcat前 必须要在project 下clean一下缓存,就可以加载移动页面了,很多问题就没有了。 不过还有个小问题,现在功能一切正常,老师不是说在tomcat正常启动下可以访问localhost8080么,但是这个localhost一直是404未找到状态,(tomcat是正常运行)其他的servlet工程都可以访问,就这个过滤器的不行。会不会跟工程上下文路径换成了 / 有关系呢。(视频中也是这么做的,我跟着视频也改成了 /)
    2019-12-04 21:02:43
好帮手慕小班 2019-12-04 15:12:12

同学你好,复制运行同学代码,DeviceAdapter没有实现init和destroy方法,DeviceAdapter方法有误,tomcat程序启动失败,访问项目会直接报出404的错误。

建议同学添加未实现的init和destroy方法,添加后,启动运行后,就可以正常启动访问执行。例如:

http://img1.sycdn.imooc.com//climg/5de75c460929357907530565.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕仔0431810 #1
    可以了,但是输入locallhost8080为什么是404,以前会有个页面的呀
    2019-12-04 15:28:16
  • 提问者 慕仔0431810 #2
    还有 按下F12 点手机进入移动端,再进行加载index.html的时候为什么显示的还是桌面端呢
    2019-12-04 15:47:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师