Servlet的两个缺点:

1.首先,写在Servlet中所有的HTML标签必须包含JAVA字符串,使得处理HTTP响应报文工作十分繁琐。

2.所有的文件和HTML标记是硬代码,导致即使是微小变化,也需要重新编译。

一.JSP(JavaServer Pages)

JSP的页面上是一个Servlet,但jsp更容易。

1.不必编译JSP页面。

2.JSP页面是一个以.jsp为扩展名的文本文件,可以使用任何编辑器编写。

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

当一个JSP页面第一次被请求时,Servlet/JSP页面做如下两件事:

1.转换JSP页面到JSP页面实现类,该类是一个实现java.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自带的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页面中Java代码块的开始,"%>"表示Java代码块的结束符。

例:welcome.jsp

<html>
<head><title>Welcome</title></head>
<body>
<% out.print("welcome"); %>
</body>
</html>

 todayDate.jsp

<%@page import="java.util.Date" %>
<%@page import="java.text.DateFormat" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%> <html>
<head><title>Welcome</title></head>
<body>
<% out.print("welcome"); %>
<%
DateFormat dateFormat=DateFormat.getDateInstance(DateFormat.LONG);
String s=dateFormat.format(new Date());
out.println("Today is "+s);
%>
</body>
</html>

  

二.JSP注释

JSP支持两种不同的注释格式

(1) JSP注释。该注释记录页面中做了什么。

(2) HTML/XHTML注释。这些注释将会发送到浏览器上。

JSP注释以“<%--”开始,以“--%>”结束。

例:

<%--retrieve products to display--%>

  

JSP注释不会被发送到浏览器端,也不会嵌套。

HTML/XHTML注释语法如下:

<!--  [comments here]  -->

一个HTML/XHTML注释不会被容器处理,会原样发送给浏览器。

HTML/XHTML注释的一个用途是用来确定JSP本身。<!-- this is /jsp/store/displayProducts.jspf -->

JSP技术(一)的更多相关文章

  1. java的JSP技术

    java的JSP技术 [toc] 1.JSP简介 Jsp技术是用来开发java web的页面显示的,所有MVC模型里面的视图层,所以视图层的开发 jsp不是编程语言,三个英文是java server ...

  2. Servlet,jsp,JSP技术 ,JSP编程

     一.Servlet 思考 1 浏览器可以直接打开JAVA/class文件吗? 不可以 2浏览器可以打开HTML.JS 文件吗? 可以 3 JAVA程序可以生成HTML文件吗?可以的,用IO流. 4 ...

  3. Java Web之JSP技术

    JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比htm ...

  4. Jsp技术总结

    这节我们总结一下Jsp的相关技术. 1. 什么是JSP JSP即Java Server Pages,它和servlet技术一样,都是sun公司定义的一种用于开发动态web资源的技术.该技术的最大特点在 ...

  5. JSP技术

    1. JSP技术简介 JSP全称是Java Server Pages,它和servlet技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.是sun公司定义的一种规范,JSP实际上就是Se ...

  6. JSP技术的优缺点介绍

    什么是JSP?JSP可用一种简单易懂的等式表示为:HTML+Java=JSP. JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑. 网页还能通过 ...

  7. JavaWeb之JSP技术总结

    刚接触JSP技术的时候让我想起了在大学学的Asp+VBScript,记得当时我还用aspstudy做了一个小的新闻发布系统作为期末作品,也正是在那时候在卢哥卢老师的指导下走向编程的道路,对编程越来越感 ...

  8. jsp技术和el表达式和jstl技术

    注:本文参考黑马视频的讲义 jsp技术 1.jsp脚本 )<%java代码%> ----- 内部的java代码翻译到service方法的内部 )<%=java变量或表达式> - ...

  9. Servlet组件之 jsp 技术

    JSP 简称java服务器页面(java server page),jsp和servlet实现了我们的开发需求.对于jsp技术我们首先需要知道他的组成    HTML+java+jsp内置对象=jsp ...

  10. JavaWeb:JSP技术基础

    JavaWeb:JSP技术 快速开始 介绍 JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%> ...

随机推荐

  1. 题解【洛谷P3574】[POI2014]FAR-FarmCraft

    题面 简化版题意: 有一棵 \(n\) 个点的树,有边权. 你初始在 \(1\) 号节点,你需要走遍整棵树为 \(2 \sim n\) 号点的居民分发电脑,但你的汽油只够经过每条边恰好两次. 一个居民 ...

  2. s 贪心

    区间问题: 区间选点问题   右端点排序,now标记点. 数轴上有N个闭区间[Ai, Bi].取尽量少的点,使得每个区间内都至少有一个点(不同区间内含的点可以是同一个). 输入 第1行:一个整数N(1 ...

  3. (转)KMP算法

    转自:http://blog.csdn.net/yutianzuijin/article/details/11954939 我们首先用一个图来描述kmp算法的思想.在字符串O中寻找f,当匹配到位置i时 ...

  4. matplotlib 画封闭图像并填充

    1.画矩形 这个费了我半天劲,不知怎么就可以了. 复制来自:https://www.cnblogs.com/ymjyqsx/p/7390288.html import  matplotlib.pypl ...

  5. Spring事物白话文

    脏读:一个事物读到了另外一个事物中尚未提交的数据: 幻读:A事物读到了B事物新增的数据:白话一点就是读到了别人insert的语句: 不可重复读:A事物读取了B事物更改的数据:白话一点就是我两次sele ...

  6. util之Queue

    定义:ArrayDeque<Integer> queue = new ArrayDeque<Integer>(); offer();添加元素 Peek()返回队列首部元素值 P ...

  7. mysql(4):性能分析和性能优化

    性能分析 慢查询日志分析 ①查询慢查询日志的状态 show global variables like '%slow_query_log%'; ②开启慢查询日志(当mysql重启时会重置) set g ...

  8. AcWing 896. 最长上升子序列 II

    #include<iostream> #include<algorithm> #include<vector> using namespace std; int m ...

  9. NotePad++安装及配置

    NotePad++是一款轻量级的语言开发工具,是学习编程语言入门工具. 下面介绍下配置方法(Java为例) 配置插件NppExec 配置JAVA编译命令javac 配置JAVA运行命令java 上述两 ...

  10. Nginx可以做什么

    Nginx能做什么 ——反向代理 ——负载均衡 ——HTTP服务器(动静分离) ——正向代理 反向代理 反向代理应该是Nginx做的最多的一件事了,什么是反向代理呢,以下是百度百科的说法:反向代理(R ...