Jsp最终都会转化成java形式的Servlet执行,因此也可以说Jsp的本质就是Servlet,在jsp执行后,会在服务器上(例如tomcat中)生成.java以及.class文件。具体执行过程如下:

Fig.1 Jsp的执行过程

Fig.2 Jsp具体执行过程

如图所示,Servlet能实现的功能,Jsp也能实现。

举个简单的例子,之前我用jsp显示前端+Servlet实现后端逻辑,这里我把逻辑实现也用Jsp实现:

<body>
<form action="ResultJsp.jsp">
username:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
<input type="submit" value="submit">
<input type="reset" value="reset">

</form>
</body>

ResultJsp.jsp代码实现逻辑如下:

<body>

<%
String username=request.getParameter("username");
String password=request.getParameter("password");

response.setContentType("text/html");

out.println("<html><head><title>LoginResult</title></head>");
out.println("<body>username:"+username+"<br>");
out.println("password:"+password+"</body></html>");
out.flush();

%>
</body>

这样我们就能实现之前用java代码实现的Servlet类的功能啦。

总结:

1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)
2.jsp更擅长表现于页面显示,servlet更擅长于逻辑控制.
3.Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到.
Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,Jsp中的Java脚本如何镶嵌到一个类中,由Jsp容器完成。而Servlet则是个完整的Java类,这个类的Service方法用于生成对客户端的响应。
 
老师发的答案1:
JSP在本质上就是SERVLET,但是两者的创建方式不一样.Servlet完全是JAVA程序代码构成擅长于流程控制和事务处理而通过Servlet
来生成动态网页;JSP由HTML代码和JSP标签构成,可以方便地编写动态网页
因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层.
答案2:
JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。

转载于:https://www.cnblogs.com/qcxdoit/p/6057624.html

只用jsp实现同样的Servlet功能相关推荐

  1. jsp stc_为什么说jsp的本质是servlet?

    我们知道,一个实现了servlet接口的java类被称为一个servlet,jsp实现了servlet接口,所以说jsp本质上是一个servlet 不过,jsp这个实现接口的方式隐藏得比较深,得从源码 ...

  2. java web编写计算器_javaWeb 使用 jsp 和 javaBean 实现计算器功能

    jsp 和 javaBean 实现计算器功能 try { calculator.calculate(); } catch (Exception e) { out.write(e.getMessage( ...

  3. JSP Taglib指令具有什么功能呢?

    转自: JSP Taglib指令具有什么功能呢? 下文讲述JSP中Taglib指令的功能简介说明,如下所示: Taglib指令的功能: 定义一个标签库以及其自定义标签的前缀 一个自定义的tag标签是用 ...

  4. 基于javaweb的酒店客房管理系统(java+jsp+html+bootstrap+jquery+servlet+mysql)

    基于javaweb的酒店客房管理系统(java+jsp+html+bootstrap+jquery+servlet+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 ...

  5. 【Jsp】第二课 Servlet入门学习(一)

    什么是Servlet } servlet是由sun公司提供的一门用于开发动态web资源的技术 } Servlet的核心是javax.servlet.Servlet接口,所有的Servlet 必须实现这 ...

  6. JSP中include指令的功能简介说明

    转自: JSP中include指令起什么用呢? 下文讲述JSP中include指令的功能简介说明,如下所示: JSP中include指令的功能说明:用于将不同的文件插入到当前JSP页面的指定位置 JS ...

  7. javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/

    今天在启动tomcat的时候,出现了这个错误 javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletC ...

  8. java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/

    今天启动tomcat的时候出现了这样的错误 java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationC ...

  9. JSP脚本实现登录验证功能

    JSP脚本实现登录验证功能 登录 点击退出 登录页面login <%@ page contentType="text/html;charset=UTF-8" language ...

最新文章

  1. 专为物联网开发的开源操作系统Contiki(转)
  2. 原来 Excel 只需三步就可以给证件照换底色!
  3. 蓝桥杯练习系统,入门训练,Java版
  4. java 获取oracle表结构_获取Oracle中所有表的列表?
  5. 店铺如何用视觉走出差异化?
  6. Windows10安装Cmder(图文教程)
  7. python人口普查数据数据分析_7、Python 数据分析-Pandas人口分析案例
  8. 清空数据库里面所有表的数据的语句
  9. ASP.net和ASP的区别
  10. android qq音乐歌词怎么实现,歌词翻译利器 QQ音乐Android3.9.5版本全新上线
  11. C++解压zip压缩文件
  12. def序列化器---视图序列化反序列化
  13. 如何管理一盘散沙的团队?
  14. J v a v 与 您
  15. [Photography] 新摄影笔记
  16. ubuntu11.10 安装谷歌拼音输入法详细步骤
  17. SQL存储过程与函数
  18. hive sql通过具体地址解析出行政区划(省 > 市 > 区 > 县 > 乡 > 镇 > 村)
  19. linux网口初始化_Linux 初始化系统配置(CentOS 6)
  20. 用USBoot制作USB启动盘

热门文章

  1. python四十:configparse模块
  2. nodejs基础学习-文件读取
  3. 相声演员侯耀文突发疾病去世享年59岁 深切怀念
  4. python 一些方法的时间测试
  5. [C#][Newtonsoft.Json] Newtonsoft.Json 序列化时的一些其它用法
  6. Git操作手册|命令速查表
  7. 【译】JS基础算法脚本:类数组(arguments)去重
  8. iOS8 Size Classes的理解与使用
  9. 在线白板,基于socket.io的多人在线协作工具
  10. zookeeper 运维管理