1. 什么是jsp,它有什么作用?
- jsp的全称是Java Server Pages. Java服务器页面
- jsp的主要作用就是代替servlet程序回传html页面的数据
- 因为servlet程序回传html页面数据是一件非常繁琐的事情。开发成本和维护成本
- jsp页面的本质上是一个servlet程序
2. jsp的常用脚本:
-
声明脚本:
- 声明脚本的格式是:<%! 声明Java脚本代码%>
- 作用: 可以给jsp翻译出来的Java类定义属性和方法甚至是静态代码块。内部类等。
jsp文件:
<%--1.声明类属性--%> <%! private Integer id; private String name; private static Map<String, Object> map; %> <%--2.声明static静态代码块--%> <%! static { map = new HashMap<String, Object>(); map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3"); } %> <%--3.声明类方法--%> <%! public int abc(){ return 12; } %>
-
表达式脚本:
- 表达式脚本的格式是: <%=表达式%>
- 表达式脚本的作用是: 在jsp页面上输出数据
- 表达式脚本的特点:
- 所有的表达式脚本都会被翻译到jspService方法中
- 表达式脚本都会被翻译成伟out.print()输出到页面上
- 由于表达式脚本翻译的内容都在_jspService方法中,所以_jspService()方法中的对象都可以使用
- 表达式中的表达式不能以分号结束
<%--输出整型--%> <%= 12%> </br> <%= "我是字符串"%> </br> <%= map%> </br> <%= request.getParameter("username")%> </br>
-
代码脚本:
- 代码脚本的格式是: <% Java语句 %>
- 代码脚本的作用是可以在jsp页面中编写我们自己需要的功能(写的是java语句)
- 代码脚本的特点是:
- 代码脚本翻译之后都在jspService方法中
- 代码脚本由于翻译到jspService方法中,所以在jspService方法中现有的对象都可以直接使用
- 代码脚本还可以由多个代码脚本块组合完成的java语句
示例1:
jsp文件:<table> <% for (int j = 0; j < 10; j++){ %> <tr> <td>第<%=j+1%>行</td> </tr> <% } %> </table>
网页output:
示例二:
jsp文件:
<% int i = 13; if (i == 12) { %> <h1>我不帅!</h1> <% } else { %> <h1>我真帅!</h1> <% } %>
网页output:
3. jsp中的9大内置对象:
- request: 请求对象
- response: 响应对象
- pageContext: jsp的上下文对象
- session 会话对象:
- application: ServletContext对象:
- config: ServletConfig对象
- out: servlet输出流对象
- page: 指向当前jsp对象
- exception: 异常对象
4. jsp四大域对象:
- 四个域对象分别是:
- pageContext(PageContextImpl类): 当前jsp页面范围内有效
- request(HttpServletRequest类): 一次请求内有效
- session(HttpSession类): 一次会话范围内有效(打开浏览器访问服务器,直到关闭浏览器)
- application(ServletContext类): 整个web工程范围内都有效(只要web工程不停止,数据都在)
- 域对象是可以像Map一样存取数据的对象。四个域对象功能一样。不同的是他们对数据的存取范围
- 虽然四个域对象都可以存取数据。在使用上他们是有优先顺序的。
- 四个域在使用的时候,优先顺序分别是,他们从小到大的顺序:
pageContext ⇒ request ⇒ session ⇒ application
5. jsp的请求转发标签:
<jsp:forward page="/路径"></jsp:forward>