请老师看看,一直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