一直出现找不类的错误
来源:3-1 多端设备自动适配
慕仔0431810
2019-12-04 14:29:04
<?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>DeviceAdapterFilter</filter-name> <filter-class>com.zt.filter.DeviceAdapterFilter</filter-class> </filter> <filter-mapping> <filter-name>DeviceAdapterFilter</filter-name> <url-pattern>*.html</url-pattern> </filter-mapping> </web-app>
package com.zt.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 DeviceAdapterFilter implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { // 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; /* /index.html PC: /desktop/index.html MOBILE: /mobile/index.html /test.html PC: /desktop/test.html MOBILE: /mobile/test.html */ String uri = req.getRequestURI(); System.out.println("URI:" + uri); 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("PC端设备正在访问,重新跳转URI:" + targetURI); res.sendRedirect(targetURI); } } } @Override public void destroy() { // TODO Auto-generated method stub } }
明明包名类名一模一样的,前面的也跟着老师的步骤一步步打下来,急急急
1回答
同学你好,同学的代码编写的没有问题,老师这边测试同学的代码没有出现同学的报错信息,如运行同学的代码结果:
建议同学清理一下eclipse缓存再尝试一下,如:
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题