Servlet总结

55 阅读1分钟

什么是Servlet?

  • Servlet是JavaEE的接口。是Javaweb的三大组件之一。另外两个组件分别是Filter和Listener(过滤器和监听器)。
  • Servlet 是运行在服务端的Java小程序,可以接收客户端发送过来请求并响应给客户端数据。

第一个Servlet程序?

实现步骤

  1. 建立一个类实现(implements)Servlet接口
  2. 实现service方法。service方法用于接收请求,响应数据。
  3. 注册Servlet。在web.xml文件中配置 代码如下:
package com.lqy.test;
import javax.servlet.*;
import java.io.IOException;
public class mServlet implements Servlet {
    public void init(ServletConfig servletConfig) throws ServletException {

    }
    public ServletConfig getServletConfig() {
        return null;
    }
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        servletResponse.getWriter().print("这是我第一个Servlet应用");
    }
    public String getServletInfo() {
        return null;
    }
    public void destroy() {
    }
}

配置如下

<servlet>
  <servlet-name>mServlet</servlet-name>
  <servlet-class>com.lqy.test.mServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>mServlet</servlet-name>
  <url-pattern>/mServlet</url-pattern>
</servlet-mapping>

web_xml.png

Servlet的声明周期?

  • 执行Servlet的构造方法,声明
  • 执行init()方法,初始化
  • 执行service()方法,处理请求响应数据
  • 执行destroy(),销毁

进阶实现Servlet

  • 继承(extends)HttpServlet
  • 实现doGet()或doPost()方法;service()也可以
  • 在web.xml中注册 代码如下:
public class mServlet extends HttpServlet{
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().print("我第一个HttpServlet");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

配置参考上述过程。

可能出现的报错?

  1. 导入Servlet依赖,在实现Servlet或继承HttpServlet时会报错

  2. 无法正常访问mServlet.java 可能的原因是 类路径错误;对照自己项目结构改正即可 还有就是<url-pattern>这个属性的值需要以/开头。