JSP

1. JSP 基础语法

1.1 JSP 简介

JSP 全名为 Java Server Pages ,其根本是一个简化的 Servlet 设计,他实现了再 Java 当中使用 HTML 标签。 JSP 是一种动态网页技术准,也是 JAVAEE 的标准。JSPServlet 一样,是在服务器端执行的。

1.2 对比

  • JSPJava 平台,安全性高,适合开发大型的,企业级的 Web 应用程序。(电子银行,网上证券交易所等)
  • Asp.net.Net 平台,简单易学。但是安全性以及跨平台性差。
  • Php :简单,高效,成本低开发周期短,特别适合中小型企业去的 Web 应用开发。

1.3 JSP 页面元素构成

在这里插入图片描述

1.3.1 JSP 指令

  • page 指令:通常位于 jsp 页面的顶端,同一个页面可以有多个 page 指令。
<%@ page attribute="value" %>
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
// language :定义 JSP 页面所用的脚本语言,默认是 Java
// import :导入要使用的 Java 类
// contentType :指定当前 JSP 页面的 MIME 类型和字符编码
// pageEncoding :指定页面使用字符编码
  • include 指令:将一个外部文件嵌入到当前 JSP 文件中,同时解析这个界面中的 JSP 语句。
<%@ include file="文件相对 url 地址" %>
  • taglib 指令:使用标签库定义新的自定义标签,在 JSP 页面中启用定制行为。
<%@ taglib uri="uri" prefix="prefixOfTag" %>

1.3.2 JSP 注释

在 JSP 页面的注释

  • HTML的注释:
<!--查看源代码客户端可见-->
  • JSP 的注释:
<%--查看源代码客户端不可见--%>
  • JSP 脚本注释:
//单行注释
/*多行
注释*/

1.3.3 JSP 脚本

在 JSP 页面中执行的 Java 代码

<% Java代码%>
<%
    out.println("Hello World!");
%>

1.3.4 JSP 声明

在 JSP 页面中定义变量或者方法

<%! Java代码%>
<%!
    String s = "张三"; //声明一个字符串变量
    int add(int x,int y){ //声明一个返回整型的函数
        return x+y;
    }
%>

1.3.5 JSP 表达式

在 JSP 页面执行的表达式

<%=表达式 %> 注意表达式不以分号结束
<%!
    String s = "张三";
    int add(int x,int y){
        return x+y;
    }
%>
你好,<%=s %><br>
x+y=<%=add(10,5) %><br>

1.4 JSP 页面生命周期

在这里插入图片描述

  • 编译阶段: servlet 容器编译 servlet 源文件,生成 servlet
   (1)解析JSP文件。
   (2)将JSP文件转为servlet。
   (3)编译servlet。
  • 初始化阶段:加载与 JSP 对应的 servlet 类,创建其实例,并调用它的初始化方法 jspInit() ,若需要执行自定义的 JSP 初始化任务,复写 jspInit() 方法就行了,就像下面这样:
public void jspInit(){
  // 初始化代码
}
//一般来讲程序只初始化一次
  • 执行阶段:
    调用与 JSP 对应的 servlet 实例的服务方法,这一阶段描述了 JSP 生命周期中一切与请求相关的交互行为,直到被销毁。当 JSP 网页完成初始化后, JSP 引擎将会调用 jspService() 方法。jspService() 方法需要一个 HttpServletRequest 对象和一个 HttpServletResponse 对象作为它的参数,就像下面这样:
void jspService(HttpServletRequest request,
                 HttpServletResponse response)
{
   // 服务端处理代码
}
// jspService() 方法在每个 request 中被调用一次并且负责产生与之相对应的 response
  • 销毁阶段:
    调用与 JSP 对应的 servlet 实例的销毁方法,然后销毁 servlet 实例,需要执行任何清理工作时复写 jspDestroy() 方法,比如释放数据库连接或者关闭文件夹等等。jspDestroy() 方法的格式如下:
public void jspDestroy()
{
   // 清理代码
}

2. JSP 内置对象

2.1 内置对象简介

JSP 内置对象是 Web 容器创建的一组对象,不使用 new 关键字就可以使用的内置对象。

<%
    out.println("Hello World!");
%>

在这里插入图片描述

2.2 out 对象

out 对象是 JspWriter 类的实例,是向客户端输出内容常用的对象。

常用方法
void println() //向客户端打印字符串
void clear() //清楚缓冲区的内容,在 flush 之后调用会抛出异常
void clearBuffer() //清楚缓冲区的内容,在 flush 之后调用不会抛出异常
void flush() //将缓冲区内容输出到客户端
int getBufferSize() //返回缓冲区字节数的大小,如不设缓冲区则为 0
int getRemaining() //返回缓冲区还剩余多少可用
boolean isAutoFlush() //返回缓冲区满时,是自动清空还是抛出异常
void close() //关闭输出流

2.3 request 对象

客户端的请求信息被封装在 request 对象中,通过他才能了解到客户的需求,然后抛出响应。它是 HttpServletRequest 类的实例, request 对象具有请求域,即完成客户端的请求之前,该对象一直有效。

在这里插入图片描述

  • 用户发送请求( request
    点击登录向服务器发送请求,在请求对象中封装了用户名和密码
常用方法
String getParameter(String name)//返回此 request 中 name 指定的参数,若不存在则返回 null
String[] getParameterValues(String name)//返回指定名称的参数的所有值,若不存在则返回 null
Object getAttribute(String name)//返回名称为 name 的属性值,如果不存在则返回 null
String getContentType()//返回 request 主体的 MIME 类型,若未知则返回 null
String getProtocol()//返回此 request 所使用的协议名和版本
int getServerPort()//返回服务器端口号
String getCharacterEncoding()//返回 request 的字符编码集名称
int getContentLength()//返回 request 主体所包含的字节数,若未知的返回 -1
String getRemoteAddr()//返回客户端的 IP 地址
String getContextPath()//返回 request URI 中指明的上下文路径

2.4 response 对象

response 对象包含了响应客户请求的有关信息,但在 JSP 中很少直接用它。它是 HttpServletResponse 类的实例。 response 对象具有页面作用域,即访问一个页面时,该页面内的 response 对象只能对这次访问有效,其它页面的 response 对象对当前页面无效。

在这里插入图片描述

  • 服务器给用户响应(response
    服务端接收用户的请求判断用户名和密码后,给客户端发送响应页面
常用方法
void setContentType(String type)//设置响应的内容的类型,如果响应还未被提交的话
void sendRedirect(String location)//使用指定的 URL 向客户端发送一个临时的间接响应

2.5 session 对象

session 表示客户端与服务器的一次会话,Web 中的 session 指的是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。 session 对象是 HttpSession 类的实例。

常用方法
long getCreationTime()//返回 session 创建时间
public String getId()// 返回 session 创建时 JSP 引擎为他设的唯一 ID 号
public Object setAttribute(String name,Object value)//使用指定名称将对象绑定到此会话
public Object getAttribute(String name)//返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,返回 null
String[] getValueNames()//返回一个包含此 session 中所有可用属性的数组
int getMaxInactiveInterval()//返回两次请求间隔多长时间此 session 被取消(单位秒)

2.6 application 对象

application 对象实现了用户间数据的共享,可存放全局变量,它开始于服务器的启动,终止于服务器的关闭。在用户的前后连接或不同用户之间的连接中,可以对 application 对象的同一属性进行操作,操作会影响到其他用户对此的访问。 application 对象是 ServletContext 类的实例。

常用方法
public void setAttribute(String name,Object value)//使用指定名称将对象绑定到此会话
public Object getAttribute(String name)//返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,返回 null
Enumeration getAttributeNames()//返回所有可用属性名的枚举
String getServerInfo()//返回 JSP(Servlet)引擎名及版本号

2.7 page 、 pageContext 、config 、 exception 对象

  • page 对象就是指向当前 JSP 页面本身,有点像类中的 this ,它是 java.lang.Object 类的实例。
  • pageContext 对象提供了对 JSP 页面内所有对象及名字空间的访问,它可以访问到本页所在的 session ,也可以取本页所在的 application 的某一属性值。
  • config 对象是在一个 Servlet 初始化时, JSP 引擎向它传递信息用的,此信息包括 Servlet 初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个 ServletContext 对象)。
  • exception 对象是一个异常对象,到一个页面在运行过程中发生了异常,就产生这个对象。如果一个 JSP 页面要应用这个对象,就必须把 isErrorPage 设为 true ,否则无法通过编译。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值