请老师看看,一直404
来源:3-1 多端设备自动适配
慕仰7036876
2020-06-01 14:26:41
package com.imooc.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; 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 destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest req = (HttpServletRequest)request; HttpServletResponse res = (HttpServletResponse)response; String uri =req.getRequestURI(); if(uri.startsWith("/desktop") || uri.startsWith("/mobile")) { chain.doFilter(request, response); }else { String userAgent = req.getHeader("user-agent").toLowerCase(); String targetURI = ""; if(userAgent.indexOf("android")!=-1 || userAgent.indexOf("iphone")!=-1) { targetURI = "/mobile" + uri; System.out.println("移动设备正在访问,重新跳转URI:" + targetURI); res.sendRedirect(targetURI); }else { targetURI = "/desktop" + uri; System.out.println("移动设备正在访问,重新跳转URI:" + targetURI); res.sendRedirect(targetURI); } } } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } }
<!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="wigth:100%"> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <img alt="" src="/images/mobile.jpg" style="wigth:100%"> </body> </html>
1回答
同学你好,项目访问路径应该为/,请同学检查一下,如下:
同学应该访问http://localhost:8080/desktop/index.html,不用带项目名。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题
回答 1
回答 3