8.3Jsp的三种语法
8.3.1jsp 头部的 page 指令
jsp 的 page 指令可以修改 jsp 页面中一些重要的属性,或者行为。
errorPage 表示错误后自动跳转去的路径。这个路径一般都是以斜杠打头,它表示请求地址为 http://ip:port/工程路径/ 映射到代码的 Web 目录。
8.3.2jsp 中的常用脚本
1、声明脚本(几乎不使用):
声明脚本的格式是:<%!声明脚本代码%>
作用:可以给 jsp 翻译出来的 java 类定义属性和方法甚至是静态代码块。内部类等。
1. <%--1、声明类属性--%>
2. <%!
3. private Integer id;
4. private String name;
5. private static Map<String,Object> map;
6. %>
7. <%--2、声明 static 静态代码块--%>
8. <%!
9. static {
10. map = new HashMap<String,Object>();
11. map.put("key1", "value1");
12. map.put("key2", "value2");
13. map.put("key3", "value3");
14. }
15. %>
16. <%--3、声明类方法--%>
17. <%!
18. public int abc(){
19. return 12;
20. }
21. %>
22. <%--4、声明内部类--%>
23. <%!
24. public static class A {
25. private Integer id = 12;
26. private String abc = "abc";
27. }
28. %>
2、 表达式脚本(推荐使用):
表达式脚本的格式是:<%=表达式%>
表达式脚本的作用是:的 jsp 页面上输出数据
表达式脚本的特点:
(1) 所有的表达式脚本都会被翻译到_jspService() 方法中;
(2) 表达式脚本都会被翻译成为 out.print()输出到页面上;
(3) 由于表达式脚本翻译的内容都在_jspService() 方法中,所以_jspService()方法中的对象都可以直接使用;
(4) 表达式脚本中的表达式不能以分号结束。
1. <%=12 %> <br>
2. <%=12.12 %> <br>
3. <%="我是字符串" %> <br>
4. <%=map%> <br>
5. <%=request.getParameter("username")%>
3、 代码脚本
代码脚本的格式是:<% java语句 %>
代码脚本的作用是:可以在 jsp 页面中,编写我们自己需要的功能(写的是 java 语句)。
代码脚本的特点是:
代码脚本翻译之后都在_jspService 方法中;
1、 代码脚本由于翻译到_jspService()方法中,所以在_jspService()方法中的现有对象都可以直接使用;
2、 还可以由多个代码脚本块组合完成一个完整的 java 语句;
3、 代码脚本还可以和表达式脚本一起组合使用,在 jsp 页面上输出数据。
8.3.3jsp 中的三种注释
1、HTML注释:
,html 注释会被翻译到 java 源代码中。在_jspService 方法里,以 out.writer。
2、jsp注释:<%-- 这是jsp注释 --%>,jsp 注释可以注掉,jsp 页面中所有代码。
3、java注释:单行注释、多行注释,java 注释会被翻译到 java 源代码中。
8.4jsp 九大内置对象
jsp 中的内置对象,是指 Tomcat 在翻译 jsp 页面成为 Servlet 源代码后,内部提供的九大对象,叫内置对象。
8.5jsp 四大域对象
域对象是可以像 Map 一样存取数据的对象。四个域对象功能一样。不同的是它们对数据的存取范围。虽然四个域对象都可以存取数据。在使用上它们是有优先顺序的。
四个域在使用的时候,优先顺序分别是,他们从小到大的范围的顺序:
pageContext ====>>> request ====>>> session ====>>> application
8.6jsp 中的 out 输出和 response.getWriter 输出的区别
response 中表示响应,我们经常用于设置返回给客户端的内容(输出);
out 也是给用户做输出使用的。
由于 jsp 翻译之后,底层源代码都是使用 out 来进行输出,所以一般情况下。我们在 jsp 页面中统一使用 out 来进行输出。避免打乱页面输出内容的顺序。
out.write() 输出字符串没有问题;
out.print() 输出任意数据都没有问题(都转换成为字符串后调用的 write 输出)。
在 jsp 页面中,可以统一使用 out.print()来进行;