Java Webday7

目录

六、JSP技术
6.1 JSP概述
6.1.1 什么是JSP
6.1.2 编写第一个 JSP文件
6.1.3 JSP运行原理
6.2 JSP基本语法
6.2.1 JSP脚本元素
6.2.2 JSP注释
6.3 JSP指令
6.3.2 include指令
6.4 JSP隐式对象
6.4.1 隐式对象的概述
6.4.2 out对象
6.4.3 pageContext对象
6.4.4 exception对象

六、JSP技术

6.1 JSP概述
在动态网页开发中,经常需要动态生成HTML内容,例如,-篇新闻报道的浏览次数需要动态生成。这时,如果使用Servlet来实现HTML页面数据的统计,需要调用大量的输出语句,使静态内容和动态内容混合在一起, 导致程序非常臃肿。为了克服Servet的这些缺点,Oracie(Sun)公司推出了JSP技术。

6.1.1 什么是JSP
JSP英文全称Java Server Pager ava服务端页面,它是建立在servlet规范基础上的动态网页开发技术。
jsp文件中,HTML 代码和Java代码共同存在。JSP文件的扩展名为.jsp

6.1.2 编写第一个 JSP文件

在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
大数据2005<%response.getWriter().print("欢迎你"); %> 
</body>
</html>

在这里插入图片描述

sp生成java文件,编译成class文件,存在tomcat服务器的work目录。
注意:修改jsp的默认编码格式:window---------->preferenes-----> 搜索 jsp -----> 选中编码 进行修改成(utf-8)
在这里插入图片描述

6.1.3JSP运行原理
在这里插入图片描述
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
在这里插入图片描述
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"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
int a=1 ,b=2;
public String dashuju(){
	String str="dashuju";
	return str;
}
%>
<% out.print(a+b); %>
<%response.getWriter().print("huagong"); %>
<%=a+b %>
<%=dashuju() %>
</body>
</html>

在这里插入图片描述
6.2.2 JSP注释
<%-- 注释信息 --%>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" session="true"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
htm内容
<!--html 注释  -->

<%//java 注释 
System.out.print("java 注释");

%>

<%--jsp 注释--%>>
</body>
</html>

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里面使用一样,如果想使用某个类,前提导入某个类的包名。
在这里插入图片描述
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" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
date.jsp页面用来输出当前时间
<%out.print(new Date().toLocaleString()); %>
<%out.print(new java.util.Date()); %>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
我是include页面,下我包含进来的页面
<%@ include file="date.jsp" %>
</body>
</html>

在这里插入图片描述
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缓冲区给输出的。
在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
out.print("first line <br />");

response.getWriter().print("seconde line <br />");
%>
</body>
</html>

在这里插入图片描述
6.4.3pageContext对象
第一个功能:获取其它八个隐式对象
1.获取请求对象:getRequest();
2.获取响应对象:getResponse();
3.获取输出对象:getOut();
在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% out.print("2020080605044"+"白振川");%>
<hr/> <br />
<%		//获取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")%>
</body>
</html>

6.4.4exception对象
exception 对象它是用来捕获异常信息的。
它用于封装JSP中抛出的异常信息,即page指令中指定了属性<%@ page isErrorPage=“true” %>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" errorPage="error.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%int a=3,b=0;

%>
输出:<%=(a/b) %>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isErrorPage="true"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
用来显示错误信息
<%=exception.getMessage() %>

</body>
</html>

在这里插入图片描述
2020080605044

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bai3322732541

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值