【JSP详解】

【JSP详解】

JSP详解

概述

JSP,全称为JavaServer Pages:Java服务端页面,和servlet一样,用于动态web技术。

特点:

JSP语法类似与HTML区别:HTML只给用户提供静态数据;而JSP页面可以嵌入Java代码,用于给用户提供动态数据

原理

服务器内部:tomcat有一个work目录idea中使用tomcat的项目会在idea的tomcat中产生一个work目录jsp页面会转换成java程序浏览器向服务器发送请求时,不管访问什么资源,其实都是在访问servletJSP页面会被转换成一个java类JSP转换成的java程序的类继承了HttpServlet类,JSP本身也是一个servlet类在JSP页面中:只要是java代码就会原封不动的输出,如果是html代码则会转换为形如:out.write(“\n”);的格式,输出到前端。

Jsp的重要结构:

判断请求

内置对象

final javax.servlet.jsp.PageContext pageContext; //页面上下文javax.servlet.http.HttpSession session = null; //sessionfinal javax.servlet.ServletContext application; //applicationContextfinal javax.servlet.ServletConfig config; //configjavax.servlet.jsp.JspWriter out = null; //outfinal java.lang.Object page = this; //page:当前HttpServletRequest request //请求HttpServletResponse response //响应

输出页面前增加的代码

response.setContentType("text/html"); //设置响应的页面类型

pageContext =_jspxFactory.getPageContext(this, request, response, null, true, 8192, true);_jspx_page_context = pageContext;application = pageContext.getServletContext();config = pageContext.getServletConfig();session = pageContext.getSession();out = pageContext.getOut();_jspx_out = out;

以上的这些个对象我们可以在JSP页面中直接使用!

基础语法

JS作为Java技术的一种应用,拥有自己扩充的一些语法(了解即可),且支持所有原Java语法。

注释

<%-- 注释的内容 --%>

JSP表达式

<%= 变量或表达式%>eg:<%= new Date()%>

JSP脚本片段

<% 正常Java代码 %>eg:<% int sum = 0; for (int i = 0; i < 100; i+=10) { sum+=i; out.println("

sum="+sum+"

"); }%>

在脚本片段中嵌入html元素

eg:<% for (int i = 0; i < 5; i++) {%>

<%=i+1%>

个循环

<% }%>

JSP声明 (可以提高代码作用域)

<%! 代码片段,可以定义全局变量 %>eg:<%--JSP生命--%><%! private int globalvar = 0;%>

JSP注释和HTML注释的区别

会在客户端源代码中显示<%-- JSP注释 --%> 不会在客户端源代码中显示

JSP指令(了解即可)

<%@ page args... %><%@ include args... %>

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%-- @include相当于把所有页面合在了一起 --%> <%@include file="common/header.jsp"%>

body

<%@include file="common/footer.jsp"%>
<%-- jsp:include相当于页面拼接,本质上还是分为多个页面 --%>

body

Jsp九大内置对象及其作用域

九大JSP内置对象及其作用域如下:

request:该对象封存了当前请求数据的对象,由web服务器创建,作用域为一次请求。response:该对象用于向客户端发送响应,作用域为一次请求。pageContext:该对象提供了对Jsp页面所有对象及命名空间的访问,作用域为当前页面。session:该对象主要用于跟踪会话,作用域为一次会话。application:该对象即ServletContext对象,封存所有用户的共享数据,作用域为整个应用。out:该对象是javax.servlet.jsp.JspWriter的实例,用于向客户端输出内容,作用域为page。config:该对象是javax.servlet.ServletConfig的实例,包含了servlet的初始化参数,作用域为整个servlet生命周期。page:该对象代表了JSP页面,作用域为当前页面。exception:该对象代表了当前页面出现的异常,作用域为当前页面。

​ 这些内置对象在JSP页面中使用,可以使用局部代码块或者脚本段语句来使用,但注意内置对象的作用域限制。

Jsp四大作用域

JSP四大作用域包括:

pageContext:页面的作用域,其范围仅限于当前页面,离开当前Jsp页面后,pageContext中的所有属性就会丢失。request:请求作用域,代表用户的请求,从发送HTTP请求到服务器,一直到服务器返回数据被称为一个完整的用户请求,在此过程中用户可能通过forward方式跳转多个页面,而放入request中的变量可以在跳转的页面间随意使用。session:会话作用域,用户进入浏览器页面时开始会话,关闭浏览器离开时标志着一个会话的结束,session用于存放服务器查询出来的数据,用户可以在自己的这个会话中随意获取session中的数据。application:应用作用域是最大的,只要服务器不停止,则application对象就一直存在,并且为所有会话所共享。

JSP标签、JSTL标签库、EL表达式

EL表达式:${}

作用:获取数据执行运算获取web开发的常用对象

JSP标签:

JSTL标签库:

JSTL标签库的使用是为了弥补HTML标签的不足;它自定义了多个标签以供使用,标签的功能和Java代码一样

JSTL标签库分为:核心标签、格式化标签、SQL标签、XML 标签,主要用的是核心标签

使用JSTL标签库之前需要先导入标签库,如核心标签

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

Jsp生命周期

JSP的生命周期指从创建到销毁的整个过程。分为以下几个阶段:

编译阶段:

servlet容器编译servlet源文件,生成servlet类

初始化阶段:

加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法

执行阶段:

调用与JSP对应的servlet实例的服务方法

销毁阶段:

调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例

相关手记

beat365英超欧冠比分 女式手工包制作推荐品牌有哪些牌子好用点
beat365英超欧冠比分 实验小鼠饲养科普:小鼠的一生和关于生命的延续
365bet取款要多久 为什么萝卜会飞

为什么萝卜会飞

07-31 👁️ 726
365彩票最新版app下载 支付宝“五福”已有超七千万人集齐 今年能开多少钱?
beat365英超欧冠比分 汽车导航怎样放U盘里的歌曲优质
365bet取款要多久 页游、网游、端游和手游的区别