java和servlet的区别 javabean和servlet的区别
转载
【段落一】为什么要用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 HttpServlet3.添加 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【段落二】
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。