什么是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的方式)。