【项目小知识】servlet实现接口

我是灼灼,一只初学Java的大一金渐层。
向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄;追逐过王尔德、王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔;热爱文学的浪潮,白日梦到底却总在现实里清醒;艳羡平静又极度渴盼奔跑的力量。
欢迎与我交流鸭· QQ:1517526827;
个人博客:https://blog.csdn.net/weixin_52777510?spm=1001.2101.3001.5343

服务器servlet接口开发~

参考博客:https://blog.csdn.net/qq_35522272/article/details/71435602
参考博客:https://blog.csdn.net/qq_41838901/article/details/105710702
参考博客:https://blog.csdn.net/qq_41838901/article/details/105731160

  • 搭建简易接口开发(学习web开发和servlet基础),首先要了解客户端的网络请求机制(学习网络编程和网络协议知识);

  • 学习接口开发,编写jsp页面之前,我们首先要搭建一个web项目,并且配置好tomcat服务器。(创建web项目之前,先在local配置好服务器噢!

关于这一步呢,参考博客来自行搭建;

其中有几个小小的问题:

  1. 新版本的IDEA在实际操作中选项略有不同,不过根本上还是相同滴!
  • 仍然可以选择Java enterprise来进行搭建,点击finish后发现没有web包怎么办?
  • 不要着急,右击创建好的项目,选择Add FrameWork Support…就阔以辽!
  1. 第五步中选择Artifact这一项idea已经选好啦,不需要再做一遍了;
    +号那里没有出现Artifact可能就是这个原因。
  • servlet-api.jar包下载:
    链接:https://pan.baidu.com/s/1ZZ_FBGm-_iixJ8RnQzt44w
    提取码:bzuc
  • 开发一个servlet需要几个步骤:
    1、创建web应用项目
    2、编写servlet代码
    3、部署到tomcat中

web.xml文件的内容1(补充就可以了,来自第一个博客):

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

    //静态配置文件,整个项目的入口
    <listener>
        <listener-class>com.szh.utils.ListenerLoadConfig</listener-class>
    </listener>
    <servlet>
        //别名 最终客户端访问的接口的名称后缀
        <servlet-name>Test</servlet-name>
        //接口的具体类名,路径必须正确
        <servlet-class>com.szh.servlets.Test</servlet-class>
    </servlet>

    <servlet-mapping>
        //别名须统一
        <servlet-name>Test</servlet-name>
        <url-pattern>/Test</url-pattern>
    </servlet-mapping>

</web-app>

web.xml文件的内容2(来自第二个博客):

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
     <servlet>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping> 
 
</web-app>

Util包中的数据库连接类DbUtil就按照jdbc中学到的连接代码就可以了。

有关监听listener的内容还没有学过,暂且放放。

接口使用的servlet技术,servlet技术其实是java接口的最核心的技术,spring框架其实也就是对servlet的封装。
首先需要继承自servlet:

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Test extends HttpServlet {
    
    
    private static final long serialVersionUID = 1L;
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        this.doGet(request, response);
    }
}

继承自HttpServlet之后会自动实现get和post方法。这就是常说的http请求中的方法。客户端做网络请求就会到这两个方法中。
可以看到有两个参数HttpServletRequest,和HttpServletResponse。这两个分别对应http请求中的请求参数,和返回接口,也就是客户端请求的参数都在HttpServletRequest中可以拿到,而服务器返回的接口都可以存放在HttpServletResponse,中这样客户端就能拿到想要的数据了。

思考一下究竟如何才能够实现web的完整开发呢?

以register为例,参考第一个博客中的内容:

  • 配置web.xml
  • 配置你数据库连接DBUtil
  • 配置listener(暂且不提)
  • load加载驱动(这个不知道是不是可以简化?)
  • 编写注册方法dao包
  • 编写测试注册接口代码
  • 编写请求方法

以login为例,参考第二个博客中的内容:

  • 配置web.xml
  • 创建login.html
  • 创建一个类LoginServlet
  • 直接控制台tomcat测试;

实现跳转页面需要有两个html文件

一个servlet的生命周期

servlet的周期就是: 实例化 —初始化—提供服务—销毁—被回收

1、实例化

当某用户输入提交信息后,访问路径对应的servlet会实例化。而且只会实例化一次(单实例),无论用户访问多少次~

在LoginServlet类里写一个构造方法,可以发现发起请求的时候,会首先调用这个方法实例化对象。

2、初始化

因为Loginservlet继承自HttpServlet,所以init初始化方法也被继承。
init在构造方法后执行。

3、提供服务

服务就是 doGet ,doPost,service 等,对收到请求的一些处理。

4、销毁

destroy()

当有如下情况时,会销毁一个servlet:

(1)关闭tomcat时:

(2)该Servlet所在的web应用重新启动;

配置文件server.xml中:

<Context path="/" docBase="D:\\Java\\workspace\\test\\web" debug="0" reloadable="false" />

reloadable 代表是否自动重启,就是当检测到服务有更新,即tomcat自动重启,当重启的时候就会destory 。
5、回收

这个就涉及到垃圾回收了,当该Servlet被销毁后,就满足垃圾回收的条件了。 当下一次垃圾回收GC来临的时候,就有可能被回收。

以上内容可以对接口有一个大致的了解~
在这里插入图片描述

如果对你有帮助的话不要忘记一键三连噢~
谢谢鸭~

初次编写于2021/2/19日;

猜你喜欢

转载自blog.csdn.net/weixin_52777510/article/details/113870406