1. JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。

  2. Servlet和JSP最主要的不同点在于:Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。

  3. JSP侧重于视图,Servlet主要用于控制逻辑。

SP是如何被执行的?执行效率比SERVLET低吗?

  • 当客户端向一个jsp页面发送请求时,Web Container将jsp转化成servlet的源代码(只在第一次请求时),然后编译转化后的servlet并加载到内存中执行,执行的结果response到客户端

  • jsp只在第一次执行的时候会转化成servlet,以后每次执行,web容器都是直接执行编译后的servlet,所以jsp和servlet只是在第一次执行的时候不一样,jsp慢一点,以后的执行都是相同的

如何避免jsp页面自动生成session对象?为什么要这么做?

可以使用页面指令显式关掉,代码如下:

<%@ page session="false" %>

jsp的缺点?

  • 不好调试

  • 与其他脚本语言的交互(可读性差)

说出Servlet和CGI的区别?

  • Servlet处于服务器进程中,只会有一个servlet实例,每个请求都会产生一个新的线程,而且servlet实例一般不会销毁

  • CGI:来一个请求就创建一个进程,用完就销毁,效率低于servlet

简述JSP的设计模式。

在Web开发模式中,有两个主要的开发结构,称为模式一(Mode I)和模式二(Mode II)

首先我们来理清一些概念吧:

  • DAO(Data Access Object):主要对数据的操作,增加、修改、删除等原子性操作。

  • Web层:界面+控制器,也就是说JSP【界面】+Servlet【控制器】

  • Service业务层:将多个原子性的DAO操作进行组合,组合成一个完整的业务逻辑

  • 控制层:主要使用Servlet进行控制

  • 数据访问层:使用DAO、Hibernate、JDBC技术实现对数据的增删改查

  • JavaBean用于封装数据,处理部分核心逻辑,每一层中都用到!

模式一指的就是在开发中将显示层、控制层、数据层的操作统一交给JSP或者JavaBean来进行处理

模式一有两种情况:

完全使用JSP做开发:

  • 优点:

    • 开发速度贼快,只要写JSP就行了,JavaBean和Servlet都不用设计!

    • 小幅度修改代码方便,直接修改JSP页面交给WEB容器就行了,不像Servlet还要编译成.class文件再交给服务器!【当然了,在ide下开发这个也不算是事】

  • 缺点:

    • 程序的可读性差、复用性低、代码复杂!什么jsp代码、html代码都往上面写,这肯定很难阅读,很难重用!

使用JSP+JavaBean做开发:

  • 优点:

    • 程序的可读性较高,大部分的代码都写在JavaBean上,不会和HTML代码混合在一起,可读性还行的

    • 可重复利用高,核心的代码都由JavaBean开发了,JavaBean的设计就是用来重用、封装,大大减少编写重复代码的工作!

  • 缺点:

    • 没有流程控制,程序中的JSP页面都需要检查请求的参数是否正确,异常发生时的处理。显示操作和业务逻辑代码工作会紧密耦合在一起的!日后维护会困难

Mode II 中所有的开发都是以Servlet为主体展开的,由Servlet接收所有的客户端请求,然后根据请求调用相对应的JavaBean,并所有的显示结果交给JSP完成!,也就是俗称的MVC设计模式!

MVC设计模式:

  • 显示层(View):主要负责接受Servlet传递的内容,调用JavaBean,将内容显示给用户

  • 控制层(Controller):主要负责所有用户的请求参数,判断请求参数是否合法,根据请求的类型调用JavaBean,将最终的处理结果交给显示层显示!

  • 模型层(Mode):模型层包括了业务层,DAO层。

总结

  • (1)ModelI,JSP+JavaBean设计模式。

  • (2)ModelII,MVC设计模式。

jsp和servlet的关系的更多相关文章

  1. 图解JSP与Servlet的关系

      Servlet是Java提供的用于开发Web服务器应用程序的一个组件,运行在服务器端,由Servlet容器所管理,用于生成动态的内容.Servlet是平台独立的Java类,编写一个Servlet, ...

  2. java Web jsp和servlet的关系

    JSP在本质上就是SERVLET,但是两者的创建方式不一样Servlet完全是JAVA程序代码构成,擅长于流程控制和事务处理,通过Servlet来生成动态网页很不直观JSP由HTML代码和JSP标签构 ...

  3. JSP与Servlet的关系

    之前的文章里有说过,其实Servlet比JSP出现的早,JSP的本质就是Servlet,但是一个是jsp页面,一个是java类,硬要说他们的本质是一样的,搁谁都有点难以置信.后面的结论会更加让你吃惊. ...

  4. JSP 与 Servlet 的关系

    以下摘自维基百科: Java服务器页面(JSP)是HttpServlet的扩展.由于HttpServlet大多是用来响应HTTP请求,并返回Web页面(例如HTML.XML),所以不可避免地,在编写s ...

  5. jsp与servlet(转)

    一.基本概念 1.1 Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面.它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器 ...

  6. JSP与Servlet之间的关系事例说明

    Servlet Servlet 没有 main 方法,不能够独立的运行,它的运行需要容器的支持,Tomcat 是最常用的 JSP/Servlet 容器.Servlet 运行在 Servlet 容器中, ...

  7. Jsp和Servlet关系

    为什么会出现Jsp? 其实对于服务器来说它只认识Servlet,我们完全可以在Servlet用resp.getWriter().write("");画出网页的界面,但是仅仅一个很简 ...

  8. tomcat和servlet的关系

    一.什么是servlet? 处理请求和发送响应的过程是由一种叫做Servlet的程序来完成的,并且Servlet是为了解决实现动态页面而衍生的东西.理解这个的前提是了解一些http协议的东西,并且知道 ...

  9. JSP+JavaBean+Servlet技术(MVC模型)

    一,Servlet开发用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求.服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应.浏览器收到回应,再把回应的内容显示出来.这种 ...

随机推荐

  1. Java学习笔记(十三):package关键字

  2. 十七、 Observer 观察者设计模式

    设计: 代码清单: Observer public interface Observer { void update(NumberGenerator generator); } DigitObserv ...

  3. 2. Go变量(Variables)

    变量是什么,变量的命名规则,以及一些关于变量的基础没有必要再说了,我想学习Go语言的有很多都是从其他语言转过来的,那我们直接进入正题. 声明一个变量: var age int 给变量赋值: age = ...

  4. 安装64位office时,弹出提示,要求卸载32位office

    运行 regedit,进入到HKEY_CLASSES_ROOT\Installer\Products下,删除0000510开头的项或00002开头项.然后重启计算机. 参考:  https://blo ...

  5. 20175314 《Java程序设计》第六周学习总结

    20175314 <Java程序设计>第六周学习总结 教材学习内容总结 第七章:内部类与异常类 内部类:内部类就是在一个类中再定义一个类,这个在类中定义的类就叫做内部类,而包含内部类的类叫 ...

  6. java爬虫框架webmagic学习(一)

    1. 爬虫的分类:分布式和单机 分布式主要就是apache的nutch框架,java实现,依赖hadoop运行,学习难度高,一般只用来做搜索引擎开发. java单机的框架有:webmagic和webc ...

  7. java_22.1 Map 的应用

    定义一个九年级,年级里面有一班和二班.且有属于自己班的学生. 九年级 一班 001 张三 002  李四 二班 001 王五 002 马六 把同学都遍历出来 package demo; import ...

  8. sql注入case

    or 1=1or 1=1--or 1=1#or 1=1/*admin' --admin' #admin'/*admin' or '1'='1admin' or '1'='1'--admin' or ' ...

  9. 简述Python入门小知识

    如今的Python开发工程师很受企业和朋友们的青睐,现在学习Python开发的小伙伴也很多,本篇文章就和大家探讨一下Python入门小知识都有哪些. 扣丁学堂简述Python入门小知识Python培训 ...

  10. 第六次spring会议

    昨天所做之事: 我对软件加上了保密功能. 今天所做内容: 我对软件加上了一键解密功能. private void 一键还原ToolStripMenuItem_Click(object sender, ...