有关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 ...
随机推荐
- 使用 rqt_console 和 roslaunch---8
使用 rqt_console 和 roslaunch Description: 本教程介绍如何使用rqt_console和rqt_logger_level进行调试,以及如何使用roslaunch同时运 ...
- Codeforces Round #120 (Div. 2)
A. Vasya and the Bus 根据\(n,m\)是否为0分类讨论下. B. Surrounded 判断两圆是否有交点,否则构造的圆与两圆相切. C. STL 看代码比较清楚. void t ...
- 关于kafka连接不上别的机器问题Connection refused
1.确认config里面的server.properties 正确(包括IP+端口2181记得看清,用hostname的话记得etc/hostnames下面查看全部配置上没,建议用hostname方便 ...
- Python实现__metaclass__实现方法运行时间统计
几天前写的,参考了园友的一篇文章,链接找不到了.先感谢,找到了链接再补上.
- Java——正则表达式(字符串操作)
public class Test1 { /* * 正则表达式:对字符串的常见操作: * 1.匹配: * 其实是用的就是string类中的matches(匹配)方法. * 2.切割 * 其实 ...
- NetStatusEvent info对象的状态或错误情况的属性
代码属性 级别属性 意义 "NetStream.Buffer.Empty" "status" 数据的接收速度不足以填充缓冲区.数据流将在缓冲区重新填充前中 ...
- 委托,C#本身的委托(Action Func)
1.Action 分为带泛型的和不带泛型的,带泛型可传入任何类型的参数. 格式如下: using System; using System.Collections.Generic; using Sys ...
- Freezing Your Tuples Off 之 vacuum_freeze_min_age
The vacuum_freeze_min_age setting determines the youngest XID which will be changed to FrozenXID on ...
- C/C++数组名与指针的区别详解
1.数组名不是指针我们看下面的示例: #include <iostream> int main() { ]; char *pStr = str; cout << sizeof( ...
- easyui datagrid 添删改(纪录)
var groups;//用户组为另一个表,所以需先加载,用于编辑时下拉框 var editindex = undefined; var action; $(function () { $.ajax( ...