Java servlet后端开发超详细教程

 更新时间:2023年02月08日 14:44:38   作者:练习时长六年半的Programmer  
Servlet指在服务器端执行的一段Java代码,可以接收用户的请求和返回给用户响应结果,下面这篇文章主要给大家介绍了关于Java.servlet生命周期的相关资料,需要的朋友可以参考下

java后端介绍

今天我正式开始了一个新话题,那就是 Web。目前我主要会介绍后端。作为后端的老大哥 java,也有很多后端框架,比如大家耳熟能详的 spring 等。今天来带大家入门 servlet,不管是学生,刚毕业或是已经工作自学编程的人群都能看懂。

准备工作

目前我们使用的服务器是 Tomcat,大家可以先安装 Tomcat,这一步网上有很多教程,我不再说了。然后还需要下载 idea,配置 Tomcat 和 jdk,这些网上都有,如果配置遇到问题可以私信我。

Servlet项目创建

大家先用idea 创建 web 项目,创建好后应是这样。

现在在你的 src 目录下创建一个package,并命名为 com.xxxx.servlet。

然后在这个包下面创建一个 java类,名叫 servlet(你也可以自己起名字)

Servlet的基础使用

导入包

package com.xxxx.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

主要是导入了 servlet 的基本方法。

创建 java 类,并继承自HttpServlet 类

因为我们后面还要重写 HttpServlet 类中的方法,所以要继承这个类。

public class servlet extends HttpServlet{
}

重写service方法

因为我们要处理请求,所以要重写服务类来处理请求,否则处理不了请求。

@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    }

设置访问路径

@WebServlet("/servlet01")

这行代码加在类前面,这样我们就可以通过 /servlet01 路径来访问。

内容

这里我们在控制台(idea下面)和网页(浏览器访问)里分别打印一句话 "Hello Servlet!"

System.out.println("Hello Servlet");
//通过流输出内容
resp.getWriter().write("Hello Servlet");

实例完整代码

package com.xxxx.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/*
* 实现 Servlet
* 1.创建 web 项目,配置 Servlet 和 Tomcat
* 2.创建普通 Java 类
* 3.继承 HttpServlet 类
* 4.重写 service 方法(处理请求,Ctrl+o,选择倒数第二个钥匙的)
* 5.处理请求
* 6.设置注解,指定访问路径
* 7.配置,见https://blog.csdn.net/Samzz33/article/details/116311106
* */
@WebServlet("/servlet01")
public class servlet extends HttpServlet{
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        super.service(req, resp);
        //打印内容在控制台
        System.out.println("Hello Servlet");
        //通过流输出内容
        resp.getWriter().write("Hello Servlet");
    }
}
 

运行

点击 idea 右上角运行图标

然后 idea 会打开 http://localhost:8080/servlet_war_exploded/

但是你看不到任何内容,因为你没有访问你刚才设置的路径。

访问 http://localhost:8080/servlet_war_exploded/servlet01

你会看到

这就成功了

servlet的生命周期

类加载->实例化->服务->销毁

类加载

类加载在服务器启动时就执行,一次一个生命周期只执行一次。

实例化

开始生命周期时,服务器判断有没有实例化,如果没有则实例化。

写一个函数 init(),在实例化时执行。

@Override
    public void init() throws ServletException {
        System.out.println("Servlet被创建");
    }

当实例化是,会在控制台输出文字。

服务

当收到请求就开始服务,一个生命周期执行多次。

@Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Servlet被调用");
    }

销毁

一个生命周期执行一次,在服务器停止时执行,也就是你停止运行程序时。

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

完整代码

package com.xxxx.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/*
* Servlet生命周期: 类加载->实例化->服务->销毁
* */
@WebServlet("/servlet02")
public class servlet02 extends HttpServlet{
    /*
    * 一个生命周期只执行一次,服务器判断是否存在,不存在则创建实例,自动调用
    * */
    @Override
    public void init() throws ServletException {
        System.out.println("Servlet被创建");
    }
    /*
    * 服务方法,自动调用,当接收到请求就会调用该方法,可以被多次调用
    * */
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Servlet被调用");
    }
    /*
     * 一个生命周期只执行一次,服务器停止时运行该方法
     * */
    @Override
    public void destroy() {
        System.out.println("Servlet被销毁");
    }
}
 

到此这篇关于Java servlet后端开发超详细教程的文章就介绍到这了,更多相关Java servlet内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java将中文转化为拼音的简单代码示例

    Java将中文转化为拼音的简单代码示例

    在我们使用手机通讯录或各种APP的搜索功能时,既可以根据中文搜索,也可以根据拼音搜索,这种时候就使用到了中文转拼音的功能了,下面这篇文章主要给大家介绍了关于Java将中文转化为拼音的简单代码示例,需要的朋友可以参考下
    2024-03-03
  • java关闭流连接IO工具类

    java关闭流连接IO工具类

    这篇文章主要为大家详细介绍了java关闭流连接IO工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • 关于Spring源码深度解析(AOP功能源码解析)

    关于Spring源码深度解析(AOP功能源码解析)

    这篇文章主要介绍了关于Spring源码深度解析(AOP功能源码解析),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 详解springcloud组件consul服务治理

    详解springcloud组件consul服务治理

    Consul是一款由HashiCorp公司开源的,用于服务治理的软件,Spring Cloud Consul对其进行了封装,这篇文章主要介绍了springcloud组件consul服务治理,需要的朋友可以参考下
    2022-08-08
  • kafka安装部署超详细步骤

    kafka安装部署超详细步骤

    这篇文章主要介绍了kafka安装部署的详细步骤,主要应用场景是:日志收集系统和消息系统,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-11-11
  • java语言与平台基础知识点

    java语言与平台基础知识点

    在本篇文章里小编给大家整理的是一篇关于java语言与平台基础知识点内容,有需要的朋友们跟着学习下。
    2019-11-11
  • 如何使用IntelliJ IDEA搭建MyBatis-Plus框架并连接MySQL数据库

    如何使用IntelliJ IDEA搭建MyBatis-Plus框架并连接MySQL数据库

    这篇文章主要介绍了如何使用IntelliJ IDEA搭建MyBatis-Plus框架并连接MySQL数据库,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-11-11
  • 解决SpringBoot请求返回字符串中文乱码的问题

    解决SpringBoot请求返回字符串中文乱码的问题

    这篇文章主要介绍了解决SpringBoot请求返回字符串中文乱码的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • springboot项目中常用的工具类和api详解

    springboot项目中常用的工具类和api详解

    在Spring Boot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖 Spring 原生工具、第三方库(如Hutool、Guava) 和 Java 自带工具,本文给大家介绍springboot项目中常用的工具类和api,感兴趣的朋友一起看看吧
    2025-04-04
  • Servlet和Spring MVC的区别及使用说明

    Servlet和Spring MVC的区别及使用说明

    这篇文章详细介绍了Servlet和SpringMVC的基本概念、工作原理、功能对比和应用场景,Servlet是JavaWeb开发的基础,而SpringMVC是一个基于Servlet的高级框架,提供了更强大的功能和易用性,文章通过定义、原理和示例代码,帮助读者理解这两个技术的区别与联系
    2025-01-01

最新评论