为什么在此过滤器的参数还是arg0和arg1?
为什么在此过滤器的参数是arg0和arg1?过滤器代码如下:publicvoiddoFilter(ServletRequestarg0,ServletResponsear...
为什么在此过滤器的参数是arg0和arg1?
过滤器代码如下:
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) arg0;
HttpServletResponse response = (HttpServletResponse) arg1;
HttpSession session = request.getSession(true);
String uriStr =request.getRequestURI();
System.out.println(">>>>>>>>>>>" + request.getRequestURI());
String uname=(String) session.getAttribute("name"); if (uname == null || "".equals(uname))
{
RequestDispatcher rd = arg0.getRequestDispatcher("/login.jsp");
rd.forward(arg0, arg1);
}
else {
arg2.doFilter(arg0, arg1);//这为什么还是argo。不是强转了吗》?
}
}
xml配置文件如下:
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>Common.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> 展开
过滤器代码如下:
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) arg0;
HttpServletResponse response = (HttpServletResponse) arg1;
HttpSession session = request.getSession(true);
String uriStr =request.getRequestURI();
System.out.println(">>>>>>>>>>>" + request.getRequestURI());
String uname=(String) session.getAttribute("name"); if (uname == null || "".equals(uname))
{
RequestDispatcher rd = arg0.getRequestDispatcher("/login.jsp");
rd.forward(arg0, arg1);
}
else {
arg2.doFilter(arg0, arg1);//这为什么还是argo。不是强转了吗》?
}
}
xml配置文件如下:
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>Common.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> 展开
展开全部
这无所谓的,你写doFilter(request, response)也一样,性能方面不会有一丝丝的改善,强转是给编译器看的,不是给JVM看的。
而且写doFilter(arg0, arg1)有个好处,别人一看代码,不用看仔细,就知道,哦,你把原来进来的arg0,arg1原封不动转给下个filter了。你写doFilter(request, response),别人还要愣一愣,这俩玩意是啥啊?上下看看,哦,你就做了个强转,其实还是原来的东西,没动过。所以写成doFilter(arg0, arg1)的可读性比较高。
而且写doFilter(arg0, arg1)有个好处,别人一看代码,不用看仔细,就知道,哦,你把原来进来的arg0,arg1原封不动转给下个filter了。你写doFilter(request, response),别人还要愣一愣,这俩玩意是啥啊?上下看看,哦,你就做了个强转,其实还是原来的东西,没动过。所以写成doFilter(arg0, arg1)的可读性比较高。
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32F103C8T6是一款基于ARM Cortex-M3内核的微控制器,具有以下基本参数:1. 工作频率:72MHz2. 外部时钟:最高可达120MHz3. 存储器容量:64K bytes4. 数据总线宽度:32位5. 输入/输出端口...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询