jsp 基础总结
- 全称:java server pages
- 文件名后缀:.jsp
- 服务端脚本语言
一、开发环境设置
- 配置jdk
- 设置tomcat
二、运行原理
(图片来源网络,侵删!)
Web服务器运行JSP来创建网页的步骤:
- 浏览器发送一个HTTP请求给服务器。
- Web服务器识别出JSP网页的请求,并且将该请求传递给JSP引擎。(通过使用URL或者.jsp文件来完成。)
- JSP引擎从磁盘中载入JSP文件,然后将它们转化为servlet。这种转化只是简单地将所有模板文本改用println()语句,并且将所有的JSP元素转化成Java代码。
- JSP引擎将servlet编译成可执行类,并且将原始请求传递给servlet引擎。
- Web服务器的某组件将会调用servlet引擎,然后载入并执行servlet类。在执行过程中,servlet产生HTML格式的输出并将其内嵌于HTTP response中上交给Web服务器。
- Web服务器以静态HTML网页的形式将HTTP response返回到您的浏览器中。
- 最终,Web浏览器处理HTTP response中动态产生的HTML网页,就好像在处理静态网页一样。
三、生命周期
(图片来源网络,侵删!)
- 编译阶段:servlet容器编译servlet源文件,生成servlet类
- 初始化阶段:加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法-jspInit
- 执行阶段:调用与JSP对应的servlet实例的服务方法-_jspService
- 销毁阶段:调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例-jspDestroy
四、语法
代码片段:
1
2<% code %>
<jsp:scriptlet> code </jsp:scriptlet>
声明变量/方法:
1
2<%! declarations; %>
<jsp:declarations> declarations </jsp:declarations>
表达式:
1
2<%= expression %>
<jsp:expression> expression </jsp:expression>注释:
1
<%-- --%>
控制流:
条件:
- if … else
- switch … case
循环:
- for
- while
- do … while
运算符(略)
常量:
1
Boolean, Integer, String, Null, Floating
指令:
<%@ directive attribute=”value” %>
1
2
3<%@ page %> 定义业务依赖属性,比如脚本语言,erro页面
<%@ include %> 引入其他文件
<%@ taglib %> 引入标签库行为:
1
<jsp:action_name attribute="value" />
1
2
3
4
5
6
7
8
9
10jsp:include: 用于在当前页面中包含静态或动态资源
jsp:useBean: 寻找和初始化一个JavaBean组件
jsp:setProperty: 设置 JavaBean组件的值
jsp:getProperty: 将JavaBean组件的值插入到output中
jsp:forward: 从一个JSP文件向另一个文件传递一个包含用户请 求的request对象
jsp:plugin: 用于在生成的HTML页面中包含Applet和JavaBean对象
jsp:element: 动态创建一个XML元素
jsp:attribute: 定义动态创建的XML元素的属性
jsp:body: 定义动态创建的XML元素的主体
jsp:text: 用于封装模板数据
隐含对象:
1
2
3
4
5
6
7
8
9request: HttpServletRequest类的实例
response: HttpServletResponse类的实例
out: PrintWriter类的实例,用于把结果输出至网页上
session: HttpSession类的实例
application: ServletContext类的实例,与应用上下文有关
config: ServletConfig类的实例
pageContext: PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
page: 类似于Java类中的this关键字
Exception: Exception类的对象,代表发生错误的JSP页面中对应的异常对象异常:
- Exception, 只在错误页面中使用
- try … catch
调试
- 使用System.out.println()
- 使用java.util.logging.Logger