<a href="http://blog.csdn.net/lfdfhl/article/details/52415390" target="_blank">探索Android软键盘的疑难杂症</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/53332936" target="_blank">深入探讨Android异步精髓Handler</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/52673536" target="_blank">详解Android主流框架不可或缺的基石</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/53143114" target="_blank">站在源码的肩膀上全解Scroller工作机制</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/52735103" target="_blank">Android多分辨率适配框架(1)— 核心基础</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/52877866" target="_blank">Android多分辨率适配框架(2)— 原理剖析</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/53046113" target="_blank">Android多分辨率适配框架(3)— 使用指南</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51671038" target="_blank">自定义View系列教程00–推翻自己和过往,重学自定义View</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51324275" target="_blank">自定义View系列教程01–常用工具介绍</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51347818" target="_blank">自定义View系列教程02–onMeasure源码详尽分析</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51393131" target="_blank">自定义View系列教程03–onLayout源码详尽分析</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51435968" target="_blank">自定义View系列教程04–Draw源码分析及其实践</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51508727" target="_blank">自定义View系列教程05–示例分析</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51559847" target="_blank">自定义View系列教程06–详解View的Touch事件处理</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51603088" target="_blank">自定义View系列教程07–详解ViewGroup分发Touch事件</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51656492" target="_blank">自定义View系列教程08–滑动冲突的产生及其处理</a>
在上一篇博客我们说过:JSP中可以书写Java代码也可以放置Html标签,但是从本质上来说JSP就是一个Servlet,所以我们站在Java的角度来看JSP的语法就会简单许多。
可以利用尖括号和百分号的形式在JSP文件中编写脚本
利用<% %>编写java代码,例如:
在该脚本中的代码必须严格遵循Java语法且每行代码以分号结束,而且不能出现其它模板元素。因为JSP引擎在翻译JSP页面中会将该脚本中的Java代码将被原封不动地放到_jspService( )中
利用<%= %>实现输出,例如:
<%= 9527+45 %> 等价于out.print(9527+45);
利用<%! %> 表示在类中定义全局成员和静态块
请注意在<%! %>定义的变量和方法和是全局的,它们会成为JSP对应的Servlet里的全局成员和方法。
利用<%– –%>添加JSP注释,例如:
<%– 这是JSP注释 –%>
利用<!– –>添加Html注释,例如:
<!– 这是网页注释 –>
JSP指令是为JSP引擎而设计的,用于告知JSP引擎如何处理JSP页面中代码。
指令的语法格式:
<%@ 指令名称 属性1=“属性值1” 属性2=“属性值2”…….%>
在JSP2.0规范中一共定义了三个指令:page、include、taglib。
现在来一起学习这三个指令,就从我们最熟悉的page开始。
page指令用于定义JSP页面的各种属性,比如在创建Web项目的时候系统会自动帮我们生成一个index.jsp,我们来瞅瞅该文件的第一行:
<%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8”%>
以前看这行代码的时候有点懵懂,现在就清楚了:这就是一个page指令。在该指令中利用language属性指明该jsp文件中是java代码,利用import属性表明为该jsp文件导入了java.util包。说到导包有点人可能有疑惑了:我们没有导入java.lang为什么可以在JSP文件中写一些很基础的代码呢?这是因为系统会自动帮我们导入:
嗯哼,我们看看page指令常用的属性有哪些:
session: 是否自动创建session对象,默认值是true
errorPage: 假若页面中有错误跳转到指定的资源
isErrorPage: 是否创建throwable对象,默认是false
contextType: 设置内容类型,等同于response.setContextType()
pageEncoding: 告知JSP引擎用什么编码翻译该jsp文件
isELIgnored: 是否支持EL表达式,默认是false
include指令用于把其它资源包含到当前页面中
静态包含:
动态包含:
请注意这两者的区别:
静态包含:在JSP转义时把两个文件合并
动态包含:在JSP转义时不会合并文件当代码执行到include时才包含另一个文件的内容
使用原则:尽量多采用静态包含
taglib指令用于在JSP页面中导入JSTL标签库。在导入JSTL标签库后就可用标签替换JSP中的java代码。
使用方式:
在此介绍JSP常用的动作
<jsp:include>
用于动态地把其它资源包含到当前页面中
<jsp:forward>
用于请求转发
<jsp:param>
用于请求转发时携带参数
请看如下示例:
在此转发至test.jsp且携带了name和age两个参数
<jsp:useBean>
创建一个对象
<jsp:setProperty>
给对象的属性赋值
<jsp:getProperty>
取出对象的属性值
在此创建了cn.com.Person类的对象p,且为该对象的name属性赋值