jsp虽然和html都是展示页面,但素,其注释是有区别的。
1. jsp注释 <%-- content --%> jsp引擎直接忽略,隐式注释,在源文件中也不能找到
2. html注释 <!-- content --> 也是xml的注释
在jsp文件中看到<!--#include virtual="/header_footer/footer.html"-->竟然以为是注释,不会执行,这就尴尬了。。。
<%@ %>在jsp文件中,表示引用,一般放在页面的开头,
如<%@ page import="com.util.URLUtils"%>
<%@ page language="java" pageEncoding="GBK" contentType="text/html,charset=GBK"
不过,在jsp中也会把<!-- content-->表示成显示注释,意思是说在页面上没有这部分内容,但是,可以f12,查看源文件中包含这部分内容。因为这对于xml以及html为注释,表示在浏览器界面不能出现,但是对于服务器来说,里面的指令还是被服务器端解析。
一.引入文件方式:
1.<%@ include file="/core/header.jsp"%>
2.<!-- #include file="/core/header.jsp"%>
3.<!-- #include virtual="/core/footer.html"-->
第一种与第二种方式,应该没有什么区别
二、三区别:第二种为文件的相对路径,第三种是文件的虚拟路径,例如在resource/core/footer.html(部署在nginx上)静态文件就要引入为第三个例子。
二.JSP脚本元素
声明:<%! int counter = 0 %>
表达式:<%= new Java.util.Date() %>
代码块:<% if(isLogin){…} %>
三.指令
page指令:<%@ page … %>
包含指令:<%@ include … %> 静态包含,也成为翻译时包含,在JSP翻译时插入一个包含文本或代码的文件,这个 包含过程是静态的,然后再将jsp翻译成一个servlet文件
四、常用动作
包含动作:<jsp:include page=“ ” /> 动态包含,也是运行时包含,将页面执行完的结果加载进来,先编译再加入,会多个servlet文件。多个页面间的变量不能共享
转发动作:<jsp:forward page=“ ” /> 转移控制权到下一个页面 url不变;
<%response.sendRedirect()%>, 重定向,向服务器请求另一个页面