JSP学习笔记二


1. JSP 标准动作获取 JavaBean 属性
<jsp:useBean id="person" class="com.example.model.Person" scope="request"/>
<jsp:getProperty property="name" name="person"/>

<jsp:useBean >可以用来声明和初始化在<jsp:getProperty>中使用的具体bean 对象。

2. <jsp:useBean> 还能创建一个bean。并使用<jsp:setProperty > 为该bean 的属性设置具体的值。

3. <jsp:userBean>中的属性 type 类型可以是class、抽象类或者一个接口,只要能用作为 Bean 对象
class 类型的生命引用类型,都可以指定为 type 。
class 必须是 type 的一个子类或者接口的实现。

4. 如果使用了type,但是没有 class, bean 必须已经存在。
如果使用了class(有或没有 type),class 不能是抽象类,而且必须有一个无参数的公共构造函数。

5. scope 属性的默认值为 page。

6. param 属性可以直接向 bean 发送一个请求参数,

7. EL 打印嵌套性能变得非常容易,可以很轻松的打印性质的性质。
${person.dog.name}
EL 是不用Java 访问Java 对象的一种方法。
EL 隐式对象
pageScope requestScope sessionScope applicationScope param paramValues header headerValues cookie initParam
pageContext 不是映射,而是实际的引用。pageContext 隐式对象是一个bean,它有获取方法,所有其他隐式对象都是Map。

8. 使用(.)号操作符访问性质和映射值。[] 就像是更好的点号。主要是用来操作数组和List等或者属性名不遵循正常的Java
命名规范。

9. 使用[] 操作数组。
String[] favouriteMusic = {"Zero 7", "My love", "Lady", "Hello World"};
request.setAttribute("musicList", favouriteMusic);
${musicList[0]} ${musicList["1"] }
可以使用加引号和不加引号的下标。
如果中括号左边是一个数组或 List,而且索引是一个 String 直接量,那么这个索引会强制转换为 int。而且它本身要能强制转换为 int。

10. 对Map 的数据访问。
HashMap<String, String> musicMap = new HashMap<String, String>();
musicMap.put("Ambient", "zero 7");
musicMap.put("Surf", "Tahiti 80");
request.setAttribute("musicMap", musicMap);
${musicMap.Ambient } ${musicMap["Ambient"] }
如果中括号里没有引号,容器就会计算中括号中的内容,搜索与该名字绑定的属性,并替换为这个属性的值(如果有一个同名的隐式对象,
则始终使用隐式对象)。

11. 在中括号中可以使用嵌套表达式。EL 中都是表达式,深度不限。如果不能用作Java 代码中的变量名,就不要把它放在点号后面。

12. 使用 pageContext 来得到其他的一切。pageContext.request.method 来得到其他的一切。

13. EL 能很好的处理NULL。它能处理unknown 或 NULL值,即使找不到表达式中指定的名的属性/性质/键,也会显示页面。
在算术表达式中,EL 把NULL值看作是 “0”。在逻辑表达式中,EL把NULL 值看作是 “false”。

14. inculde 指令和<jsp:inculde>
include 指令在转换时发生。<jsp:include>标准动作在运行时发生。被包含的页面不能有限制:不能修改响应状态码或设置首部。
不要把开始和结束HTML和BODY标记放在可重用的部件中,设计和编写布局模板部件时,要假设它们会包含在其他页面中。

15. 使用 <jsp:param> 给被包含的页面传递参数。
<jsp:include page="header.jsp" >
<jsp:param value="We are good" name="subTitle"/>
</jsp:include>

14. <jsp:forward>标准动作 千万不要刷新输出,再转发。

15. 强大的定制标记 JSTL <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<c:forEach> 完成循环。
<c:if> 完成条件包含。
<s:set> 设置属性变量。
<c:import url=“www.baidu.com”> 可以把容器之外的内容加载进来。可以跨域请求资源。功能最强大。
<c:param > 配合<c:import> 将参数传递给对应的页面。
<c:url> 可以满足所有的超链接需求。包括URL 重写。
<c:param> 配合 <c:url> 提供查询串。

16. 建立自己的错误页面。
<%@ page isErrorPage = "true"%> <%@ page errorPage="errorPage.jsp"%
在DD(web.xml)中配置错误页面。
根据 <exception-type>或HTTP 状态码<error-code> 声明错误页面。这样可以根据错误的类型向客户显示不同的错误页面。
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/errorPage.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>

<c:catch> 标记就像一种 try catch

17. JSTL 格式化库 核心库 格式化库 XML库 SQL库
taglib <uri> 是一个名,而不是一个位置。

18. 容器会在4个位置查找TLD
1)直接在WEB-INF 目录中查找
2)直接在WEB-INF 的一个子目录中查找
3)在WEB-INF/lib 下的JAR 文件中META-INF 目录中查找
4)在WEB-INF/lib 下的JAR 文件中META-INF 目录中的子目录中查找

19. Web 应用的目录结构要求很严,各个内容只能放在它该放的地方。可以打包为war(Web ARchive)
WAR文件在Web应用上下文有一个META-INF 目录。部署时会检测依赖的包和类。

20. 可以把不允许直接访问的文件放在META-INF 下 或者WEB-INF 下。

21. 三种 <url-pattern> 元素
1)<url-pattern>/Beer/SelectBeer.do</url-pattern>
2)<url-pattern>/Beer/*</url-pattern>
3)<url-pattern>*.do</url-pattern>

22. <welcome-file-list>是用来配置每个目录下默认的访问页面的。会在该目录下顺序地查找。

23. 在DD 中配置servlet 初始化。如果希望在部署的时候加载servlet,而不是等到第一个请求到来时才加载,可以在DD
中使用 <load-on-start> 元素。值的大小决定了加载的顺序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值