不知道错误原因,谢谢解答

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

复java_n

2020-09-13 16:04:08

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 filterTest implements Filter{


@Override

public void destroy() {

// TODO Auto-generated method stub

}


@Override

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

throws IOException, ServletException {

//进行强制转换

HttpServletRequest rqu=(HttpServletRequest)request;

HttpServletResponse res=(HttpServletResponse)response;

String uri=rqu.getRequestURL().toLowerCase();

if(uri.startsWith("/pc") || uri.startsWith("/pc")) {

chain.doFilter(request, response);

}else {

String client=rqu.getReader("user-agent");

String finnal="";

if(client.indexOf("iphone") || client.indexOf("android")) {

finnal="/phone"+uri;

res.sendRedirect(finnal);

}else {

finnal="/pc"+uri;

res.sendRedirect(finnal);

}

}

}


@Override

public void init(FilterConfig arg0) throws ServletException {

// TODO Auto-generated method stub

}


}


写回答

1回答

好帮手慕阿慧

2020-09-13

同学你好,

1、getRequestURL和getReader方法名拼写错误,应该是getRequestURI,getHeader。

2、indexOf()方法会返回int类型值,||左右两边应该是布尔类型。同学可以将方法返回值与-1进行比较。

参考代码如下:

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

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

0

0 学习 · 9666 问题

查看课程