浅探servlet
2018-05-01 本文已影响0人
冒险小A
准备环境(servlet规范):
- 创建一个java project名为helloServletWeb
- 在项目下创建文件夹名为webapp,表示web项目的根
- 在webapp下创建文件夹名为WEB-INF
- 在WEB-INF下创建文件夹classes作为java代码编译后字节码存放的位置
在WEB-INF下创建文件夹lib存放需要的库 - 将classpath改为webapp/WEB-INF/classes
- 复制web.xml到webapp下
- 复制tomcat根目录/lib/servlet-api.jar到WEB-INF/lib下,并作buildpath
编写代码:
编写servlet程序,使之实现javax.servlet.Servlet接口,并覆盖接口中的方法
public class HelloServlet implements Servlet {......(实现方法)}
此时HelloServlet类和tomcat并没有关联,我们需要告诉tomcat来管理这个类
(tomcat是servlet的容器,负责servlet对象的生命周期和方法调用)
部署项目并访问:
复制webapp路径打开tomcat根目录/conf/server.xml
访问规范:ip:port/contextPath/资源名
所以此时浏览器访问localhost:80/FirstServletProject/hello
结果如下
servlet的生命周期:
创建对象→初始化→运行操作→销毁操作
构造器:在服务端程序第一次被请求的时候调用,只被调用一次。
void init (ServletConfig config) :在构造器执行完毕之后,调用init方法,也只会执行一次.
void service(ServletRequest req,ServletResponse resp) :每一次请求都会执行该方法,
void destroy() :正常关闭Tomcat才会执行(该方法不一定会被执行,我们没必要在其中编写清理资源关闭资源的操作).
注意到,其中构造器必须要使用public修饰,因为底层创建对象是用Class.newInstance()方法.
这种创建对象的方法要求有一个公共的无参数的构造器