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包下面。
- 五个方法:
1. destroy():执行这个方法,销毁servlet对象
2. init(ServletConfig config):在web服务器创建servlet对象以后,执行这个初始化方法。
3. service(ServletRequest req,ServletResponse res):服务方法,用来接收客户端发送的请求,并且响应数据的客户端。
4. getServletConfig():
5. getServletInfo():返回servlet的信息,作者、版本和版权。 - GenericServlet,它是一个类,实现了Servlet接口。
- HttpServlet,它是一个类,实现了Servlet接口,同时也继承了GenerciServlet
- 五个方法:
-
创建servlet三种方式:
- 直接实现Servlet接口。
- 继承GenericServlet类
- 继承HttpServlet类
开发中有创建servlet通常去继承HttpServlet接口,比如:class MyServlet extends HttpServlet{ 重写所需要的方法}
实现一个Servlet程序
- 自己手动创建Servlet,通过Dos命令窗口编译Servlet,把编译好的class文件部署到tomcat服务器运行
- 通过eclipse创建Servlet,部署到tomcat服务器,然后就可以访问我们所需要的Servlet。
步骤:
1. 创建HelloWordServlet,继承GenericServlet。
2. 重写父类中的Service方法。
3. 在服务方法里面,处理客户端的请求后,把数据响应给客户端。
导入jar:拷贝对应的jar包,放到WebContent下的WEB-INF的lib文件夹下
访问Servlet,提供访问路径:
<!--配置/hello,访问的servlet-->
<servlet>
<servlet-name>helloWorld</servlet-name>
<servletclass>cn.itcast.firstmyapp.servlet.HelloWorldServlet</servlet-class>
</servlet>
<!-- 配置浏览器访问Servlet的路径 -->
<servlet-mapping>
<servlet-name>helloWorld</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
访问:http://localhost:8080/webFirst/hello,就能找到对应的HelloWorldServlet,把数据响应给浏览器
package cn.itcast.firstmyapp.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/*
* 自己创建Servlet,继承GenericServlet
* 重写他的服务方法,Service
* */
public class HelloWorldServlet extends GenericServlet {
public void service(ServletRequest arg0, ServletResponse response) throws ServletException, IOException {
// 处理客户端发送的请求,并把数据响应给客户端
System.out.println("接收了客户端的请求-----------------");
//把数据响应给客户端,与浏览器绑定的输出流,向浏览器输出数据
PrintWriter pw=response.getWriter();
pw.print("Hello world!");
}
}