在项目中一个jsp页面中一段js代码居然没有写道script代码块里面,而奇怪的是这段js代码居然没有作为一段字符串输出到页面,而是执行了这段js代码.
于是怀这好奇的心理去看看到底是怎么回事,突然让我发现在head.jsp页面有这样的一段代码
<script type="text/javascript" src="<c:url value='/mainFrame_menuFunction.do'/>"></script>
而mainFrame_menuFunction.do这个请求正是跳到那个jsp页面.
这样就很清楚了,原来它把那个Jsp页面当作一个外部js来执行了.
于是自己就做了一把实验
a.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <script type="text/javascript" src="b.jsp"></script> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>a</title> </head> <body> This is my JSP page. <br> </body> </html>
重点是这
引用
<script type="text/javascript" src="b.jsp"></script>
句,注意那可是.jsp,而不是.js
b.jsp页面
alert(1);
部署,运行a.jsp,果然弹出字符串1
原来js还可以这样用.以前倒没有发现.