码迷,mamicode.com
首页 > Web开发 > 详细

JSP概述及一个例子

时间:2018-10-24 01:03:31      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:content   code   col   请求   public   .com   tle   odi   png   

JSP自带的API包含4个包,可通过Tomcat的官网查看,JSP和EL的API是分开的

javax.servlet.jsp  // 包含用于Servlet/JSP容器将JSP页面翻译为Servlet的核心接口和类。
javax.servlet.jsp.el  // 提供了一组必须由Servlet/JSP容器支持,以便在JSP页面中使用的表达式语言的类
javax.servlet.jsp.target  // 包含用于开发自定义标签的类型
javax.el  // 提供了统一表达式语言的API

其中两个重要的接口是JspPage接口和HttpJspPage接口。HttpJspPage接口是JspPage接口的子接口,JspPage接口是Servlet接口的子接口。

所有的JSP页面实现类必须实现JspPage接口或HttpJspPage接口。

public interface JspPage extends javax.servlet.Servlet
public interface HttpJspPage extends JspPage

JSP页面的本质是一个Servlet。JSP页面在JSP容器中运行,一个Servlet容器通常也是JSP容器。

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

1)将JSP页面转换到JSP页面实现类(即将JSP翻译成Servlet),该实现类的类名由Servlet/JSP容器生成。该实现类是一个实现了javax.servlet.jsp.JspPage接口或javax.servlet.jsp.HttpJspServlet接口的Java类,因此是一个Servlet。

2)Servlet/JSP容器编译转换得到的Servlet类,并装载和实例化该类,像一个正常的Servlet一样处理。

对于同一个JSP页面的后续请求,Servlet/JSP容器会先检查JSP页面是否被修改过,如果别修改过则该JSP页面会被重新翻译、编译并执行;如果没有被修改过,则执行已经在内存中的JSP Servlet。

JSP页面包含两部分:

1)JSP语法元素:由JSP容器处理的部分,这部分必须符合JSP语法规范,包括脚本元素、指令元素、动作元素、注释指令。

2)模板元素:语法元素以外的都是模板元素,模板元素会原样发送给浏览器。

在传统的HTML页面文件中,加入Java程序片段和JSP标签就构成了一个JSP页面文件,JSP页面中的程序片段代码是以 <% 和 %> 作为开始和结束标记的。

一个JSP页面实例

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.DateFormat" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Today‘s date</title>
</head>
<body>
<%
    DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);
    String date = dateFormat.format(new Date());
    out.println("Today is " + date);
%>
</body>
</html>

将该JSP页面放置在项目路径中,不需要部署描述符和注解,浏览器可以直接访问

技术分享图片

启动Tomcat服务器,通过浏览器访问

技术分享图片

该JSP页面翻译得到的Servlet存放在Tomcat的work/Catalina/...下

技术分享图片

技术分享图片

 

 JSP的API

技术分享图片

技术分享图片

技术分享图片

 

JSP概述及一个例子

标签:content   code   col   请求   public   .com   tle   odi   png   

原文地址:https://www.cnblogs.com/0820LL/p/9840311.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!