首页 > 代码库 > 早上研究了下jsp的加载顺序,顺便复习下jsp

早上研究了下jsp的加载顺序,顺便复习下jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<%@ include file="/common/header.jsp" %>
<%
        /**jsp脚本段--执行顺序1. 靠前先执行**/
	request.setAttribute("test", "1111");
	
%>
<script>

        //jqery 执行顺序3. 这个是整个页面加载完毕后再执行
	$(function(){	
	
		/**jsp表达式赋值**/
		var test= "<%=request.getAttribute("test")%>";
		alert("2"+test);
	});
	
	/**在js里,执行顺序2,这块代码先执行 jsp表达式 **/
	var test= "<%=request.getAttribute("test")%>";
	alert("1" + test);
</script>
</head>
<body></body></html>


一、JSP脚本语法
html注释: <!-- context -->,servlet中会生成,会发给浏览器
隐藏注释: <%-- context --%> , servlet不生成, 不发给浏览器
声明:   全局变量,整个页面内有效<%! int t=0 %>    该表达式内有效<% int t=0 %>
        t:<%= ++t %></H1>
        t1:<%= ++t1 %></H1>

表达式:<%=…%>  使用如上面的例子: <%= request.getAttribute("test")%>
Java脚本段:<%...%> 

二、JSP编译器指令
1.page
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
2.include
1)静态导入 <%@ include file="logo.jsp"%> //logo.jsp只放你要准备被别人引入的commons的代码就行了。
         是在jsp引擎转译时,就把此文件内容包含了进去(两个文件的源代码整合到一起,全部放到_jspService方法中         ),所以只生成了一个servlet,所以两个页面不能有同名的变量。
         运行效率高一点点。耦合性较高,不够灵活
2)动态导入 <jsp:include page=“logo.jsp”></jsp:include>
         是在servlet引擎转译后,请求的此页面,所以共生成了两个servlet,所以可以有同名变量。
         生成两个servlet,相当于两个类之间的调用,耦合性较低,非常灵活。
         
   静态-动态,区别:静态导入会把所导入的代码嵌入到所导入的页面。
		  动态导入会把所导入的页面先编译好,把结果显示到所导入的页面。
		  
三、内置对象-九种
request,请求对象  		存放的数据在一次request有效
response,响应对象		存放的数据在一次response有效		
pageContext,页面上下文对象,只在本页有效
session会话对象,保存用户的信息,跟踪用户的行为。	存放的数据在一次会话有效。
application应用程序对象.多个用户共享该对象,整个web应用运行期有效。可以做计数器。	相当于servlet的ServletContext 对象
out输出对象 PrintWriter out = response.getWriter();
config配置对象	可以得到web.xml中的参数。
page,页面对象
exception,例外对象