JSP概述、API、注释
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处理HTTP请求的过程
Web服务器使用JSP来创建网页的处理过程如下:
(1)跟其他的普通网页一样,浏览器发送一个HTTP请求给服务器。
(2)Web服务器识别出这是一个JSP网页的请求,并且将该请求传递给JSP引擎。通过使用URL或.jsp文件来完成。
(3)JSP引擎从硬盘中载入JSP文件,然后将它们转换成Servlet。这种转换只是简单地将所有模板文件改用println()语句,并且将所有的JSP元素转换成Java代码。
(4)JSP引擎将Servlet编译成可执行类,并且将原始请求传递给Servlet引擎。
(5)Web服务器会调用Servlet引擎,然后载入并执行servlet类。在执行过程中,Servlet产生HTML格式的输出并将其内嵌于HTML response 中上交给Web服务器。
(6)Web服务器以静态HTML网页的形式将HTTP response返回到浏览器中,浏览器处理HTTP response中产生的HTML网页,就如同处理静态网页一样。
通常情况下,JSP引擎会检查JSP文件对应的Servlet是否存在,并且检查JSP文件的修改日期是否早于Servlet,如果别修改过则该JSP页面会被重新翻译、编译并执行;如果没有被修改过,则执行已经在内存中的JSP Servlet。

JSP页面包含两部分:
1)JSP语法元素:由JSP容器处理的部分,这部分必须符合JSP语法规范,包括脚本元素、指令元素、动作元素、注释指令。
2)模板元素:语法元素以外的都是模板元素,模板元素会原样发送给浏览器。
在传统的HTML页面文件中,加入Java程序片段和JSP标签就构成了一个JSP页面文件,JSP页面中的程序片段代码是以 <% 和 %> 作为开始和结束标记的。
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概述、API、注释的更多相关文章
- JavaWeb(三)JSP概述
一.JSP概述 1.1.JSP简介 一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%>结束.JSP是一种Java servlet,主要用于实现 ...
- jsp篇 之 jsp中的注释
Jsp中的注释: 第一种: <!-- html/xml中的注释方式 --> 特点: 1.用户在浏览器中右键查看源代码 [能] 看到这个注释. 2.在服务器端,这个jsp页面被翻译成的jav ...
- 一、 JSP概述 二、JSP的语法结构 三、JSP内置对象
一.JSP概述###<1>概念 java服务器页面 可以编写动态页面 其内部是以HTML标签为主,可以在HTML标签嵌套java代码 jsp文件以.jsp为后缀 jsp本质上就是一个Ser ...
- jsp页面中注释 <!-- --> 和<%-- --%> 的区别
jsp页面中注释 <!-- --> 和<%-- --%> 的区别 原创 2016年09月01日 17:55:44 标签: jsp注释 5605 今天发现一个问题:在jsp代码中 ...
- IT兄弟连 JavaWeb教程 JSP中的注释
由于JSP页面由HTML.JSP.Java脚本等组成,所以在其中可以使用多种注释格式 HTML中的注释 HTML语言的注释不会被显示在网页中,但是在浏览器中选择查看网页源代码时,还是能够看到注释的信息 ...
- JSP概述
一.JSP页面本质上时一个Servlet,然而,用JSP开发比使用Servlet更容易,主要有两个原因,首先不必编译Servlet,其次JSP页面是一个以.jsp为扩展名的文本文件,可以使用任何编辑器 ...
- jsp中的注释
jsp中有各种针对不同类型语言的注释,值得注意的是对于标签 <jsp:include/>是需要使用jsp注释"<%----%>", (不能是<!-- ...
- Servlet&&Jsp 概述
主题 Servlet的作用 构建动态网页 Servlet代码初探 Servlet与其他技术的对比 Jsp的作用 Servlet的作用 Servlet是在web服务器或应用服务器上用来动态生成html的 ...
- 会话技术及jsp概述
一.会话技术 1.概念:在一次会话中共享数据,在web中指,浏览器和服务器的一次通信.包含多次请求,和多次响应. 可以在一次会话的多次请求中共享数据. 2.客户端会话技术:Cookie 将数据保存在客 ...
随机推荐
- 2017秋季面向对象程序设计(Java)教材、教学纲要、考核要求
教材简况 凯 S.霍斯特曼 (Cay S. Horstmann)(作者), 周立新(译者), Java核心技术(卷1):基础知识(原书第10版) , 2016年9月1出版 本书包括两卷,选做教材的是卷 ...
- 自己电脑能ping别人的,但别人电脑去不能跟我们的电脑通信
记住一点:多半时防火墙出了问题. 打开“控制面板”——点击“系统和安全”——“Windows防火墙”——点击“打开或关闭”Windows防火墙--点击家庭组网络或者工作组网络——关闭家庭组和工作组的防 ...
- frame嵌套页面元素的定位
这里当出现页面嵌套的时候怎么定位?frame就是对于嵌套页面的定位,今天具体说一下 前期准备工作:先编写一个HTML网页,带有嵌套的,方便我们在案例中使用按照如下截图的代码编写就好了,然后保存为HTM ...
- HTTPS加密过程分析
HTTPS加密的作目的是解决信息传输过程中数据被篡改,窃取 HTTPS使用了一系列的加密算法:对称加密算法.非对称加密算法.单向加密算法 非对称加密算法 分为公钥部分和私钥部分,用公钥加密的密文只能由 ...
- jenkin 不必要的Execute shell执行失败,导致jenkins都失败的解决
问题:jenkins里配置了多个执行shell,且有后续的执行job任务.但其中一个Execute shell执行失败了导致后续的shell都不执行了 而这个失败的shell并不是一定要执行 解决 ...
- 启动Tomcat的小细节--MyEclipse
1.先停掉Tomcat 2.然后再Redeploy项目 3.然后再启动Tomcat. 这样的好处是 代码彻底编译
- 205. Isomorphic Strings (Map)
Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the chara ...
- 【转】关于easyui的窗口和tab页面不执行js说明
原地址:http://www.jeasyuicn.com/post-49.html 一直以来群里里面很多人反应,在用tab加载界面的时候,界面里面的js不会执行.今天GodSon在此说明一下原因. 不 ...
- JavaScript各种继承方式(三):组合继承(combination inheritance)
一 原理 组合继承仅仅是同时使用了原型链继承和构造函数继承. 具体做法是,将父类的实例作为子类的构造函数的原型对象,并在子类的构造函数中调用父类的构造函数. function Fruit(name){ ...
- task 定时设置
每天凌晨2点 0 0 2 * * ?和每天隔一小时 0 * */1 * * ? 例1:每隔5秒执行一次:*/5 * * * * ? 例2:每隔5分执行一次:0 */5 * * * ? 在26分.29 ...