<%@ 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,例外对象
早上研究了下jsp的加载顺序,顺便复习下jsp,布布扣,bubuko.com
原文地址:http://my.oschina.net/kelvinline/blog/299474