文章目录
Servlet技术
Servlet概述:
什么是servlet:它是运行在web服务器端的一个java小程序,简单来说,它就是一个java类
在使用servlet时,需要导入javax.servlet下的jar包。比如:tomcat服务器提供了
servlet的servlet-api.jar包,所以在开发时用tomcat服务器就不需要再导入servlet的jar包。
Servlet它是一个资源,是用来被用户访问的资源,同时是一个动态资源,它是由sun指定的servlet规范。
Servlet的作用:它是基于Http协议的,主要是用来接收客户端发送的请求,处理请求,把数据响应给客户端。
Servlet的入门
Servlet的接口和实现类:
>>>Servlet它是一个接口,在javax.servlet 包下面。
五个方法:
* destroy():执行这个方法,销毁了servlet对象
* init(ServletConfig config):在web服务器创建servlet对象以后,执行这个初始化方法。
* service(ServletRequest req, ServletResponse res) :服务方法,用来接收客户端发送的请求,并且响应数据到客户端
* getServletConfig():现在不讲
* getServletInfo():servlet 的信息,比如作者、版本和版权,这个方法在开发中不用。
GenericServlet,它是一个类,实现了Servlet接口
HttpServlet,它是一个类,实现了Servlet接口,同时继承了GenerciServlet
创建servlet三种方式
直接实现Servlet接口。
继承GenericServlet类
继承HttpServlet类。
一般在开发中,创建servlet,通常去继承这个HttpServlet.
比如:class MyServlet extends HttpServlet{ 重写咱们所需要的方法}
实现第一个Servlet程序
1.自己手动创建Servlet,通过Dos命令窗口编译Servlet,把编译好的class文件部署到tomcat服务器运行。
2.通过Eclipse创建Servlet,部署到tomcat服务器,然后就可以访问咱们所需要的Servlet。
步骤:
1.创建HelloWordServlet,继承GenericServlet
2.重写父类GenerciServlet的service方法。
3.在服务方法里面,处理客户端的请求后,把数据响应给客户端。
比如:
public class HelloWordServlet extends GenericServlet{
@Override
public void service(ServletRequest arg0, ServletResponse response)
throws ServletException, IOException {
// 处理客户端发送的请求,并且把数据响应给客户端
System.out.println("接收了客户端的请求-------------------");
//把数据响应给客户端,与浏览器绑定的输出流,作用向浏览器输出数据
PrintWriter pw = response.getWriter();
pw.print("Hello World");
}
}
访问Servlet,提供servlet的访问路径:
比如:
helloWorld
cn.itcast.firstmyapp.servlet.HelloWordServlet
helloWorld
/hello
通过浏览器访问:http://localhost:9999/webFirst/hello
就找到对应的HelloWorldServlet,把数据响应给浏览器。
导入jar包:先拷贝对应的jar包,放到WebContent下面的WEB-INF下面的lib文件夹下面。 jar的图标就变成小奶瓶。
Servlet的生命周期:
生命周期:自然界人从出生到最终走向西方极乐世界,这个周期过程就是人的生命周期,
其实servlet的生命周期和人的一样,从servlet对象被创建,经过使用servlet对象,
到最终servlet对象被销毁,整个过程就是servlet的生命周期。
与生命周期相关的三个方法:
初始化阶段:
init(ServletConfig config) 初始化方法:首次访问这个Servlet,servlet对象会被创建,执行初始化方法,执行一次。
运行阶段:
service(ServletRequest req, ServletResponse res) 服务方法:每次访问servlet时,服务方法都会被执行,执行多次。。
销毁阶段:
destroy()销毁方法:在服务器正常关闭时。会执行销毁方法,执行一次。
比如:
public class LifeServlet extends GenericServlet {
/**
* 初始化方法
*/
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("首次访问LifeServlet时,会执行这个初始化方法-------------");
}
/**
* servlet的服务方法
*/
@Override
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
System.out.println("每次访问lifeservlet,都会执行这个服务方法--------");
}
/**
* 销毁方法
*/
@Override
public void destroy() {
System.out.println("在服务器关闭时,会执行销毁方法----------");
}
}
在web.xml文件上面配置访问路径:
<servlet>
<servlet-name>lifeServlet</servlet-name>
<servlet-class>cn.itcast.firstmyapp.servlet.LifeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>lifeServlet</servlet-name>
<url-pattern>/life</url-pattern>
</servlet-mapping>