jsp和servlet的区别和适用场合?

winer2008 2008-02-26 09:01:10
什么时候用servlet,什么时候用jsp
...全文
174 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ee4456 2008-02-27
  • 打赏
  • 举报
回复
有些空间只支持JSP,但是不支持SERVLET,有些则支持,一般象大家说一样,jsp为表示层(view),servlet为控制层(controller)
logi22 2008-02-27
  • 打赏
  • 举报
回复
mark
tonychen008 2008-02-27
  • 打赏
  • 举报
回复
JSP让设计者更方便,不用进行逻辑处理,通过服务器编译成servlet处理,servlet主要是逻辑处理,挺麻烦的。.jsp文件第一次运行时都要进行servlet处理,所以第一次速度比较慢,以后只要你不修改.jsp页面,速度就会快的。其实两者没有太大的区别。
yibunengjing 2008-02-26
  • 打赏
  • 举报
回复
按照开发惯例来说,后台的一些处理都是在servlet中调用,而jsp更多的是用来作为显示数据,不做多的逻辑运算
yami251139 2008-02-26
  • 打赏
  • 举报
回复
沒區別。。。
號稱如果是正宗的mvc的話servlet里面不要處理視圖jsp里面不要寫邏輯
就這樣了 看你需要的。。。
wsbd10086 2008-02-26
  • 打赏
  • 举报
回复
MVC吧
zs_han 2008-02-26
  • 打赏
  • 举报
回复
逻辑处理的用servlet比较好,
视图处理的用jsp的比较好,
总之,这两个效果是一样的.
liang8305 2008-02-26
  • 打赏
  • 举报
回复
不用编译,就是你修改那个JSP后保存就可以不用管了
servlet修改完了还要编译成.class,放到\WEB-INF\classes目录里,多麻烦哦


另外,大家一定要树立一个观点
servlet取得结果之后不要再负责展示结果
应该把结果存到一个request,session里面
然后转向到“展示结果”页面,让那个页面负责展示


tang75132 2008-02-26
  • 打赏
  • 举报
回复
楼上说的对MVC架构中,JSP为视图显示页面(V),servlet为逻辑层(C)。
ryan_1223 2008-02-26
  • 打赏
  • 举报
回复
楼上,你所说的不用编译是指不用你再主动编译
当客户端请求时,应用服务器还是要编译成servlet的
还是逻辑和页面分开,这样比较清晰。
vincent343425185 2008-02-26
  • 打赏
  • 举报
回复
如果html语句占了大多数 用来表现页面 用jsp
如果逻辑处理占了大多数 用servlet
想想 如果都是html然后都放在servlet out中多麻烦 特别是" 之类的转换 容易出错的
liang8305 2008-02-26
  • 打赏
  • 举报
回复
另外,加一个jsp的优点:

直接改,保存就完成修改
不用再编译一次了,方便!
liang8305 2008-02-26
  • 打赏
  • 举报
回复
没区别

jsp最后都是要转成servlet才运行的

我就不喜欢用jsp处理业务逻辑,我用jsp就当是一个html来用
Java Web编程宝典-十年典藏版.pdf 是PDF电子书,不是源码。共分2个包。 《Java Web编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用Java Web进行程序开发的各种技术、技巧。全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用、Spring核心之IoC、Spring核心之AOP、程序调试与发布等内容;第2篇为范例演练篇,主要包括基础知识相关、数据库相关、图像与文件相关、图表与报表相关、Ajax等相关的范例;第3篇为项目实战篇,主要包括讯友联系人管理模块、播客视频管理模块、博客管理模块、明日知道论坛管理模块等4个小型项目:第4篇为商业系统篇,主要包括一个大型的商业项目,即天下淘网上购物商城系统。 《Java Web编程宝典(十年典藏版)》附有配套DVD光盘,光盘中提供了书中全部实例和项目的源代码。这些源代码全部经过精心调试,能够在Windows XP、WindowsServer2003及Windows7操作系统下编译和运行。 《Java Web编程宝典(十年典藏版)》适用于Java Web的初学者、编程爱好者,同时也可以作为培训机构、大中专院校老师和学生的学习参考用书。 目录 第1篇 技能学习篇 第1章 驾驭Ja垤Web开发环境 ——开启JavaWeb开发之门 1.1 本章学习任务 1.1.1 本章知识体系 1.1.2 实例开发任务 1.2 初窥JavaWeb应用 1.2.1 理解C/S结构 1.2.2 理解B/S结构 1.2.3 B/S与C/S的区别 1.2.4 了解JavaWeb应用的成功案例 1.3 JavaWeb开发的基石-开发工具包JrDK 1.3.1 下载JDK 1.3.2 JDK的安装 1.3.3 配置和测试JDK 1.4 JavaWeb应用的Web服务器Tomcat 1.4.1 Web应用服务工作原理 1.4.2 web应用服务器汇总 1.4.3 获取Tomcat 1.4.4 熟悉Tomcat的五脏六腑 1.5 JavaWeb开发利器之Eclipse 1.5.1 获取Eciipse 1.5.2 运行Eclipse 1.5.3 打造中文版Eclipse 1.6 做好项日开发的准备工作 1.6.1 集成Eelipse与Tomcat 1.6.2 完善web项目开发所需配置 1.7 实战检验 1.7.1 创建第一个Java Web项目 1.7.2 将图片输出到JSP页面之中 1.8 疑难解惑 1.8.1 Tomcat端口被占用导致不能启动 1.8.2 Eelipse没有创建JSP项 1.9 精彩回顾 第2章 JavaWeb开发必修课 ——JSP语法 2.1 本章学习任务 2.1.1 本章知识体系 2.1.2 实例开发任务 2.2 什么是JSP 2.2.1 JSP简介 2.2.2 理解JSP运行原理 2.3 使用JSP指令标识 2.3.1 页面指令page的使用 2.3.2 文件包含指令include的使用 2.3.3 引用标签库指令taglib的使用 2.4 使用JSP脚本 2.4.1 在JSP中应用代码片段 2.4.2 使用JSP表达式 2.4.3 声明标识的使用 2.5 注释的魅力 2.5.1 基本的HTML注释 2.5.2 JSP隐藏注释 2.5.3 代码片段中的注释 2.6 常用的JSP动作标识 2.6.1 使用包含动作标识<jsp:illclude> 2.6.2 使用请求转发的动作标识<jsp:forward> 2.6.3 子动作标.iR<jsp:param>~使用 2.7 实战检验 2.7.1 输出九九乘法表 2.7.2 JSP中实现随机抽奖 2.8 疑难解惑 2.8.1 在JSP页面中编写中文之后不能保存 2.8.2 访问JSP页面出现乱码 2.8.3 在JSP页面中使用Include指令后,JSP不能编译 2.9 精彩回顾 第3章前人栽树后人乘凉 ——、JSP内置对象 3.1 本章学习任务 3.1.1 本章知识体系 3.1.2 实例开发任务 3.2 简化开发JSP内置对象概述 3.2.1 为什么需要JSP内置对象 3.2.2 内置对象及其使用场合 3.3 out输出对象的应用 3.3.1 向客户端输出数据 3.3.2 管理相应缓冲区 3.4 request请求对象的应用 3.4.1 获取请求参数 3.4.2 解决中文乱码 3.4.3 获取客户端数据 3.5 response回应对象的应用 3.5.1 HTTP头信息的操作 3.5.2 设置MIME类型 3.5 13页面重定向操作 3.6 Session会话对象的应用 3.6.1 session的生命周期 3.6.2 会话的创建与获取. 3.6.3 移除session中的数据 3.6.4 设置session的有效时间 3.7 application应用对象应用 3.7.1 application的生命周期 3.7.2 application中数据的操作 3.7.3 Web应用初始化参数的配置 3.7.4 application对象应用示例 3.8 其他内置对象的应用 3.8.1 应答与请求的page对象 3.8.2 页面上下文的page Context对象 3.8.3 获取web.xml配置信息的config对象 3.8.4 获取异常信息的exception对象 3.9 实战检验 3.9.1 将网页保存为Word文档 3.9.2 学生管理系统中用户登录模块 3.10 疑难解惑 3.10.1 表单提交中文数据乱码 3.10.2 如何在超链接中传递多个参数 3.10.3 重定向后出现404错误 3.11 精彩回顾 第4章 体验面向对象 1IavaBean技术 4.1 本章学习任务 4.1.1 本章知识体系 4.1.2 实例开发任务 4.2 JavaBean简介 4.2.1 JavaBean产生的背景 4.2.2 使用JavaBean的意义 4.2.3 了解JavaBean的规范. 4.2.4 Eelipse对JavaBean方法的支持 4.3 JavaBean与JSp的完美结合 4.3.1 更加对象化的JSP开发 4.3.2 <jsp:useBean>标识的应用 4.3.3 <jsp:getProperty>标识的应用 4.3.4 <jsp:setProperty>标识的应用 4.3.5 开发体验之JavaBean实现档案录入 4.4 实战检验 4.4.1 利用JavaBean实现电子时钟 4.4.2 通过JSP、JavaBean实现调查问卷 4.5 疑难解惑 4.5.1 不能获取JavaBean的属性信息 4.5.2 不能为JavaBean属性赋值 4.5.3 <jsp:setProperty>获取不到表单中的所有信息 4.6 精彩回顾 第5章 Web应用的缔造者 ——Servlet技术 5.1 本章学习任务 5.1.1 本章知识体系 5.1.2 实例开发任务 5.2 与时俱进——了解Servlet技术 5.2.1 初步认识Servlet 5.2.2 ServletJSP区别 5.3 为我所用——Servlet技术开发 5.3.1 Servlet在JavaEE中的结构体系 5.3.2 Servlet核心API 5.3.3 创建第一个Servlet对象 5.3.4 Servlet配置解析 5.3.5 使用Servlet处理业务逻辑 5.3.6 掌握Servelet处理流程 5.3.7 Eclipse快速创建Servlet 5.4 一夫当关——配置并应用Servlet过滤器 5.4.1 过滤器的基本原理 5.4.2 过滤器的核心API 5.4.3 过滤器的创建与配置 5.4.4 JavaWeb中字符乱码分析 5.4.5 实现字符编码过滤器 5.5 实战检验 5.5.1 通过Servlet实现录入用户信息 5.5.2 应用过滤器实现网页计数器 5.6 疑难解惑 5.6.1 访问Servlet出现404错误 5.6.2 修改Servlet无效 5.6.3 创建过滤器并没有实现过滤效果 5.7 精彩回顾 第6章 打造无脚本的JSP页面 ——EL与JSTL标签库 6.1 本章学习任务 6.1.1 本章学习任务 6.1.2 实例开发任务 6.2 EL与ISTL简介 6.2.1 什么是EL 6.2.2 什么是JSTL 6.3 EL表达式的应用 6.3.1 EL的基本语法. 6.3.2 EL的运算符 6.3.3 EL的隐含对象 6.4 JSTL核心标签库的应用 6.4.1 数据访问标签 6.4.2 流程控制标签 6.4.3 循环标签 6.5 JSTL格式标签库的应用 6.5.1 使用格式化数字 6.5.2 使用格式化时间 6.6 实战检验 6.6.1 根据星期显示不同的提示信息 6.6.2 读取数组中的数据 6.7 疑难解惑 6.7.1 JSTL的优点 6.7.2 JSTL和EL的关系 6.8 精彩回顾 第7章 动态网站之灵魂 ——数据库应用开发 7.1 本章学习任务 7.1.1 本章知识体系. 7.1.2 实例开发任务 7.2 My SQL数据库的安装与使用 7.2.1 安装并配置MyS QL 7.2.2 安装MySQLGUITool 7.2.3 连接MySQLAdministrator. 7.2.4 创建数据库 7.2.5 创建数据表 7.2.6 编辑数据表中的数据 7.3 JDBC技术 7.3.1 JDBC技术原理 7.3.2 JDBC连接数据库的过程 7.3.3 JDBC连接MySQL数据库 7.4 JDBC核心API 7.4.1 代表数据库连接的Connection接口 7.4.2 驱动程序管理器DriverManager类 7.4.3 执行SQL语句的Statement接口 7.4.4 预编译执行SQL语句的PreparedStatement接口 7.4.5 结果集ResultSet接1:2 7.5 JDBC操作数据库 7.5.1 向数据库中插入数据 7.5.2 从数据库中查询所需数据 75.3 修改数据库中的数据 7.5.4 删除无用的数据 7.5.5 批处理数据操作 7.5.6 应用存储过程进行数据操作 7.6 实战检验 7.6.1 JDBC连接SQLServer2005数据库 76.2 网站用户注册 7.7 疑难解惑 7.7.1 Prepared Statement与Statement 7.7.2 预编译的理解 7.8 精彩回顾 第8章 浅尝辄止 ——初识Struts2 8.1 本章学习任务 8.1.1 本章知识体系 8.1.2 实例开发任务. 8.2 Struts2概述 8.2.1 理解MVC原理 8.2.2 Struts2框架的产生 8.2.3 Struts2的结构体系 8.3 Struts2入门 8.3.1 Struts2的获取与放置 8.3.2 第一个Struts2程序 8.4 Action对象 8.4.1 认识Action对象 8.4.2 请求参数的注入原理 8.4.3 Action的基本流程 8.4.4 什么是动态Action 8.4.5 动态Action的应用 8.5 Struts2的配置文件 8.5.1 Struts2的配置文件类型 8.5.2 Struts2的包配置 8.5.3 名称空间配置 8.5.4 Action相关配置 8.5.5 通配符实现简化配置 8.5.6 返回结果的配置 8.6 Struts2的开发模式 8.6.1 实现与ServletAPI的交互 86.2 域模型DomainModel 86.3 驱动模型ModelDriven 8.7 实战检验 8.7.1 Struts2处理表单数据 8.7.2 使用M印类型的request、session、application 8.8 疑难解惑 8.8.1 Struts Prepare And Execute Filter过滤器 8.8.2 struts.xml文件配置出错 8.9 精彩回顾 第9章 庖丁解牛 ——揭密Struts2高级技术 9.1 本章学习任务 9.1.1 本章知识体系 9.1.2 实例开发任务 9.2 OGNL表达式语言 9.2.1 认识OGNL 9.2.2 Struts2框架中的OGNL 9.2.3 操作普通的属性与方法 9.2.4 访问静态方法与属性 9.2.5 访问数组 9.2.6 访问List、Set、M印集合 9.2.7 投影与选择 9.3 Struts2的标签库 9.3.1 数据标签的应用 9.3.2 控制标签的应用 9.3.3 表单标签的应用 …… 第10章 邂逅数据库持久化利器 第11章 探秘数据库持久化利器 第12章 简化企业开发瑰宝之一 第13章 简化企业开发瑰宝之二 第14章 程序员的伴侣 第2篇 范例演练篇 第15章 学以致用 第16章 幕后英雄的用武之地 第17章 Web开发的制胜法宝 第18章 数据分析大师 第19章 体验完美视觉盛宴 第3篇 项目实战篇 第20章 通讯录开发模板 第21章 打造自己的视频网站 第22章 自我展示的空间 第23章 技术交流的平台 第4篇 商业系统篇 第24章 基于SSH2的天下淘商城
JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 2、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 3、int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 4、String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。 5、运行时异常与一般异常有何异同? 异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。 6、说出Servlet的生命周期,并说出Servlet和CGI的区别Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。 7、说出ArrayList,Vector, LinkedList的存储性能和特性 ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 8、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。 EJB包括Session Bean、Entity Bean、Message Driven Bea

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧