pageEncoding="UTF-8"%>
Insert title here 大数据2005班 <%response.getWriter().print("欢迎你"); %>
![在这里插入图片描述](https://img-blog.csdnimg.cn/36908a4bd42c4d049b10bacff2363c98.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bKyICDlsbHmtbfnu48=,size_12,color_FFFFFF,t_70,g_se,x_16)
#### 6.1.3JSP运行原理
![在这里插入图片描述](https://img-blog.csdnimg.cn/4fa309429ea14e1ca29b48973376d0b8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bKyICDlsbHmtbfnu48=,size_20,color_FFFFFF,t_70,g_se,x_16)1.通过浏览器首次访问jsp时
2.JSP容器会生成对应的Servlet文件,也就是.java文件
3.JSP容器,会把java文件编译对应的class文件
4.JSP容器,会生成对应的servlet对象
5.通过生成的servlet对象,去处理浏览器发送的请求,响应数据给浏览器。
D:\java web\day7\apache-tomcat-8.5.71\work\Catalina\localhost\chapter07\org\apache\jsp
![在这里插入图片描述](https://img-blog.csdnimg.cn/ab0da84fb4a9421999916c4578894262.png)
### 6.2 jsp基本语法
#### 6.2.1JSP脚本元素
在jsp页面书写java的三种形式:
1.可以声明语句和方法
2.可以书写java代码段
3.可以书写表达式
在JSP脚本元素在<%%>中嵌套一条或者多条java代码。
在jsp页面里可以书写java代码片段,基本语法:<% java代码片段 %>
JSP 声明语句:对应的位置生成在了成员位置。
在jsp里面可以书写变量和方法:基本语法:
<%!
定义变量或者方法
%>
JSP 表达式:对应的位置生成在 \_jspService方法内部。
在jsp页面,可以输入一个结果,基本语法:<%=表达式 %>,其实就等同于out.print(); ,注意:表达式后面不能书写分号
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
Insert title here <%! int a=1 ,b=2; public String dashuju(){ String str="dashuju"; return str; } %> <% out.print(a+b); %> <%response.getWriter().print("huagong"); %> <%=a+b %> <%=dashuju() %>
![在这里插入图片描述](https://img-blog.csdnimg.cn/52432aa3c39a47ee890dc32d0d52f698.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bKyICDlsbHmtbfnu48=,size_19,color_FFFFFF,t_70,g_se,x_16)
#### 6.2.2 JSP注释
<%-- 注释信息 --%>
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8” session=“true”%>
Insert title here htm内容
<%//java 注释
System.out.print(“java 注释”);
%>
<%–jsp 注释–%>>
### 6.3JSP指令
#### 6.3.1page指令
page指令的用途是设置与jsp页面相关的信息,比如说设置jsp页面的编码,jsp页面的默认语言等
基本语法格式:<%@ page 属性=“属性值” 属性=“属性值” 属性=“属性值” %>
比如:
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
常用属性:
language: 默认语言java,也就是只有java一种语言。
pageEncoding:设置jsp的编码格式,一般情况下可以省略 contentType这个属性。
session属性:值得类型是boolean,如果对应的值是true,在jsp页面可以使用session对象,反之就不能使用。
import属性:导包,和在java里面使用一样,如果想使用某个类,前提导入某个类的包名。
![在这里插入图片描述](https://img-blog.csdnimg.cn/f269e874e82046a7b9b2d4be844dd952.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bKyICDlsbHmtbfnu48=,size_20,color_FFFFFF,t_70,g_se,x_16)
#### 6.3.2include指令
在jsp页面通常会需要显示其它页面的信息,所以可以通过这个include指令把其它页面包含过来。
基本语法:<%@ include file=“被包含文件的url” %>
创建两个jsp页面: date.jsp页面,include.jsp页面。
使用jsp的include指令实现的包含,又称为静态包含,静态包含的特点:
1.把多个页面的内容,合并输出,比如把date.jsp 和 include.jsp内容合并输出。
2.多个页面对应生成一个java文件,编译后,对应一个class文件。
例如:
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<%@page import=“java.util.Date” %>
Insert title here date.jsp页面用来输出当前时间 <%out.print(new Date().toLocaleString()); %> <%out.print(new java.util.Date()); %>
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
Insert title here 我是include页面,下我包含进来的页面 <%@ include file="date.jsp" %>
![在这里插入图片描述](https://img-blog.csdnimg.cn/24291a563372467c91266c066e64b9eb.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bKyICDlsbHmtbfnu48=,size_20,color_FFFFFF,t_70,g_se,x_16)
### 6.4JSP隐式对象
#### 6.4.1 隐式对象概述:
什么是隐式对象:在jsp页面里面,jsp提供了一些对象,不用咱们自己创建,可以直接使用的对象。
jsp常见的九大隐式对象:
request: HttpServletRequest,请求对象,它同时也是域对象,作用范围一次请求
response:HttpServletResponse,响应对象
session: HttpSession ,会话对象,它同时也是域对象,作用范围一次会话
application:ServletContext,上下文对象,它同时也是域对象,作用范围整个项目
config:ServletConfig,配置对象
out:JspWriter,其实和PrintWriter作用差不多。
page:Object ,代表当前jsp的页面对象
pageContext:PageContext ,jsp容器
exception:Throwable,异常对象,用来捕获异常信息。
只有当前jsp页面有isErrorPage="true"这个属性时,才能使用exception对象。
#### 6.4.2 out对象
out对象在输出内容到网页上面去,最终是通过reponse缓冲区给输出的。
![在这里插入图片描述](https://img-blog.csdnimg.cn/4b5db888a32f4f6eb2cf5c22f6858f18.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bKyICDlsbHmtbfnu48=,size_20,color_FFFFFF,t_70,g_se,x_16)
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
Insert title here <% out.print("first line
");
response.getWriter().print(“seconde line
”);
%>
![在这里插入图片描述](https://img-blog.csdnimg.cn/75ac9cc65f204a8a8e99046f208f03fe.png)
#### 6.4.3pageContext对象
第一个功能:获取其它八个隐式对象
1.获取请求对象:getRequest();
2.获取响应对象:getResponse();
3.获取输出对象:getOut();
![在这里插入图片描述](https://img-blog.csdnimg.cn/f58ddabee89a4af7a752bb773da781d5.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bKyICDlsbHmtbfnu48=,size_20,color_FFFFFF,t_70,g_se,x_16)
第二个功能:操作其它三个域对象:request、session、application.
pageContext也是一个域对象:作用范围在当前jsp页面。
操作其它三个域对象的方法:
1.存值:setAttribute(String key,Object obj,int scope);
APPLICATION\_SCOPE :对应的是application:表示web应用程序范围
REQUEST\_SCOPE: 对应的是request:表示请求范围
SESSION\_SCOPE:对应的是session:表示会话范围
PAGE\_SCOPE:对应的是自己 pageContext:表示页面范围
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
Insert title here <% out.print("2020080605013"+"龚于权");%>
<% //获取request对象 HttpServletRequest req=(HttpServletRequest) pageContext.getRequest();
//req.setAttribute("req", "dashuju");
pageContext.setAttribute("dashu1","pagecontext",PageContext.PAGE_SCOPE);
pageContext.setAttribute("dashu2","REQUEST",PageContext.REQUEST_SCOPE);
pageContext.setAttribute("dashu3","SESSION",PageContext.SESSION_SCOPE);
pageContext.setAttribute("dashu4","APPLICATION",PageContext.APPLICATION_SCOPE);
%>
<%=pageContext.findAttribute(“dashu4”) %>
<%=(String)req.getAttribute(“dashu”)%>
![在这里插入图片描述](https://img-blog.csdnimg.cn/b33f2071de1c4e5dacaa4501334b44a9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bKyICDlsbHmtbfnu48=,size_20,color_FFFFFF,t_70,g_se,x_16)
#### 6.4.4exception对象
exception 对象它是用来捕获异常信息的。
它用于封装JSP中抛出的异常信息,即page指令中指定了属性<%@ page isErrorPage=“true” %>
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8” errorPage=“error.jsp”%>
Insert title here <%int a=3,b=0;
%>
输出:<%=(a/b) %>
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8” isErrorPage=“true”%>
版权归原作者 2401_87389817 所有, 如有侵权,请联系我们删除。