有关JSP注释
最近学习过滤器的时候,dispatcher可以指定过滤器被Servlet容器拦截的方式,可以是REQUEST、INCLUDE、FORWARD、ERROR,默认是REQUEST方式。
现在有两个filter:helloFilter、secondFilter。从index.html页面超链接到dispatcher.jsp页面,dispatcher.jsp页面分别通过<jps:forward>、<jsp:include>等方式进入目的页面test.jsp,此时web.xml文件中的两个filter的dispatcher根据dispatcher.jsp页面进入test.jsp页面的方式进行配置。
1.先测试<jsp:forward>的时候,将secondFilter的dispatcher在web.xml中配置为<dispatcher>FORWARD</dispatcher>,helloFilter没有设 置(默认为REQUEST)。此时只有第二个filter起了拦截作用,第一个filter不起作用。
2.注释掉第一行代码
3.测试<jsp:include>,此时web.xml中两个filter的dispatcher配置和第1步保持一样没有改动。即:helloFilter的dispatcher没有设置默认为 REQUEST,secondFilter的dispatcher设置 成FORWARD。按照正常情况两个filter都不起作用。
问题在于:第2个filter仍然能起作用。
index.html代码如下

dispatcher.jsp代码如下:

test.jsp代码如下:

web.xml配置文件如下:

分析原因:index.html和test.jsp都没什么,唯一可能出问题的应该是dispatcher.jsp。而且是在dispatcher.jsp里设置通过哪种方式进入test.jsp的,所以问题出在了这个页面。
仔细检查,发现是JSP注释的问题:<%-- JSP注释 --%> 和<!-- HTML注释 -->。二者的区别:JSP注释可以阻止Java代码的执行,html不能。
思维误区:以前我以为放在<% %>里的只有java代码,java代码的注释放在<%-- --%>里。看到<jsp:forward page="/test.jsp"> </jsp:forward>我想到的是html代码,所以就 用<!-- -->注释了。但可以注意到这里是jsp:forward,也就是说他是Jsp代码并不是 html代码。归根到底还是没有对html有个基础了解,才会出现这么低级的错误。
也就是说,问题出在dispatcher.jsp文件里的注释上:<!-- -->不能阻止Java代码的执行,所以这里的<jsp:forward page="/test.jsp"></jsp:forward>也执行了,所以才会让第2个filter起了作用。
解决办法:


备注:如果直接在浏览器输入test.jsp地址,可以看到第1个filter工作,第2个filter不工作。因为直接在浏览器访问test.jsp页面,这是request方 式。第1个filter默认的拦截方式是 REQUEST,第二个filter设置的拦截方式是FORWARD。
如果希望两个filter都对request方式起作用,可以把第二个filter的dispatcher添加设置:

有关JSP注释的更多相关文章
- jsp 变量和方法的声明 Java程序片 HTML注释 JSP注释
<%!...%> 声明变量和方法 <%!...%>之中的变量为JSP页面的成员变量,当多个线程访问本页面时,多个线程共享此变量. <%@ page contentType ...
- JSP JSP工作原理 JSP语法 JSP声明 JSP注释 JSP指令 jsp九大隐式/内置对象
1 什么是JSP 1)为什么说,Servlet是一个动态Web开发技术呢? Servlet是基于服务端的一种动态交互技术, HttpServletRequest表示客户端到服务端的 ...
- jsp注释方式
1,HTML的注释方法 <!--...add your comments here...--> 说明:使用该注释方法,其中的注释内容在客户端浏览中是看不见的.但是查看源代码时,客户是可以看 ...
- JSP基础:JSP指令、JSP注释、JSP脚本、JSP声明、JSP表达式
JSP指令分为:page指令.include指令.taglib指令. page指令:通常位于JSP页面的顶端,同一个页面可以有多个页面指令. 语法:<%@ page language=" ...
- jsp基础语言-jsp注释
JSP注释可分为客户端注释和服务器端注释. 客户端注释:用户可通过浏览器中的源代码查看,且这种注释可以加入JSP表达式. 语法:<!-- 客户端注释[<%=表达式%>] --> ...
- jsp注释<%-- --%>和<!-- -->的区别
最近在写JSP页面注释的时候,遇到一个问题,在JSP页面引用的静态属性资源文件时,在浏览器控制台报错,当我把引用的标签注释掉后,用的是<!-- -->.然后浏览器仍然报了之前那个错,经过查 ...
- JSP注释
------------------siwuxie095 在 JSP 文件中可以使用 HTML 注释 HTML 注释使用 < ...
- JSP注释格式
一.JSP注释格式来源 JSP是Sun Microsystems公司制定的一种服务器端动态网页技术的组件规范,其主体由HTML.CSS.JavaScript和Java拼凑组成. 正是因为JSP是一种组 ...
- JSP 注释的详解及简单实例
转自:https://www.jb51.net/article/124727.htm JSP 注释的详解及简单实例 一 三种格式 二 举例 ? 1 2 3 4 5 6 7 8 9 10 11 12 1 ...
随机推荐
- Java-->实现群聊功能(C/S模式--TCP协议)
--> Java 对TCP协议的支持: --> java.net包中定义了两个类ServerSocket 和Socket ,分别用来实现双向连接的server 端和client 端. -- ...
- SM30维护视图添加按钮
转自http://blog.csdn.net/tsj19881202/article/details/7517232 遇到某需求,要求维护sm30的视图时,能加上排序按钮. 基本参考: http:// ...
- db2 存储过程 语法 及结果集查询
第一次用存储过程,关于处理待办的,不知道怎么执行和传参数 给存储过程 ,其实就一句话很简单. @call PRC_MISSIONLIST_QUERY('27020214', '27040000', ' ...
- ZOJ 1037 Gridland
原题链接 题目大意:给出一个格子图,求走完所有节点的最短路径距离. 解法:简单啊,如果都是奇数,可以走一次斜边,其他情况就是长*宽. 参考代码: #include <stdio.h> in ...
- 使用isInEditMode解决可视化编辑器无法识别自定义控件的问题
如果在自定义控件的构造函数或者其他绘制相关地方使用系统依赖的代码, 会导致可视化编辑器无法报错并提示:Use View.isInEditMode() in your custom views to s ...
- 《C标准库》—之<assert.h>实现
首先,贴出标准库中<assert.h>的实现源码: #undef assert #ifdef NDEBUG #define assert(test)((void)0) #else void ...
- 关于sql where id in 转换成数据类型 int 时失败(转)
有执行sql条件语句where id in(@参数)的时候,如果处理不当,就会出现问题:如下面这个存储过程: alter proc Web_gettwtwgoldgameserverGoldSell@ ...
- Checking the content of the pointer
https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/d481b7ec-cd67-476c-b2d7-ca3334effa16/h ...
- Spark 优化器 ML的论文
http://people.csail.mit.edu/matei/papers/2015/sigmod_spark_sql.pdf http://www.vldb.org/pvldb/vol4/p5 ...
- Processor Speculative & pipeline
https://en.wikipedia.org/wiki/Instruction-level_parallelism https://en.wikipedia.org/wiki/Instructio ...