servlet是运行在web服务器上的小型java程序,通常通过http(超文本传输)协议接收和响应来自web客户端的请求,servlet一定要实现javax.servlet.Servlet接口,还要在web.xml中部署之后才能使用。
Sevlet接口中的方法:
void init(ServletConfig config) Servlet实例被创建时调用,做初始化工作。
Sevlet对象在整个Sevlet生命周期中只被创建一次(init()只被调用一次,Servlet第一次被使用时),后面再使用是还是同一个Servlet对象。
void service(ServletRequest req, ServletResponse res) 响应函数,用于填充Servlet要处理的逻辑代码
void destroy() Servlet对象被销毁时调用
Servlet被销毁的三种情况:web应用reload、关闭tomcat、关机
Servlet生命周期:从调用init()开始,到调用destroy()结束。
开发Servlet的三种方法:
一、实现javax.servlet.Servlet接口(实现上述五个方法即可)
二、继承javax.servlet.GenericServlet类(实现该类的service方法即可)
javax.servlet.GenericServlet实现了javax.servlet.Servlet接口,并实现了除service()方法之外的其他方法,因此我们用这种方法创建Servlet时只用覆盖父类的service()方法。
三、继承javax.servlet.HttpServlet类(实现该类的doGet和doPost方法即可)
javax.servlet.HttpServlet类继承了javax.servlet.GenericServlet类,主要用于http协议处理的web应用。该类提供了doGet方法和doPost方法供程序猿重写。web使用get方式提交时调用doGet方法,web使用post方式提交时调用doPost方法。
在实际开发中,doGet和doPost方法的业务逻辑通常是相同的,可以只实现其中一个方法,然后在另一方法中调用该方法。public class SemesterInfoServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//你的业务逻辑
}
}
servlet映射:
servlet开发完成之后还要在web.xml文件中部署才能使用,在web.xml文件中部署的就是servlet映射和一些参数属性。
<servlet>
3.<servlet-name>servlet名字</servlet-name>
4.<servlet-class>该servlet的实际url</servlet-class>
</servlet>
<servlet-mapping>
2.<servlet-name>servlet名字</servlet-name>
1.<url-pattern>/申请调用该servlet时填写的url</url-pattern>
</servlet-mapping>
找到servlet的步骤如上面标注所示:
①找到与调用处对应的url-pattern
②查阅映射的servlet-name
③到<servlet>标签中找到相同的servlet-name
④根据servlet-class找到实际的servlet位置