到底什么是serverlet啊?能不能打个形象的比方啊?谢谢!(它和JAVABEAN有什么区别啊?是不是就是JAVABEAN啊?)
我刚学jsp,想知道serverlet到底是什么啊?我也搜了百度,上面说"serverlet是扩展了基于request/response(请求/响应) 的服务器的功能。"可我真的没理解这是什么意思啊!!!我想请教大侠:1.到底什么是serverlet啊?能不能打个形象的比方啊?谢谢!2.它和JAVABEAN有什么区别啊?是不是就是JAVABEAN啊?
我刚学jsp,想知道serverlet到底是什么啊?我也搜了百度,上面说"serverlet是扩展了基于request/response(请求/响应) 的服务器的功能。"可我真的没理解这是什么意思啊!!!我想请教大侠:1.到底什么是serverlet啊?能不能打个形象的比方啊?谢谢!2.它和JAVABEAN有什么区别啊?是不是就是JAVABEAN啊?
2.不是javabean
容器截获http请求,判断需要用哪个servlet处理(也就是说一个容器内可以有多个servlet),之后实例化该servlet,把请求传给该servlet,经servlet处理后的结果(往往是一个http返回流)由容器返回给客户端
如果你细心的观察的话,会发现
定义JavaBean的时候
package djf.bl;
public class clasBL{
.
.
.
}
而定义servlet的时候
package djf.servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class add_clas extends HttpServlet{
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException
{
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException
{
}
}
当然,在Java中类是组织代码的最基本单位,任何功能都是由一个类(静态成员或方法)或者一个对象(非静态成员或方法)来实现的。
JavaBean可以说是一个普普通通的类,看我上面列出的代码,它没有继承任何类,所以,可以自由自在的使用它;Servlet则继承了HttpServlet类,同时要实现doGet()和doPost()方法,那么它就是有特殊功能的类了。doPost用于处理来在<form method=post>的信息,也就是说,如果你在某个JSP页面里面写了<form method=post action=(某个servlet的URL,在web.xml中被指定)>,那么这个servlet的doPost()方法会被触发。
给你举一个简单的例子。
如果我想管理我们班的所有同学信息。
只需要建立一个student表就可以了。
在做ASP的时候,任何东西都是放在*.asp里的,我可以建立一个add_student.asp负责采集用户的数据(也就是做<form>),另一个add_student_save.asp用来接受前面的request数据放入数据库。
但是,在JSP+JavaBean+Servlet的开发方法中。
建立一个add_student.jsp负责采集用户的数据(也就是做<form>)。
将更新数据库操作的方法放入JavaBean,如public void insert(String num,String name);这样就可以得到最好的重用性,你这个函数在哪里调用都可以(如JSP和Servlet)。然后,按照ASP的思想,应该再建立一个add_student_save.jsp来更新数据库了,错,因为更新数据库的基函数已经放在JavaBean里面了,现在的add_student_save.jsp只需要调用这个函数就行了,其实这样还不行。JSP和Servlet本质上是一样的,任何JSP页面都是先被转化为Servlet(*.java)才被执行的(你可以到\tomcat\work\Standalone下看看);它们的区别在于用途,JSP更加适合显示,Servlet更加安全,快。所以我们把调用JavaBean更新放在一个Servlet里面。
变成这样:
add_student.jsp-->form中的action写入servlet的URL
|
|
add_student_save.java-->这使个Servlet,调用JavaBean(student.java)中的基函数来更新数据库。因为这个页面没有什么要显示的,因此用Servlet
JSP规范有两种模式,Model1和Model2--Model1:JSP+JavaBean
Model2:JSP+JavaBean+Servlet其实Servlet就是分担了一部分JSP的功能,主要是处理请求:
如果你在某个JSP页面里面写了<form method=post action=(某个servlet的URL,在web.xml中被指定)>,那么这个servlet的doPost()方法会被触发。(ASPGuy(步惊云)) 以MVC的观点来看这个,JSP--View, Servlet--Controller(页面跳转等),JavaBean(Model,如ASPGuy(步惊云)所说的数据库应用)