天天看点

后台(16)——JSP(2)

<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文件中编写脚本

利用&lt;% %&gt;编写java代码,例如:

在该脚本中的代码必须严格遵循Java语法且每行代码以分号结束,而且不能出现其它模板元素。因为JSP引擎在翻译JSP页面中会将该脚本中的Java代码将被原封不动地放到_jspService( )中

利用&lt;%= %&gt;实现输出,例如:

&lt;%= 9527+45 %&gt; 等价于out.print(9527+45);

利用&lt;%! %&gt; 表示在类中定义全局成员和静态块

请注意在&lt;%! %&gt;定义的变量和方法和是全局的,它们会成为JSP对应的Servlet里的全局成员和方法。

利用&lt;%– –%&gt;添加JSP注释,例如:

&lt;%– 这是JSP注释 –%&gt;

利用&lt;!– –&gt;添加Html注释,例如:

&lt;!– 这是网页注释 –&gt;

JSP指令是为JSP引擎而设计的,用于告知JSP引擎如何处理JSP页面中代码。

指令的语法格式:

&lt;%@ 指令名称 属性1=“属性值1” 属性2=“属性值2”…….%&gt;

在JSP2.0规范中一共定义了三个指令:page、include、taglib。

现在来一起学习这三个指令,就从我们最熟悉的page开始。

page指令用于定义JSP页面的各种属性,比如在创建Web项目的时候系统会自动帮我们生成一个index.jsp,我们来瞅瞅该文件的第一行:

&lt;%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8”%&gt;

以前看这行代码的时候有点懵懂,现在就清楚了:这就是一个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常用的动作

&lt;jsp:include&gt;

用于动态地把其它资源包含到当前页面中

&lt;jsp:forward&gt;

用于请求转发

&lt;jsp:param&gt;

用于请求转发时携带参数

请看如下示例:

在此转发至test.jsp且携带了name和age两个参数

&lt;jsp:useBean&gt;

创建一个对象

&lt;jsp:setProperty&gt;

给对象的属性赋值

&lt;jsp:getProperty&gt;

取出对象的属性值

在此创建了cn.com.Person类的对象p,且为该对象的name属性赋值

继续阅读