浅谈Servlet与JSP

浅谈Servlet与JSP前言    提高JavaWeb开发,不得不说http协议,接下来就说Servlet和Jsp这两个java类。正文1、什么是JSP?    JSP(JavaServerPages)是Sun公司指定的一种服务器端动态页面技术的组件规范,Jsp是以“.jsp”为后缀的文件,在该文件中主…

大家好,又见面了,我是你们的朋友全栈君。

前言

    提高Java Web 开发,不得不说http协议,接下来就说Servlet 和 Jsp 这两个java类。

正文

1、什么是JSP?

    JSP(Java Server Pages)是Sun 公司指定的一种服务器端动态页面技术的组件规范,Jsp是以“.jsp”为后缀的文件,在该文件中主要是html 和少量的java 代码。jsp 文件在容器中会转换成Servlet中执行。

2、什么是Servlet?

    Servlet (Server Applet)是Sun公司指定的一种用来扩展Web服务器功能的组件规范,属于服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
    借用知乎上java老师的一句话:jsp就是在html里面写java代码,servlet就是在java里面写html代码

3、JSP与Servlet的区别和联系

  • 运行过程

    客户在第一次请求JSP时,请求较慢,因为JSP Engine先把JSP程序转换成servlet代码,接着将它编译成类文件,以后贮存在内存中再次调用速度就快了;
    访问servlet时,可以直接对其编译好的类文件执行。

  • 使用方式

    要想使用servlet必须把它放在特定位置而且必须对其映射配置;
    jsp可以放在和html同样位置(webapps根目录下或者webapps根目录下的子目录下)而且不需要配置,可以直接使用。

  • 程序组成

    Servlet在Java代码中通过HttpServletResponse对象动态输出HTML内容;
    JSP在静态HTML内容中嵌入Java代码,Java代码被动态执行后生成HTML内容

  • 职能分工

    jsp更侧重于前端页面显示,servlet更侧重于业务逻辑。

  • 本是一家人
        Jsp 本质上是servlet,用jsp实现的页面用servlet也能实现。

4、扬长弊端提出MVC

    JSP 在Html 中加入了大量的、复杂的业务逻辑,如果后期业务逻辑发生改变,修改jsp 就会捉襟见肘;
    Servlet 虽然解决了业务逻辑的问题,但是通过字符串拼接的方式生成动态的Html 页面,也会导致代码臃肿,难以维护;
    MVC(Model-View-Controller)模式就扬长避短,将两者完美结合在一起,它把把软件系统分为三个层次:模型(Model)、视图(View)和控制器(Controller);

这里写图片描述

    时序图说明:
这里写图片描述
    1、Web浏览器发送HTTP请求到服务端,被Controller(Servlet)获取并进行处理(例如参数解析、请求转发)
    2、Controller(Servlet)调用核心业务逻辑——Model部分,获得结果
    3、Controller(Servlet)将逻辑处理结果交给View(JSP),动态生成的HTML内容并返回到浏览器显示

总结

    感谢您的阅读,希望对您有所帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148813.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jnpf开发文档_java开发最新技术

    jnpf开发文档_java开发最新技术JNPF快速开发平台JNPF快速开发平台采用前后端分离技术、采用B/S架构开发,形成一站式开发多端(APP+PC)使用。使用JNPF开发平台可以简单、快速、高效的构建各种类型java项目。JAVA版介绍JNPF.java版采用前后端分离,可将代码直接导入idea运行,也可将前后端代码利用ngnix分开部署。JNPF主体架构、技术采用前后端分离技术,主体架构为B/S,PC端和APP混合开发。前后端分离特点JNPF快速开发平台平台采用全新的前后端分离架构模式。前…

    2022年8月23日
    4
  • 报错注入详解_报错注入的过程

    报错注入详解_报错注入的过程报错注入报错注入是SQL注入的一种。利用前提:页面上没有显示位,但是需要输出SQL语句执行错误信息。比如mysql_error()优点:不需要显示位缺点:需要输出mysql_error()的报错信息报错函数1、floor报错注入floor()报错注入是利用count()、rand()、floor()、groupby这几个特定的函数结合在一起产生的注入漏洞,准确的说是floor,count,groupby冲突报错。报错原理:利用数据库表主键不能重复的原理,使用GROUPBY分组,产生主

    2022年9月30日
    0
  • Java字符串转集合_java集合转数组

    Java字符串转集合_java集合转数组数组转集合方法使用Arrays.asList(数组)代码如下: //定义一个字符串 Stringzhuan=”1,2,3,4,5,6,7,8,9″; //分割字符串String[]split=zhuan.split(“,”);//把数组转成集合List<String>stringList=Arrays.asList(split);//输出结果S

    2022年9月19日
    0
  • simhash是什么_批复的适用情况

    simhash是什么_批复的适用情况需求是这样的:给出一个文档集合,以及一个领域概念集合,要求根据这些领域概念计算文档的相似性。首先想到的是利用余弦相似性计算。起初得到的集合有大概几万篇文档,如果对每对文档进行余弦相似度计算,会导致时间复杂度较高,于是发现了Simhash方法。由于已经给出了用于计算哈希值的关键词(即这些领域概念),就省去了对文章进行分词的步骤。每篇文档都用其领域概念列表计算出文档的哈希值,并使用这些

    2022年10月1日
    0
  • java getclassloader_关于getClass(),Object.class,getClassLoader的理解

    java getclassloader_关于getClass(),Object.class,getClassLoader的理解1、对Class类的理解:Class类包含了类的信息,如构造方法、方法、属性,可用于反射。以下是所有方法2、获取Class类对象的几种方法:Testtest=newTest();(1).test.getClass();在运行时确定,所以运行实例才是该类对象。super.getClass()不能获得父类的类对象,仍然是当前类对象。获得父类类对象:test.getClass().getSup…

    2022年6月11日
    20
  • java面试题高级_Java高级面试题整理(附答案)[通俗易懂]

    java面试题高级_Java高级面试题整理(附答案)[通俗易懂]javajava8java开发Java高级面试题整理(附答案)这是我收集的10道高级Java面试问题列表。这些问题主要来自Java核心部分,不涉及JavaEE相关问题。你可能知道这些棘手的Java问题的答案,或者觉得这些不足以挑战你的Java知识,但这些问题都是容易在各种Java面试中被问到的,而且包括我的朋友和同事在内的许多程序员都觉得很难回答。1…

    2022年7月18日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号