薛彬的博客 Xue bin's Personal Growth Website

JSP学习笔记

2016-05-07
薛彬

JSP是Java Server Page的简称,和Servlet是Java EE的两个基本成员。其实JSP和Servlet本质上是一样的,JSP最终是编译成Servlet才能运行的。

JSP其实就是一个html页面里面嵌入java代码片段。

JSP基本原理

上面提到,JSP的本质就是Servlet。

JSP是如何出现的?

Servlet可以通过接受用户的请求动态生成对应的HTML页面,如果这个页面很多的HTML标签的时候,Servlet就会显得很重,而且这些HTML页面都是静态,不会因为用户请求而改变,该怎么做呢?

JSP的出现就解决了这样一个问题,JSP分为两个部分:

  • 静态部分
  • 动态部分

静态部分中也就是那些不会因用户请求而改变的页面,而动态部分中就是受Java程序控制的内容,用来动态生成对应的元素。

工作原理

  1. 客户端向服务器发出请求
  2. JSP服务器:
    • 如果该JSP页面第一次收到请求,则编译JSP文件,生成对应的Servlet。
    • 如果该JSP页面有对应的Servlet,则动态生成标准的HTML页面。
  3. 返回标准的HTML页面给客户端。

生命周期

编译阶段

Servlet容器编译Servlet源文件,生成Servlet类。

初始化阶段:

public void jspInit(){
// 初始化代码
}

执行阶段

void _jspService(HttpServletRequest request, HttpServletResponse response){
   // 服务端处理代码
}

销毁阶段

public void jspDestroy(){
   // 清理代码
}

JSP的生命周期和Servlet的周期特别相似。

注意

  • JSP文件必须在JSP服务器内运行
  • JSP文件必须生成Servlet才能执行
  • 每个JSP页面第一次访问都很慢,因为要等待JSP编译Servlet

JSP的基本语法

JSP需要在头部加上类似语句:

<%@ page contentType="text/Html;charset=GBK" language="java" errorPage=""%>

JSP声明

<%! 声明部分%>
  • 用于声明变量和方法
  • 不需要定义类就可以使用定义方法
  • JSP声明转化成Servlet的成员变量或方法

输出JSP表达式

<%=表达式%>

这就相当于是Java中的out.println()打印语句;

JSP脚本

<% %>

这里面包含任何的Java代码。


评论