一直出现找不类的错误

来源:3-1 多端设备自动适配

慕仔0431810

2019-12-04 14:29:04

http://img.mukewang.com/climg/5de7518c090777db00000000.jpg

<?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回答

好帮手慕酷酷

2019-12-04

同学你好,同学的代码编写的没有问题,老师这边测试同学的代码没有出现同学的报错信息,如运行同学的代码结果:

http://img.mukewang.com/climg/5de75ea009f5f20605940111.jpg

建议同学清理一下eclipse缓存再尝试一下,如:

http://img.mukewang.com/climg/5de75e770947589b02770255.jpg

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

0

0 学习 · 9666 问题

查看课程