context root 问题

context root 问题

# 具体遇到的问题
老师这题如果是不把context root不设置成/要怎么实现啊?
# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

在这里输入代码,可通过选择【代码语言】突出显示

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,当comtext root不为/时,同学的代码完成的不错。不过实际工作中,context root都会设置为/。

关于方法参数是arg0、arg1、arg2。在实现Filter接口,重新接口中的方法时,重写参数是request,response的doFilter()方法,如:

http://img1.sycdn.imooc.com//climg/5f8e57a409c245f905040195.jpg


  • 对方正在说话 提问者 #1
    这个界面是哪里来的啊?
    2020-10-21 00:31:41
  • 同学你好,在实现Filter接口中后,在类中按Alt+/快捷键就会出现提示,选择要重写的方法即可。祝:学习愉快~
    2020-10-21 09:38:18
对方正在说话 提问者 2020-10-19 23:54:54

顺便再提一个问题。

我自动生成的doFilter的参数是arg0、arg1、arg2.要怎么设置才能在自动生成时就是request、response、chain啊?

对方正在说话 提问者 2020-10-19 23:46: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 DeviceAdapterFilter implements Filter{


@Override

public void destroy() {

// TODO Auto-generated method stub

}


@Override

public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)

throws IOException, ServletException {

HttpServletRequest req=(HttpServletRequest)arg0;

HttpServletResponse res=(HttpServletResponse)arg1;

String uri=req.getRequestURI();

uri=uri.replaceAll("/device-adapter", "");

System.out.println("URI:"+uri);

if(uri.startsWith("/desktop")||uri.startsWith("/mobile")) {

arg2.doFilter(arg0, arg1);

}else {

String userAgent=req.getHeader("user-agent").toLowerCase();

String targetURI="";

if((userAgent.indexOf("android")!=-1)||(userAgent.indexOf("iphone")!=-1)) {

targetURI="/device-adapter/mobile"+uri;

System.out.println("移动端设备正在访问,重新跳转URI:"+targetURI);

res.sendRedirect(targetURI);

}else {

targetURI="/device-adapter/desktop"+uri;

System.out.println("PC端设备正在访问,重新跳转URI:"+targetURI);

res.sendRedirect(targetURI);

}

}

}


@Override

public void init(FilterConfig arg0) throws ServletException {

// TODO Auto-generated method stub

}


}

老师看看这样行不行,有更好的方法不

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师