JSP全称(Java Server Page ),也称java服务器页面。看到jsp是否立刻想到原先曾经学过的asp呢。

一.jsp和asp的比较:

JSP(Java Server Page)与ASP(Active Server Page)两者都是常用的动态网页技术,也都是可以嵌入HTML中的程序,但两者是有着本质的不同,主要从以下几个方面对其进行比较:
   1.Web服务器的支持:大多数通用的 Web服务器如:Apache、Netscape和Microsoft IIS都支持JSP页面,只有微软本身的Microsoft IIS和Personal Web Server可以支持ASP。
   2.平台的支持:JSP具有平台独立性,只要是一般的Java程序可以运行的平台,都支持JSP程序。Windows平台可以很好的支持ASP,但ASP对于基于Win32逐渐模型的依赖,使得它难于移植到其它平台上。
   3.脚本语言:JSP可以使用Java编程语言或JavaScript作为脚本语言,而ASP使用VBScript或Jscript作为脚本语言。
   4.安全性:JSP使用Java安全模型,而ASP使用Windows NT的安全结构。

其实随着我们对jsp的深入学习,才发现,JSP和servlet有这密切的联系。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。

二.JSP和servlet的区别:

1. Servlet中没有内置对象,原来Jsp中的内置对象都是必须通过HttpServletRequest对象,或由  HttpServletResponse对象生成。 
    2. 对于静态的HTML标签,Servlet都必须使用页面输出流诼行输出。

3. jsp最终还是编译成servlet,所以jsp比servlet慢。jsp负责前台页面显示,servlet负责业务控制。

总之,Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,至于Jsp中的 Java脚本如何镶嵌到一个类中,由Jsp容器完成。而Servlet则是个完整的Java类,这个类的Service 方法用于生成对客户端的响应。

三.简单实例

1.HTML客户端代码:

<html><head><title> HelloWorld </title></head><body><%out.println("HelloWorld");%></body>
</html>

2.后面的工作就是 jsp自己工作了,在tomcat的work文件夹中,会自动生成以下java和响应的class文件代码:

package org.apache.jsp;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;public final class HelloWorld_aaa extends org.apache.jasper.runtime.HttpJspBaseimplements org.apache.jasper.runtime.JspSourceDependent {private static java.util.List _jspx_dependants;public Object getDependants() {return _jspx_dependants;}public void _jspService(HttpServletRequest request, HttpServletResponse response)throws java.io.IOException, ServletException {JspFactory _jspxFactory = null;PageContext pageContext = null;HttpSession session = null;ServletContext application = null;ServletConfig config = null;JspWriter out = null;Object page = this;JspWriter _jspx_out = null;PageContext _jspx_page_context = null;try {_jspxFactory = JspFactory.getDefaultFactory();response.setContentType("text/html");pageContext = _jspxFactory.getPageContext(this, request, response,null, true, 8192, true);_jspx_page_context = pageContext;application = pageContext.getServletContext();config = pageContext.getServletConfig();session = pageContext.getSession();out = pageContext.getOut();_jspx_out = out;out.write("<html>\r\n");out.write("\t<head>\r\n");out.write("\t\t<title>HelloWorld</title>\r\n");out.write("\t</head>\r\n");out.write("\t<body>\r\n");out.write("\t\t");out.println("HelloWorld");out.write("\r\n");out.write("\t</body>\r\n");out.write("</html>");} catch (Throwable t) {if (!(t instanceof SkipPageException)){out = _jspx_out;if (out != null && out.getBufferSize() != 0)out.clearBuffer();if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);}} finally {if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);}}
}

jsp和asp以及servlet,对比着学习,也就慢慢的明白其中的道理了。

转载于:https://www.cnblogs.com/xzpblog/p/5117954.html

J2EE 13规范(4)-JSP相关推荐

  1. J2EE中修改了jsp页面或者html页面重新启动tomcat无效问题

    在J2EE eclipse中重新启动 tomcat运行新修改的项目,但是页面前后修改无效,还是老的页面,这是经常遇见的问题.这个问题在多次停止,启动tomcat之后,还是无效!这是eclipse中比较 ...

  2. j2ee中如何拦截jsp页面?

    2019独角兽企业重金招聘Python工程师标准>>> 加filter: public class RightFilter implements Filter {public voi ...

  3. JAVA必备——13个核心规范

    标准的价值: 你听过这句话吗?"一流企业做标准.二流企业做品牌.三流企业做产品!"我时我就在想,做标准的企业就是一流的?卖产品就是三流公司?而坐产品或者加工的公司,即使说销售量非常 ...

  4. Spring - Java/J2EE Application Framework 应用框架 第 13 章 集成表现层

    第 13 章 集成表现层 13.1. 简介 Spring之所以出色的一个原因就是将表现层从MVC的框架中分离出来.例如,通过配置就可以让Velocity或者XSLT来代替已经存在的JSP页面.本章介绍 ...

  5. 【CSDN软件工程师能力认证学习精选】 JavaEE 13个核心规范

    1.标准的价值分析 生产只是一个劳动密集型的产业,是体力劳动,而体力劳动在这个时代是拼不上脑力劳动,拼不上智慧的!这就像所有的生命诞生之初,都是白纸一张,而一个婴儿成长到成年过程,却是不同的,而这些不 ...

  6. javaEE的13个规范

    你听过这句话吗?"一流企业做标准.二流企业做品牌.三流企业做产品!"我时我就在想,做标准的企业就是一流的?卖产品就是三流公司?而坐产品或者加工的公司,即使说销售量很大也挣不了太多的 ...

  7. J2EE企业开发规范

    J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,提高可移植,安全与再用价值. 其优点 保留现存的IT资产 高效的开发 支持异构环境 可伸缩 结构图 ...

  8. J2EE项目代码编写规范分享

    码编写规范目的:能够在编码过程中实现规范化,为以后的程序开发中养成良好的行为习惯. 代码编写规范使用范围:J2EE项目开发. 包命名规范: 目的:包的命名规范应当体现出项目资源良好的划分 servle ...

  9. 项目的命名规范,为以后的程序开发中养成良好的行为习惯

    代码编写规范目的:能够在编码过程中实现规范化,为以后的程序开发中养成良好的行为习惯. 代码编写规范使用范围:J2EE项目开发. 一.包命名规范: 目的:包的命名规范应当体现出项目资源良好的划分 1.s ...

最新文章

  1. controll层跳转页面_java web开发中的各种层
  2. zblog php 外部调用,ZBlogPHP调用指定ID文章的代码GetPost()函数
  3. thymleaf中枚举 判断对象值内容
  4. 2个js实现图片轮播效果(用)
  5. 【CodeForces】947 D. Picking Strings
  6. c语言接收并回现字符,C语言——字符I/O与缓冲区
  7. LOJ2361「NOIP2016」组合数问题
  8. Word VBA:批量转PDF且保留书签
  9. python单例模式继承_python单例模式
  10. 用Python讲述:地理“经纬度”数据的4种转换方法!
  11. 对接丰网查询物流信息
  12. 从python入门到人生巅峰
  13. Linux手机DIY.夏新E600和飞利浦968的重大突破
  14. 曲面研究的两个基本问题、旋转曲面、柱面、二次曲面
  15. Android UI系列之侧滑粘稠效果的实现
  16. 1ms超快响应+144Hz极限刷新 这就是电竞游戏显示器该有的样子
  17. ArchLinux开发环境第2辑——高效平铺式桌面i3个性化配置与美化
  18. zookeeper控制台
  19. 优漫动游掌握好这技巧做好网页美工设计
  20. Ansys Zemax | 多边形扫描仪设计示例

热门文章

  1. GSM A5/1算法C语言代码实现和分析
  2. 小工程结算书范本_工程结算合同书范本_工程结算合同格式
  3. 计算机上配置的网卡 实质上是,()计算机上配置的网卡,实质上是_ ___。
  4. springboot 中的 这种策略模式运用实战
  5. 千言万语汇总的Mybatis-plus常用API全套教程
  6. android 选项卡TabHost
  7. 兼容性自动化测试 | HUAWEI DevEco Studio云测服务等您来体验
  8. Python的零基础超详细讲解(第八天)-Python的条件判断
  9. android游戏boss坐标,热血江湖手游boss刷新点坐标 boss刷新时间 _图文攻略_高分攻略_百度攻略...
  10. Python 之列表及相关练习题