栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【无标题】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【无标题】

Servlet的创建

测试软件:IntelliJ IDEA
参考文档:C语言中文网
JDK:15

  • 如果想要使用Servlet创建一个动态网页,必须实现Serlet类。
  • Servlet规范是一个接口,是javax.servlet下。
  • 所有Servlet类都要直接或间接实现Servlet接口。
  • 若直接实现Servlet接口,会生成许多用不到的方法,所以衍生出来了两个实现类:GenericServlet和HttpServlet

创建Servlet类有三种方式:

  • 实现Servlet接口
  • 继承GenericServlet类
  • 继承HttpServlet类
实现Servlet接口
  • javax.servlet.Servlet是Servlet API的核心接口,所有的Servlet类都要实现该接口。
  • Servlet接口中有五个方法:
返回值方法备注
voidinit(ServletConfigconfig)Servlet 实例化之后,由 Servlet 容器调用,用来初始化 Servlet 对象。该方法只能被调用一次。 参数 config 用来向 Servlet 传递配置信息。
voidservice(ServletRequest req,ServletResponse res)Servlet 容器调用该方法处理客户端请求。
voiddestroy()服务器关闭、重启或者 Servlet 对象被移除时,由 Servlet 容器调用,负责释放 Servlet 对象占用的资源。
ServletConfiggetServletConfig()该方法用来获取 ServletConfig 对象,该对象中包含了 Servlet 的初始化参数。
StringgetServletInfo()该方法用于获取 Servlet 的信息,例如作者、版本、版权等。

举个栗子:

首先导入maven依赖:


    javax.servlet
    servlet-api
    2.5

然后需要准备tomcat服务器,可以去官网上下载,如果不想下载可以使用tomcat插件:


    
      
      
        org.apache.tomcat.maven
        tomcat7-maven-plugin
        2.2
        
          /
          8080
        
      
    
  

创建一个Servlet类

package com.servlet1;

import javax.servlet.*;
import java.io.IOException;

public class servletBuild 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 {
    }
    @Override
    public String getServletInfo() {
        return null;
    }
    @Override
    public void destroy() {
    }
}

继承GenericServlet抽象类

可以看到使用直接继承Servlet接口时,必须要实现五个方法,可以观察到十分的繁琐。
为了减少创建的工作量,创建了GenericServlet类。

  • 使用GenericServlet类创建Servlet只用实现一个service()方法。
  • javax.servlet.GenericServlet实现了Servlet接口,并且提供了以下方法:
返回值方法备注
StringgetInitParameter(String name)返回名字为 name 的初始化参数的值,初始化参数在 web.xml 中进行配置。如果参数不存在,则返回 null。
EnumerationgetInitParameterNames()返回 Servlet 所有初始化参数的名字的枚举集合,若 Servlet 没有初始化参数,返回一个空的枚举集合。
ServletContextgetServletContext()返回 Servlet 上下文对象的引用。
StringgetServletName()返回此 Servlet 实例的名称。

举个栗子:

package com.servlet1;

import javax.servlet.*;
import java.io.IOException;

public class servletBuild extends GenericServlet{ // 继承GenericServlet方法
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {   
    }
}
继承HttpServlet抽象类
  • javax.servlet.http.HttpServlet 继承了 GenericServlet 抽象类。
  • 用于开发基于 HTTP 协议的 Servlet 程序。
  • 在 HTTP/1.1 协议中共定义了 7 种请求方式,即 GET、POST、HEAD、PUT、DELETE、TRACE 和 OPTIONS。
  • HttpServlet 针对这 7 种请求方式分别定义了 7 种方法,即 doGet()、doPost()、doHead()、doPut()、doDelete()、doTrace() 和 doOptions()。

栗子:

package com.servlet1;

import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class servletBuild extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1020553.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号