Servlet技术
什么是Servlet:
1.是JavaEE规范之一。(接口)
2.JavaWeb 三大组件: Servlet程序 Filter过滤器 Listener监听器
3.通俗说,运行在服务器上的java小程序(接受客户端请求并响应)
实现一个Servlet
public class HelloServlet implements Servlet {
@Override
public void servlet1(ServletRequest servletRequest, ServletResponse servletResponse) throws
ServletException, IOException {
System.out.println("访问hello Servlet");
}
web.xml的配置如下:
(1)、为Servlet命名:
<servlet>
<servlet-name>servlet1</servlet-name> <- 这是用于,在servlet池中使用 ,在用servlet注解时->
<servlet-class>net.test.TestServlet</servlet-class> <- 包名.类名 ->
</servlet>
(2)、为Servlet定制URL、
<servlet-mapping>
<servlet-name>servlet1</servlet-name> <- 上段servlet名 -><!--servlet-name 标签的作用是告诉服务器,我当前配置的地址给哪个 Servlet 程序使用-->
<url-pattern>/xx</url-pattern> <- 此为使用的地址如:http://localhost:8080/工程路径/xx
</servlet-mapping>
在web.xml中配置servlet。是为了页面能够找到对应的servlet。
生命周期
在客户端第一次访问服务器时,Servlet程序会调用
1.执行Servlet构造器方法
2.执行init初始化方法
每次访问服务器时,会执行service方法
3.service
在工程停止时,销毁
4.destroy()方法
GET和POST
在每次访问服务器时 会根据是get请求还是post请求来分发处理
具体是 自己定义的类继承HttpServlet类 重写 doGet() 和doPost() 两个方法
public class HelloServlet2 extends HttpServlet {
/**
* doGet()在 get 请求的时候调用
* @param req
* @param resp
* @throws ServletException
* @throws IOException
*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
IOException {
System.out.println("HelloServlet2 的 doGet 方法");
}
/**
* doPost()在 post 请求的时候调用
* @param req
* @param resp
* @throws ServletException
* @throws IOException
*/
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
IOException {
System.out.println("HelloServlet2 的 doPost 方法");
}
继承体系
ServletConfig 类:
该类是Servlet的配置信息类:
Servlet 程序和 ServletConfig 对象都是由 Tomcat 负责创建,我们负责使用。
Servlet 程序默认是第一次访问的时候创建,ServletConfig 是每个 Servlet 程序创建时,就创建一个对应的 ServletConfig 对象:
在配置web.inf时:
<servlet>