后端开发从零起步【7】Servlet

2022-05-22  本文已影响0人  万里寻龙

【江湖秘籍】
Servlet是一个java的类,Server Applet,服务连接器,用于响应客户端请求
创建一个java类实现JAVA的Servlet接口即可

public class DemoServlet implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("接收到浏览器的请求!");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

然后在web.xml中进行配置,在<web-app>标签中添加以下代码

 <servlet>
        <!-- Servlet别名 -->
        <servlet-name>DemoServlet </servlet-name>
        <!-- 别名所对应的Servlet类 -->
        <servlet-class>com.DemoServlet </servlet-class>
    </servlet>

<!-- Servlet映射配置 -->
    <servlet-mapping>
        <servlet-name>DemoServlet </servlet-name>
        <!-- 浏览器的访问地址 -->
        <url-pattern>/firstblood</url-pattern>
    </servlet-mapping>

完事儿以后浏览器访问该地址,或者直接run程序,IDEA自动打开浏览器加载该地址,tomcat就会调用我们已经实现的service()方法,在输出中可以看到我们sout的"接收到浏览器的请求!"

一个请求就成功被处理了。

以上是实现Servlet接口的方式,java还提供了一个叫做GenericServlet的类帮我们实现了这些接口,继承这个类的话,只需重写service一个方法就可以,不用像上面那样把接口的方法都实现一遍。

public class DemoServlet extends GenericServlet {
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("GenericServlet类的service接口响应");
    }
}

和上面一样,做一下映射配置即可。
效果是一样的。但我们还可以使用GenericServlet 的一个子类,叫做HttpServlet

public class DemoServlet extends HttpServlet {

    public DemoServlet () {
        System.out.println("构造方法");
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("响应Post请求");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("响应Get请求");
    }

    @Override
    public void destroy() {
        System.out.println("销毁");
    }

    @Override
    public void init() throws ServletException {
        System.out.println("初始化");
    }
}

还是做一下映射配置。
可以看到这里能够分别响应post和get请求,所以一般用这个会更方便。

实际上,在IDEA中,可以直接右键New一个Servelet, New的下级菜单下面直接有create new servelet,输入名称之后,IDEA就帮我们自动继承了HttpServelet。
这里IDEA可以自动生成一个注解,@WebServlet(name = "DemoServlet", url = @"/firstblood")
用这个注解可以帮我们自动完成映射配置,不用单独再去找xml配置了,省不少事儿

上一篇下一篇

猜你喜欢

热点阅读