zy2317878的博客

博观约取,厚积薄发

Java Server Pages(JSP)——1. JSP概述

写在前面

前面几篇文章基本学习了Java Servlet的基本用法,但是Servlet有两个缺点是无法克服的: 首先, 写在Servlet中的所有HTML标签必须包含Java字符串, 这使得处理HTTP响应报文的工作十分烦琐; 第二, 所有的文本和HTML标记是硬编码,导致即使是表现层的微小变化, 如改变背景颜色, 也需要重新编译。

因此可以通过JSP来弥补Java Servlet的缺点,现代的Java Web应用会同时使用Servlet和JSP页面。

JSP概述

JSP页面本质上是一个Servlet。 然而, 用JSP页面开发比使用Servlet更容易, 主要有两个原因。 首先, 不必编译JSP页面; 其次, JSP页面是一个以.jsp为扩展名的文本文件, 可以使用任何文本编辑器来编写它们。

JSP页面在JSP容器中运行, 一个Servlet容器通常也是JSP容器。 例如, Tomcat就是一个Servlet/JSP容器。

当一个JSP页面第一次被请求时, Servlet/JSP容器主要做以下两件事情:

  1. 转换JSP页面到JSP页面实现类, 该实现类是一个实现javax.servlet.jsp.JspPage接口或子接口javax.servlet.jsp.HttpJspPage的Java类。 JspPage是javax.servlet.Servlet的子接口, 这使得每一个JSP页面都是一个Servlet。 该实现类的类名由Servlet/JSP容器生成。 如果出现转换错误, 则相关错误信息将被发送到客户端。
  2. 如果转换成功, Servlet/JSP容器随后编译该Servlet类, 并装载和实例化该类, 像其他正常的Servlet一样执行生命周期操作。

对于同一个JSP页面的后续请求, Servlet/JSP容器会先检查JSP页面是否被修改过。 如果是, 则该JSP页面会被重新翻译、 编译并执行。 如果不是, 则执行已经在内存中的JSP Servlet。 这样一来, 一个JSP页面的第一次调用的实际花费总比后来的花费多, 因为它涉及翻译和编译。 为了解决这个问题, 可以执行下列动作之一:

  1. 配置应用程序, 使所有的JSP页面在应用程序启动时被调用(实际上也可视为翻译和编译) , 而不是在第一次请求时调用。
  2. 预编译JSP页面, 并将其部署为Servlet。

JSP API

JSP自带的API包含4个包:

  1. javax.servlet.jsp。 包含用于Servlet/JSP容器将JSP页面翻译为Servlet的核心类和接口。 其中的两个重要成员是JspPage和HttpJspPage接口。 所有的JSP页面实现类必须实现JspPage或HttpJspPage接口。 在HTTP环境下, 实现HttpJspPage接口是显而易见的选择。
  2. javax.servlet.jsp.tagext。 包括用于开发自定义标签的类型。
  3. javax.el。 提供了统一表达式语言的API。
  4. javax.servlet.jsp.el。 提供了一组必须由Servlet/JSP容器支持, 以便在JSP页面中使用表达式语言的类。

可以在以下网址查看JSP API:Package javax.servlet.jsp

两个简单的JSP页面

JSP-Welcome页面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Welcome Page</title>
</head>
<body>
    Welcome
</body>
</html>

与前面的Servlet类似,也可以使用URL对JSP进行调用:

http://localhost:8080/app01a/Welcome.jsp

效果图如下所示:
这里写图片描述

JSP-显示当前时间页面,代码如下:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Welcome Page</title>
</head>
<body>
    Welcome
</body>
</html>

使用URL对该JSP进行调用:

http://localhost:8080/app01a/todayDate.jsp

效果图如下所示:
这里写图片描述

当然这个页面目前不能动态显示实时时间,只能显示当前调用JSP的时候的时间。这个就需要后面继续的学习了。

写在最后

这一篇博客主要帮助我重新认识了JSP,他也是一种和Servlet容器,在实际的JavaWeb应用开发中,二者应该结合起来使用(虽然不知道现在还用不用这种东西了)。还需要继续的学习。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zy2317878/article/details/80336388
文章标签: JSP
个人分类: Java Servlet
想对作者说点什么? 我来说一句

JSP入门概述

2015年12月27日 149KB 下载

Java Server PagesJSP)课件

2010年11月12日 73B 下载

Pure JSP, Java Server Pages

2007年09月25日 1.72MB 下载

没有更多推荐了,返回首页

不良信息举报

Java Server Pages(JSP)——1. JSP概述

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭