jsp、servlet与javabean的区别180110

【段落一】为什么要用javabean和servlet而不是只用jsp?以及jsp、servlet与javabean在做什么
相同点 javabean和servlet  它们都是.java文件,都要编译成.class文件放到WEB-INF目录下
首先,JavaBean和Servlet虽都是Java程序,但是是完全不同的两个概念。
引用mz3226960提出的MVC的概念,即M-model-模型:JavaBean;V-view-表现:JSP页面;C-control-控制和处理:Servlet。
其实所有的程序都可以写在jsp页面里,但是存在以下问题:
1、执行效率低下;
2、不安全,所有的程序都在jsp文件中可见,毫无知识保护可言;
3、逻辑混乱。这样让JSP文件的逻辑很难懂。
于是提出了MVC模式,即将一些处理用的程序从JSP中分离出来,让JSP页面只负责显示,几乎是html,只不过可以动态的读取数据和进行少量的逻辑处理,比如循环、判断等。
可能不举例说你还是不懂,我就举个最简单的例子——留言板。
JSP的职责:从数据库取出数据,显示所有的留言信息(当中要用少量的,简单的逻辑处理:循环)、显示签写留言的页面(几乎全部都是html)。
Servlet的职责:接受签写留言页面提交过来的标单数据,进行数据检验,如果正确,则存入数据库并返回留言的显示页面;如果数据有误,给出错误提示后返回签写留言的页面。可以看到,这个就叫做逻辑处理。这些你也完全可以放在JSP中实现,但是用Servlet,其效率和安全性高多了,也让JSP页面变得很简洁明了。

JavaBean的职责:其实一般的留言板是不需要用到JavaBean的,但在这里,为了让你明白,还是牵强的把JavaBean用进来。所谓JavaBean,就是一个很简单的Java类,比如说,网上商城的所有商品是一个商品类,论坛中所有的帖子是一个帖子类,这里,留言板的所有留言是一个留言类,叫做Message类。每个类有着它特定的属性和方法。对于Message类,其属性有主题、内容、日期、留言者等,其方法可以有添加留言、删除留言、修改留言等。使用JavaBean,主要是为了让JSP编程能够适应Java程序员的习惯,直接对类和实例进行操作,而不是直接去操作数据库。

相关评论:其实我觉得一般初学者应先有个框架、大概的了解,随后再深入学习,框架不明白,学习不明确

【段落二】

什么是Servlet?

所谓 Servlet 是指运行在服务端的Java小程序。用于响应客户机的请求。在默认情况下,Servlet 采用一种无状态的请求-响应处理方式。Servlet代码的主要作用是为了增强Java服务器端的功能,它运行在服务器端,用于接收并且处理浏览器客户端发出的请求,该请求是通过配置文件 web.xml 中的相关配置进行转发的。也就是说Servlet是一个标准的Java类,它符合Java类的一般规则。和一般Java类不同之处只在于Servlet可以处理HTTP请求。
在写Servlet程序时,一定要注意的是:作为一个Servlet,它必须是HttpServlet的子类,在使用时需要重写对应的方法。可以重写下面的方法。
doGet()方法:响应客户端的Get请求。
doPost()方法:响应客户端的Post请求。
也可以直接重写service方法以声明在接收对应请求后具体的处理过程。
JavaBean和Servlet的不同 :
Type1: 一般的JavaBean中,只有属性声明和该属性对应的setXxx和getXxx方法,(一般不建议)不包含业务逻辑;这种JavaBean可以简单地理解为“数据对象”即可。
Type2: 还有一种JavaBean,其内包含业务处理逻辑,用于处理特定的业务数据;一般使用上面所述的“数据对象”(当然也可能不使用)。
Servlet主要是用来:接收请求、封装‘Type1’的JavaBean、调用‘Type2’的JavaBean的相应业务逻辑方法、向客户端发出响应。
以上是Struts 1.x所使用的模式:ActionForm 就是 Type1的JavaBean,ActionBean就是Type2的JavaBean,ActionServlet即是上面所述的Servlet。 Struts 2.x则是使用 Type1 + Type2的方式(数据对象和业务处理)和Servlet相结合的方式(实际上就是Webwork的方式)。

【个人原创部分】

增加  如何创建MVC模型的  C-control-控制和处理-Servlet    

1.引入jar包   2.创建类,并 

extends HttpServlet
3.添加  doGet() doSet()方法          4.在web.xml里面注册

<web-app>      
    <servlet>
        <servlet-name>HelloWorld</servlet-name>
        <servlet-class>HelloWorld</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>HelloWorld</servlet-name>
        <url-pattern>/HelloWorld</url-pattern>
    </servlet-mapping>
</web-app>  
javabean常见包名 com.gongsi.xiangmu.POJO 和 com.gongsi.xiangmu.model

略有改动 原链接

【段落一】 https://zhidao.baidu.com/question/32393912.html

【段落二】http://blog.csdn.net/sinat_25398439/article/details/53168420

侵删 联系我的个人网站(默认从新窗口打开) 忆空吟yikongyin



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值