Javaweb 7
六、JSP技术 6.1 JSP概述
在动态网页开发中,经常需要动态生成HTML内容,例如,-篇新闻报道的浏览次数需要动态生成。这时,如果使用Servlet来实现HTML页面数据的统计,需要调用大量的输出语句,使静态内容和动态内容混合在一起, 导致程序非常臃肿。为了克服Servet的这些缺点,Oracie(Sun)公司推出了JSP技术。
6.1.1 什么是JSPJSP英文全称Java Server Pager ava服务端页面,它是建立在servlet规范基础上的动态网页开发技术。
jsp文件中,HTML 代码和Java代码共同存在。JSP文件的扩展名为.jsp
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
JSP的运行过程具体如下
(1)客户端发出请求,请求访问JSP文件。
(2 )JSP容器先将JSP文件转换成一个Java源文件( Java Serlet源程序),在转换过程中,如果发现JSP文件申存在任何语法错误,则中断转换过程,并向服务端和客户端返回出错信息。
(3)如果转换成功,则JSP容器将生成的Java源文件编译成相应的字节码文件.classo该class文件就是一个Servlet, Servlet 容器会像处理其他Servlet 一样来处理它。
(4) 由Servlet 容器加载转换后的 Servlet类( class 文件)创建一个该Servlet (JSP页面的转换结果)实例,并执行Servlet的jsplnit()方法。jsplnit()方法 在Servlet的整个生命周期中只会执行一次。
(5)执行jspService()方法来处理客户端的请求。
生成的 .java .class文件在
D:JavaWebclassapache-tomcat-8.5.71orkCatalinalocalhostchapter07apachejsp
目录下
JSP脚本元素主要包含如下三种类型
JSP scriptlets
JSP 声明语句
JSP 表达式
JSP scriptlets
JSP scriptlets是一段代码段。当需要使用Java实现一些复杂操作或控制时,可以使用它。
JSP scriptlets格式
<% java代码(变量、方法、表达式等) %>
JSP 声明语句
JSP的声明语句用于声明变量和方法,它以“<%!”开始,以“%>”结束
<%!
定义的变量或方法等
%>
JSP 表达式
对应的位置生成在 _jspService方法内部。
在jsp页面,可以输入一个结果,基本语法<%=表达式 %>,其实就等同于out.print();
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<% out.print(a+b); %>6.2.2 JSP注释
<% response.getWriter().print("huagong"); %>
<% out.print(dashuju()); %>
<%=a+b %>
<%=dashuju() %>
格式<%-- 注释信息 --%>
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8” session=“true”%>
<% //java注释 System.out.print("java 注释"); %> <%--jsp注释 --%>6.3 JSP指令
在JSP页面中,经常需要对页面的某些特性进行描述,格式如下
<%@ page 属性名1=“属性值1” 属性名2=“属性值2” …… %>
在上述语法中,page 用于声明指令名称,属性用来指定JSP页面的某些特性。
6.3.2 include指令
在jsp页面通常会需要显示其它页面的信息,所以可以通过这个include指令把其它页面包含过来。
格式
<%@ include file=“被包含文件的url” %>
创建date.jsp页面,include.jsp页面。
把多个页面的内容,合并输出。
多个页面对应生成一个java文件,编译后,对应一个class文件。
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<%@ page import=“java.util.Date” %>
在JSP页面中,有一些对象需要频繁使用,如果每次都重新创建这些对象则会非常麻烦。为了简化Web应用程序的开发,JSP2.0规范中提供了9个隐式(内置)对象,它们是JSP默认创建的,可以直接在JSP页面中使用。
6.4.2 out对象out对象在输出内容到网页上面去,最终是通过reponse缓冲区给输出的。
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
response.getWriter().print("second line6.4.3 pageContext对象
2020080605012 杨骏
"); %>
在JSP文件中,使用pageContext对象可以获取JSP的其他8个隐式对象。
pageContext对象不仅提供了获取隐式对象的方法,还提供了存储数据的功能。pageContext对象存储数据是通过操作属性来实现的。
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
pageContext.setAttribute("dashu11","pageContext",PageContext.PAGE_SCOPE); pageContext.setAttribute("dashu22","REQUEST",PageContext.REQUEST_SCOPE); pageContext.setAttribute("dashu33","SESSION",PageContext.SESSION_SCOPE); pageContext.setAttribute("dashu","APPLICATION",PageContext.APPLICATION_SCOPE); %> <%=pageContext.findAttribute("dashu") %>6.4.4 exception对象
<%=(String) req.getAttribute("dashu") %>
exception 对象它是用来捕获异常信息的。
它用于封装JSP中抛出的异常信息,即page指令中指定了属性
<%@ page isErrorPage=“true” %>
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8” errorPage=“error.jsp”%>
2020080605030 文辉 <%=exception.getMessage() %> 2020080605030
空调维修
- 海信电视维修站 海信电视维修站点
- 格兰仕空调售后电话 格兰仕空调维修售后服务电
- 家电售后服务 家电售后服务流程
- 华扬太阳能维修 华扬太阳能维修收费标准表
- 三菱电机空调维修 三菱电机空调维修费用高吗
- 美的燃气灶维修 美的燃气灶维修收费标准明细
- 科龙空调售后服务 科龙空调售后服务网点
- 华帝热水器维修 华帝热水器维修常见故障
- 康泉热水器维修 康泉热水器维修故障
- 华凌冰箱维修电话 华凌冰箱维修点电话
- 海尔维修站 海尔维修站点地址在哪里
- 北京海信空调维修 北京海信空调售后服务
- 科龙空调维修 科龙空调维修故障
- 皇明太阳能售后 皇明太阳能售后维修点
- 海信冰箱售后服务 海信冰箱售后服务热线电话
- 海尔热水器服务热线