JSP页面基本规则
1) 什么是JSP
sun公司制定的一种服务器端的动态页面技术规范
注: 因为虽然可以使用servlet生成动态页面,但是过于繁琐(需要使用out.Println()输出),并且不利于页面的维护(如: 修改移民啊就必须修改java代码),所以sun才制定了JSP规范.JSP是一个以”.jsp”为后缀的文件,该文件主要内容是html(包括css,js)及少量的Java代码,容器会将jsp转换成一个对应的servlet然后执行,也就是说jsp本质就是一个servlet
2) 添加的代码片段
html css js
java代码
java代码片段 <% java代码 %>
jsp表达式 <%= java表达式 %>
3) 隐含对象
什么是隐含对象
在jsp里面,可以直接使用的对象,比如out,request,response
为什么可以直接使用这些隐含对象
应为容器会生成获得这些对象的代码
4) 指令
什么是指令
可以使用指令来告诉容器,在将jsp转换成servlet时做一些额外的处理,比如导包
语法 <%@ 指令名 属性=值 属性=值 %>
注: 属性可以有多个,属性之间使用空格隔开
page指令
import属性:导包,比如
<%@ page import=“java.util." %>
<%@ page import="java.util.,java.text.*”%>
contentType属性:设置response.setContentType方法的值 contentType=“text/html; charset=utf-8”
pageEncoding属性:设置jsp文件的编码。告诉容器,在读取jsp文件的内容时,使用指定的字符集来解码 pageEncoding=“utf-8”
5) Jsp如何执行的
容器会将.jsp文件转换成一个.java文件(将jsp转换成servlet)
html(css,js)—>在service方法里面,使用out.println()输出
注(了解): write方法会将null转换成""输出,而println方法会输出null。
<% %> ------> 照搬到service方法里面。
<%= %> ------> 在service方法里面,使用out.print输出
容器调用该servlet。
容器会将servlet编译,然后实例化,初始化,并调用service方法。
6) 为何有JSP
- HTML是静态网页,内容固定。适合内部不变的信息
- Servlet可以出来动态内容,拼接HTML标签,书写繁琐。
- Sun设计了JSP,采用类似于HTML的语法书写Servlet
7) JSP工作原理: - 将JSP文件先翻译为 .java 的Servlet源文件。
- 将 .java 的Servlet源文件编译为 .class
- 运行时候执行 .class 文件。
8) JSP优点: - 可以利用传统HTML编辑器编写JSP
- Java自动完成翻译工作。减少了编程量。
9) JSP适合作为显示界面–“视图”,与Servlet搭配使用 - Servlet负责数据计算,业务处理
- JSP负责将计算结果和业务处理结果拼接为HTML,显示给用户。
10) 从JSP的4个Scope中查询数据,从小到大依次查询
page pageContext 就是当前JSP页面内部
request
session
application 就是 ServletContext 对象
如果重名则使用 requestScope.list 或者 sessionScope.list 指定查找某个范围
11) JSP内置对象
A. 9大内置对象
a) 为何有9大内置对象
使用方便:不用声明变量,不用初始化,直接使用
已经预定好的变量: - -out JSPWriter 常见考点 out对象用于向页面输出信息
- -request HttpServletRequest request用于获取浏览器发送来的请求信息
- -response HttpServletResponse response用于向浏览器发送响应数据
- -session HttpSession session代表当前的会话对象
- -application ServletContext application 代表当前ServletContext
- -分界线 上边常用 下边不常用
- -config ServletConfig config代表JSP页面配置信息
- -page Servlet 当前对象引用 page代表当前页面对象,用于访问当前对象的属性或方法
- -pageContext PageContext 是当前页面的上下文(管家),用于管理其他的内置对象,用于在当前页面内部共享数据
<%
JspWriter o = pageContext.getOut();
o.print(“试试???”);
pageContext.setAttribute(“msg”, “测试信息”);
String msg = (String) pageContext.getAttribute(“msg”);
out.println(msg);
%> - -exception Exception 只有在异常处理页面使用 代表其他页面传递过来的异常