从第一次调用, 到服务器关闭。 如果在 web.xml 中配置了 load-on-startup 则是从服务器开启到服务器关闭。
/**
* Servlet的生命周期:
* 1、 从第一次调用到服务器关闭。文件删了都可以运行
* 2、 如果Servlet在web.xml中配置了load-on-startup, 生命周期为
从服务器启动到服务器关闭
* 注意:
* init方法是对Servlet进行初始化的一个方法, 会在Servlet第一次
加载进行存储时执行
* destory方法是在servlet被销毁时执行, 也就服务器关闭时。
* @author MyPC
**
/
public class ServletLife extends HttpServlet {
//初始化方法, 在servlet第一次加载内容的时候被调用
@Override
public void init() throws ServletException {
System.out.println("servlet初始化完成");
} /
/service方法, 真正处理请求的方法
@Override
protected void service(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException, IOException {
resp.getWriter().write("servlet life");System.out.println("servlet life");
}
@Override
public void destroy() {
System.out.println("我被销毁了...");
}
}
web.xml 配置:
<servlet>
<description>This is the description of my J2EE
component</description>
<display-name>This is the display name of my J2EE
component</display-name>
<servlet-name>ServletLife</servlet-name>
<servlet-class>com.bjsxt.servlet.ServletLife</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>my</servlet-name>
<url-pattern>/my</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletLife</servlet-name>
<url-pattern>/life</url-pattern>
</servlet-mapping>
Service 和 doGet 和 doPost 方法的区别
Service 方法:
不管是 get 方式还是 post 方式的请求, 如果 Servlet 类中有
service 方法, 则优先调用 Service 方法。
doGet 方法:
在没有 service 方法的情况下如果是 get 方式的请求所调
用的处理请求的方法
doPost 方法:
在没有 service 方法的情况下如果是 post 方式的请求所调
用的处理请求的方法
Servlet 的常见错误总结:
Servlet 的常见错误总结
- 404错误:资源未找到
- 原因一: 在请求地址中的servlet的别名书写错误。
- 原因二: 虚拟项目名称拼写错误
- 500错误: 内部服务器错误* 错误一:
- java.lang.ClassNotFoundException: com.bjsxt.servlet.ServletMothod
- 解决:
- 在web.xml中校验servlet类的全限定路径是否拼写错误。
- 错误二:
- 因为service方法体的代码执行错误导致
- 解决:
- 根据错误提示对service方法体中的代码进行错误更改。
- 405错误:请求方式不支持
- 原因:
- 请求方式和servlet中的方法不匹配所造成的。
- 解决:
- 尽量使用 service 方法进行请求处理, 并且不要再 service 方法中调用父类的
service。