JSP详解

一、什么是jsp

  • jsp的全称是java server pages,java的服务器页面

  • jsp的主要作用是代替Servlet程序回传html页面的数据

  • 因为Servlet程序回传html页面数据是一种非常繁琐的事情,开发成本和维护成本都极高

二、jsp如何访问

  • jsp页面和html页面一样,都是存放在web目录下,访问也跟访问HTML一样
http://ip:port/工程路径/a.html
http://ip:port/工程路径/b.jsp

三、jsp的本质是什么

  • jsp页面本质是一个Servlet程序
  • 当我们第一次访问jsp页面的时间,tomcat服务器会帮我们把jsp页面翻译成为一个java源文件,并且对它进行编译成为.class字节码程序。

四、jsp的三种语法

1. jsp头部的page指令

  • jsp的page指令可以修改jsp页面的一些重要的属性
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
  1. language属性 表示jsp翻译后是什么语言文件,只支持java
  2. content属性 表示jsp返回的数据类型是什么
  3. pageEncoding属性 表示当前jsp页面文件本身的字符集
  4. import属性 用于导包、导类
  5. autoFlush属性 设置当out输出流缓冲区满了之后,是否自动刷新缓冲区,默认是true
  6. buffer属性 设置out缓冲区的大小,默认是8kb
  7. errpage属性 设置当jsp页面运行时出错,自动跳转去的错误页面路径
  8. isErrorPage属性 设置当前jsp页面是否是错误信息页面,默认是false
  9. session属性 设置访问当前jsp页面,是否会创建HTTPSession对象
  10. extends属性 设置jsp翻译出来的java类默认继承谁

2. jsp的常用脚本

2.1 声明脚本

<%!  声明java代码 %>
  • 可以给jsp翻译出来的java类定义属性和方法甚至静态代码块,内部类等

2.2 表达式脚本

<%= 表达式   %>
  • 在jsp页面上输出数据

2.3 代码脚本

<%
						java代码                    
%>
  • 可以在jsp页面中,编写我们自己需要的功能

3. jsp的三种注释

3.1 html注释

<!--  
       html注释
       -->

3.2 java注释

<%  //java注释   %>

3.3 jsp注释

<%--<button onclick="ajax()">按钮</button>--%>

五、jsp九大内置对象

jsp中的内置对象,是指tomcat在翻译jsp页面成为Servlet源代码后,内置提供的九大对象,叫内置对象

  • request

请求对象

  • response

响应对象

  • pageContext

jsp的上下文对象

  • session

会话对象

  • application

ServletContext对象

  • config

ServletConfig对象

  • out

jsp输出流对象

  • page

指向当前jsp对象

  • exception

异常对象

六、jsp四大域对象

类对象范围
pageContextPageContextImpl类当前jsp页面范围有效
requestHttpServletRequest一次请求内有效
sessionHttpSession一个会话范围内有效
applicationServletContext整个web工程范围内部有效
  • 域对象是可以像map一样存取数据的对象,四个域对象功能一样,不同的是它们对数据的存取范围

  • 虽然四个域对象都可以存取数据,在使用上它们是有优先顺序的,优先顺序分别为

    • pageContext ===> request ===> session ===> application

七、jsp中的out输出和response.getWriter输出的区别

  • response中表示响应,我们经常用于设置返回给客户端的内容
  • out也是给用户做输出使用的
    在这里插入图片描述
  • 由于jsp翻译之后,底层源代码都是使用out来进行输出,所以一般情况下,我们在jsp页面中统一使用out来进行输出,避免打乱页面输出内容的顺序

1. out.write()与out.print()区别

  • out.write() 只可以输出字符串
  • out.print() 可以输出任意数据

八、jsp的常用标签

1. jsp静态包含

<%@ include file="/include/index.jsp"%>
  • 特点
  1. 静态包含不会翻译被包含的jsp页面
  2. 静态包含其实是把被包含的jsp页面的代码拷贝到包含的位置执行输出

2. jsp动态包含

<jsp:include page="/include/index.jsp">
      
  </jsp:include>
  • 特点
  1. 动态包含会把包含的jsp页面也翻译成java代码
  2. 动态包含底层代码使用如下代码去调用被包含的jsp页面执行输出
JspRuntimeLibrary.include(request, response, "/include/index.jsp", out, false);
  1. 动态包含,还可以传递参数

3. jsp标签转发

<jsp:forward page="/scope2.jsp"></jsp:forward>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值