javaWeb之连接服务器接口Servlet的实现

页面向数据库请求数据的过程:
①页面通过服务器的地址链接来连接服务器
②服务器的应用服务器tomcat通过网址中的程序名访问挂在上面的java程序中的web.xml配置文件
③在web.xml中通过地址链接的后缀对应的servlet-name来找到servlet-class中java程序的全限定类名
④创建servlet接口的实现类,然后执行servlet实现类中执行生命周期的四个方法
生命周期的方法:1.实例化方法(构造方法)->2.初始化方法->3.service服务(service方法)->4.销毁方法(destory)
这里写图片描述
servlet接口
前端访问服务器,就是访问servlet接口,我们通过实现servlet接口中的方法来给前端传输信息
前端访问服务器就是访问servlet实现类的对象,所以我们只需在服务器端创建servlet端口的实现类即可

创建servlet对象(通过多态的特点)的方法有三种:
第一种方法是:创建一个类,直接实现接口,然后重写接口中的四个抽象方法,即servlet接口的四个生命周期的方法

public Demo01() {
        // TODO Auto-generated constructor stub
        System.out.println("我是构造方法,实例化方法");
    }
    @Override
    public void init(ServletConfig config) throws ServletException {
        // TODO Auto-generated method stub
        System.out.println("servlet的初始化方法");
    }

    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("我是servlet中的成员方法");
    }

    @Override
    public void destroy() {
        // TODO Auto-generated method stub
        System.out.println("销毁方法");
    }

第二种方法:创建一个类来继承GeneralServlet类,因为GeneralServlet类是servlet接口的实现类,并且GeneralServlet类内部已经抽象了接口的实例化方法,初始化方法和销毁方法,所以我们在类中只需要重写service方法即可(适配器模式)

public class Demo02 extends GeneralServlet {
    @Override
    public void service(){
        System.out.println("service服务方法");
    }
}

第三种方法:创建一个类继承于HTTPServlet类,该类是继承于GeneralServlet类的,并且类的内部重写了Service方法,在Service方法中调用自身的service方法,根据请求数据的方法不同来在自身的service方法中选择性执行doGet方法或者doPost方法,所以我们只需要重写父类的doGet方法和doPost方法即可(模板设计模式)

public class demo03 extends HTTPServlet {
    @Override
    public void doGet{
        System.out.println("doGet方法");
    }
    @Override
    public void doPost{
        System.out.println("doPost方法");
    }
}

在我们创建好了servlet接口的实现类,我们还需要设置一下程序的配置文件,前端在访问服务器的时候,可以通过配置文件来找到servlet.配置文件我们是在web.xml中完成的

<servlet>
    <servlet-name>demo01</servlet-name>//这里是给servlet类起个名字,名字可以随便起,但是要和下面的名字保持一致
    <servlet-class>com.lanou3g.JSP.Demo01</servlet-class>//这里要写servlet的全限定类名
  </servlet>
  //给servlet配置一个映射地址(访问地址)
  <servlet-mapping>
    <servlet-name>demo01</servlet-name>//这里的名字要和前面设置的名字保持一致
    <url-pattern>/demo01</url-pattern>//配置映射地址,这里要注意一下,地址上的/不能省略
  </servlet-mapping>

当应用服务器访问java程序的时候,先找到url-pattern,然后通过url-pattern找到servlet-name;然后找到servlet的全限定类名

servletConfig
servletConfig是servlet接口实现类在初始化的时候添加的配置信息,配置信息是在配置文件中完成的

<init-param>
  <param-name>encoding</param-name>
  <param-value>UTF-8</param-value>
  </init-param>

获取servlet中的配置信息对象servletConfig的方法有两种:
第一种是通过父类的init初始化方法来获取

public void init(ServletConfig config) throws ServletException {
    ServletConfig config = config;//配置信息
    }

第二种是通过自身来获取

ServletConfig config = this.getServletConfig();

servletContext
域对象:就是在一定范围内,纯属数据的对象. servletContext对象就是一个域对象.servletContext的存储数据的范围是整个程序中.并且整个程序中只有一个servletContext对象,是一个单例对象.它存储数据的方式是通过键值对的形式来进行的.通过set.get方法来操作存储的数据的.
获取servletContext的方法有两种:
第一种是通过servletConfig来获取的

ServletContext application = this.getServletConfig.getServletContext;

第二种是自身直接获取

ServletContext application = this.getServletContext;

域对象存储数据和获取数据的操作是通过setAttribute(key,value)(以键值对的形式存储的);getAttribute(key)通过key值来获取对应的value值

ServletContext application = this.getServletContext;
application.setAttribute("userName","张三");
String name = application.getAttribute("userName");
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值