JSP是几年前就接触了,但是用归用,很多实际的意义含义等还是不太明白,借此机会,梳理一下。
1.JSP运行原理:当浏览器web应用服务器请求一个JSP页面时,Web应用服务器将其转换成一个Servlet文件(即一个.java文件),然后将这个Java文件编译成一个字节码文件(集一个.class文件),最后web应用服务器加载转换后的Servlet实例,处理客户端的请求,并返回HTML格式的响应回应给客户端浏览器;
2.JSP指令标识:
- 页面指令page的使用
<%@ page 属性1=“属性值1” 属性2=“属性值2”……%> · language属性:指定当前页面使用的语言,目前只支持Java · contentType属性:用于设置JSP页面的MIME类型和字符编码,用于显示网页内容; · pageEncoding属性:用于设置JSP页面的编码格式,用于编写阶段的显示; · import属性:用于导入JSP页面中的类包,在JSP页面可以通过嵌入Java代码的方法使用这些类包。
- 文件包含指令include的使用:它可以将一个JSP页面包含到另一个JSP页面中,从而实现JSP页面的重用。这里的包含是静态包含,即使被包含文件中有JSP代码,在包含时也不会被编译执行,而是将页面组合成一个页面后,再进行编译处理,最后返回结果页面。
- 引用标签库指令taglib的使用
3. 注释:
- HTML注释:
<!-- 注释内容<%-表达式%> --> 例如: <!-- 当前时间:<%=new java.util.Date().toLocalString()%>-->
- JSP隐藏注释:
<%-- 注释内容 --%>
4. include指令与<jsp:include>动作标识的区别:
表示形式的区别:
<%@include file="top.jsp"%> <jsp:include page="top.jsp"></jsp:include>
- include指令通过file属性指定被包含文件,并且file属性不支持任何表达式,<jsp:include>动作通过page属性指定被包含文件;
- 使用include指令时,被包含文件和包含文件最终编译成一个.java文件再执行,只执行一次。而<jsp:include>当标识被执行时,程序会将请求转发到被包含页面,并将结果输出到浏览器中,然后返回包含页继续执行后面的代码;
- include指令在包含文件和被包含文件中不能有重名的变量或方法。而在<jasp:include>中重名的变量或代码不会引起冲突。
5. <jsp:forward>请求转发的动作标识:
该动作用于将当前请求转发到其他的web资源(HTML页面、JSP页面、Servlet等)。在执行请求转发后,当前页面将不再继续执行,而是去执行forward指定的页面。
<jsp:forward page="url"/>
请求转发是服务器端的操作,浏览器并不知道请求的是哪一个页面,故其地址栏不会发生变化。