JSP学习笔记一

1. JSP 最终还是会变成一个完整的Servlet 在Web 应用中运行。容器在得到JSP 代码时,把这些代码转换为
	一个Servlet类文件,然后再编译为Java Servlet 类。剩下过程就跟 Servlet本身的运行过程一样。

2. 使用page  指令导入包。语法格式如下:
	<%@ page import="java.util.*, example.bjfu.model.*" %> 导入多个包中间用逗号(,)分隔。

3. 表达式的标记
	scriptlet: <% %> 指令 <%@ %> 表达式 <%= %>
	表达式会成为 out.println() 函数的参数。

4. 在表达式中,如果方法没有返回任何东西,会得到一个错误。绝对不能把一个返回类型为 void 的方法用作
	表达式。

5. 声明的JSP元素 <%! %> 用于声明所生成 Servlet 的成员。这说明可以声明变量和方法。<%!%> 标记之外的所有内容都会增加
	到类中,而且置于服务方法之外。这意味着我可以声明静态变量和方法,还可以声明实例变量和方法。
	
6. Java 中可以超前使用变量。JSP 中的隐式对象:
	JspWriter out
	HttpServletRequest request
	HttpServletResponse response
	HttpSession session
	ServletContext application
	ServletConfig config
	JspException exception 只有隐士的错误页面才能使用这个隐士对象。
	PageContext pageContext
	Object page
	PageContext 封装了其他隐式对象,所以如果向某些辅助对象提供一个PageContext 引用,这些辅助
	对象就可以使用这个PageContext 引用得到其他隐士对象的引用,并得到所有作用域属性。
	
7. <!----> HTML 注释 <%--JSP 注释--%>

8. 所生成Servlet 的API
	jspinit() 这个方法在方法 init() 调用。可以覆盖这个方法。
	jspDestroy() 这个方法在 Servlet 的destory() 方法中调用。也可以覆盖。
	_jspService 这个方法在 Servlet 的service() 方法中调用。不能覆盖该方法。

9. JSP 的转换和编辑只发生一次。一旦Servlet 得到加载和初始化,请求时只会发生一件事,就是创建或分配
	一个线程来运行服务方法。
	
10. 可以为JSP 配置初始化参数
	<servlet>
		<servlet-name>MyTestInit</servlet-name>
		<jsp-file>/TestInit.jsp</jsp-file>
		<init-param>
			<param-name>email</param-name>
			<param-value>[email protected]</param-value>
		</init-param>
	</servlet>

11. 可以使用pageContext 得到任意作用域的属性,包括页面作用域绑定到PageContext 的属性。
	访问其他作用的方法要取一个 int 参数,这个参数用来指示是哪一个作用域。尽管属性存取方法放在
	JspContext 中,但是作用域常量在 PageContext 类中。
	PageContext
	APPLICATION_SCOPE
	PAGE_SCOPE
	REQUEST_SCOPE
	SESSION_SCOPE
	<%
	Float two = new Float(22.4);
	pageContext.setAttribute("two", two, PageContext.SESSION_SCOPE);
	%>

	<%=pageContext.getAttribute("two", PageContext.SESSION_SCOPE)%>
	<!-- 等价 -->
	<%=session.getAttribute("two") %>
	
	<%=pageContext.finAttribute("two")%> 即使不知道作用域也可以在查找一个属性.
	pageContext->request->sessin->application(查找顺序) 直到找到为止.
	
12. 三个指令
	page 定义页面特定的属性,如字符编码,页面响应的内容类型,以及这个也米啊是否要有隐式的会话对象.
	page 指令可以使用至多13 个不同的属性.
	import
	isThreadSafe 定义生成的Servlet 是否要实现 SingleThreadModel
	contentType MIME 类型
	isElIgnored EL
	isErrorPage	当前JSP 是否是另外一个JSP的错误页面
	errorPage 定义一个资源的URL,如果有未捕获到的Throwable ,就会发送到这个资源.
	language	定义使用脚本语言类型
	extends	此类使用哪个类作为超类
	session	定义页面是否有一个隐式的session
	buffer	定义隐式out 对象如何处理缓存
	autoFlush	定义焕春的输出是否自动刷新
	info	定义放到转换后的页面中的串,这样就能使用所生成的Servlet 继承的getServletInfo() 方法得到.
	pageEncoding 定义JSP 页面的字符编码
	
	
	taglib 定义JSP 可以使用的标记库.
	
	include 定义在转换是增加到当前页面的哦文本和代码.这样就可以建立可重用的块.

13. EL(Expression Language) EL 的功能是提供一种更简单的方法来调用Java ,但是代码本身放在别的地方.
	EL 表达式的形式是 ${something} 
	
14. 禁用 脚本,在DD 文件中.
	<jsp-config>
		<jsp-property-group>
		<url-pattern>*.jsp</url-pattern>
		<script-invalid>
			true
		</scripting-invalid>
		</jsp-property-group>
	</jsp-config>
	全局EL 禁用
	<el-ignored>
		true
	</el-ignored>
	页面禁用 <%@ page isElIgnored="true"%>


你可能感兴趣的:(学习笔记)