1 JSP简介
1.JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
2.JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
3.JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
4.JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。
2 JSP生命周期
1.编译阶段:
Servelet容器编译Servelet源文件,生成servelet类
2.初始化阶段
加载与JSP对应的Servelet类,创建其实例,并调用它的初始化方法
3.执行阶段
调用与JSP对应的Servelet实例的服务方法
4销毁阶段
调用与JSP对应的Servelet实例的销毁方法,然后销毁Servelet实例
3 指令:
1.<%@ page … %>定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等
2.<%@ include … %> 包含其他文件
3.<%@ taglib … %>引入标签库的定义,可以是自定义标签
4注释:
- html注释:
<!-- -->
:只能注释html代码片段 - jsp注释:
<%-- --%>
:可以注释所有 - 标签:
<% 代码片段%>
5九大内置对象:
1.final javax.servlet.jsp.PageContext pageContext;
PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
2.javax.servlet.http.HttpSession session
HttpSession类的实例
3.final javax.servlet.ServletContext application;
ServletContext类的实例,与应用上下午有关
4.final javax.servlet.ServletConfig config;
ServletConfig类的实例
5.javax.servlet.jsp.JspWriter out
PrintWriter类的实例,用于把结果输出至网页上
6.final java.lang.Object page = this;
类似于Java类中的this关键字
7.final javax.servlet.http.HttpServletRequest request
HttpServletRequest类的实例
8.final javax.servlet.http.HttpServletResponse response
HttpServletResponse类的实例
9.Exception
Exception类的对象,代表发生错误的JSP页面中对应的异常对象
6JSP作用域
1.pageContext(页面域):pageContext有效范围仅限于当前页面 , 可以近似理解为this对象 , 在离开当前页面后 , 无论是request或redirect等方式离开的 , 当前页面的相关属性值都会丢失。
2.request(请求域):request表示一次请求 , 它的有效范围是当前请求周期 . 所谓请求周期 , 就是从http发送请求 , 到服务器接收并处理请 , 将结果返回到客户端响应 . 在这一过程中 , 可能使用forward跳转了多个jsp页面 , 而在这多个jsp页面中属性值都有效. 但如果是通过redirect方式进行跳转 , 则重新发送请求 , 这样属性值就会丢失。
3.session(会话域):session有效范围是当前会话。当前会话表示浏览器打开到浏览器关闭这一过程。但这会出现这种情况,如果浏览器一直处于打开状态,这样session永远不会销毁,而且在浏览器关闭时并不会通知服务器,另外session是存放在服务器的内存上,这样对服务器是一种负担,所以通过这种方法来判断:如果一段时间内客户端没有响应,则认为会话结束。
4.application(应用域):application有效范围为整个应用,从应用开启到应用结束。在服务器停止之前,应用没有结束,application对象都有效,可以被所有会话共享。
7.代码示例
写法一:
<%
for(int i=1;i<=6;i++){
out.print("<h"+i+">Java是世界上最好的语言!</h"+i+">");
}
%>
写法二:
<%
for(int i=1;i<=6;i++){
%>
<h<%=i%>>Java是世界上最好的语言!!!</h<%=i%>>
<%
}
%>