学过的东西你不亲自做一遍,你根本连印象都留不下来。 废话不多说,这个项目我就拣重点说。
首先马老师教了我们怎么创建一个Servlet:
1.首先你需要new一个java web项目
2.然后在项目右键创建一个Servlet,如下图所示。
你需要填这么几个信息
package: 你最好填上包名,别让这个servlet成为一个裸体类。
Name:你Servlet类的名字
public:这个就public就行,除非你需要仅对本包的类开放你的数据,否则不需要选default(又叫friendly)
superclass:父类人家帮你写好了,是继承HttpServlet类。
这里涉及到Servlet的重要知识,容我啰嗦几句。
第1.明确Servlet的作用:从客户端接收请求--》处理请求---》从服务器端完成响应,返还给客户端
第2.我们需要知道实现一个Servlet类的三种方式:
(1)实现Servlet接口
Servlet有五个方法,其中有3个是servlet生命周期方法
void init(ServletConfig config) ,这个参数我一会解释。创建Servlet的时机一会儿说。
void service(ServletRequest req, ServletResponse res) 这个的参数好理解,请求和响应都需要一个对象,这样你才能操作请求和响应的方法。
void destroy() 用于销毁Servlet。销毁Servlet的时机一会儿说。
getServletConfig()
该方法返回容器调用init()方法时传递给Servlet对象的ServletConfig对象,ServletConfig对象包含了Servlet的初始化参数。
getServletInfo()
返回一个String类型的字符串,其中包括了关于Servlet的信息,例如,作者、版本和版权。该方法返回的应该是纯文本字符串,而不是任何类型的标记。
(2)继承GenericServlet抽象类
(3)继承HttpServlet抽象类(它是GenericServlet类的子类) 这是java默认的,也是我们推荐的一种方式,用这种方式可以支持http的方式运行Servlet
Servlet接口只有带参的init方法。
Generic里面有ServletConfig config私有变量,init(ServletConfig config),init()方法。
我们自己写Servlet的时候没必要重写带参的init方法,如果一定要写就加上super.init(config),否则这个变量没初始化就要报空指针。要不然你就直接重写init()方法,这个方法并没被实现。而且带参的也会调用不带参的。
源码如下,一目了然