前言:
第一次了解jsp,完全不知道这个是什么,所以找到一个学习网站来学习:
https://www.w3cschool.cn/jsp/,写了一个浅浅的预习博客。
JSP是什么?
JSP(Java Server Pages,即:Java服务器页面)
JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头,以%>结束。
JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
(和网页设计很像,用到html标签)
JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
JSP结构
(摘自https://www.w3cschool.cn/jsp/)
以下步骤表明了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网页,就好像在处理静态网页一样。
JSP的生命周期
生命周期的几个阶段:
- 编译阶段:servlet容器编译servlet源文件,生成servlet类
- 初始化阶段:加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法
- 执行阶段:调用与JSP对应的servlet实例的服务方法
- 销毁阶段:调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例
jsp编译
当浏览器请求JSP页面时,JSP引擎会首先去检查是否需要编译这个文件。如果这个文件没有被编译过,或者在上次编译后被更改过,则编译这个JSP文件。
jsp编译的过程包括三个步骤:
解析JSP文件。
将JSP文件转为servlet。
编译servlet。
jsp初始化
public void jspInit(){
// 初始化代码;调用jspInit方法()
}
jsp执行
void _jspService(HttpServletRequest request,HttpServletResponse response)//需要两个对象作为参数
{
// 服务端处理代码;调用jspService方法
}
jsp清理
public void jspDestroy()
{
// 清理代码,调用jspDestroy方法()
}
JSP语法
jsp脚本
脚本程序的语法格式:
<% 代码片段 %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
Hello World!<br/>
<%
out.println("Your IP address is " + request.getRemoteAddr());
%>
</body>
</html>
jsp声明
<%!java代码 %>
<%! int i = 0; %>
<%! int a, b, c; %>
jsp表达式
JSP表达式的语法格式:
<%= 表达式 %>
<html>
<head>
<title>A Comment Test</title>
</head>
<body>
<p>
Today's date: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body>
</html>
jsp注释
<%-- 这里可以填写 JSP 注释 --%>`
<html>
<head>
<title>A Comment Test</title>
</head>
<body>
<h2>Bulemsun</h2>
<%-- 该部分是注释,不会显示,看不到--%>
</body>
</html>
jsp指令
<%@ page attribute="value" %>