当前位置:首页 » 《随便一记》 » 正文

Java-25 深入浅出 Spring - 实现简易Ioc-01 Servlet介绍 基本代码编写

20 人参与  2024年12月20日 12:02  分类 : 《随便一记》  评论

点击全文阅读


点一下关注吧!!!非常感谢!!持续更新!!!

大数据篇正在更新!https://blog.csdn.net/w776341482/category_12713819.html

在这里插入图片描述

目前已经更新到了:

MyBatis(已更完)Spring(正在更新…)

案例思路

参考来源来自网络视频,这里的案例是转账的案例。
在这里插入图片描述
这里我们直接使用接口的方式,就不实现具体的页面了,我们直接通过接口调用的方式来模拟这一块。
最终将实现,在没有 Spring 的情况下,我们实现各种功能。

添加依赖

<dependencies>    <dependency>        <groupId>mysql</groupId>        <artifactId>mysql-connector-java</artifactId>        <version>8.0.32</version>    </dependency>    <dependency>        <groupId>com.alibaba</groupId>        <artifactId>druid</artifactId>        <version>1.1.21</version>    </dependency>    <dependency>        <groupId>com.fasterxml.jackson.core</groupId>        <artifactId>jackson-databind</artifactId>        <version>2.9.6</version>    </dependency>    <dependency>        <groupId>dom4j</groupId>        <artifactId>dom4j</artifactId>        <version>1.6.1</version>    </dependency>    <dependency>        <groupId>jaxen</groupId>        <artifactId>jaxen</artifactId>        <version>1.1.6</version>    </dependency>    <dependency>        <groupId>cglib</groupId>        <artifactId>cglib</artifactId>        <version>2.1_2</version>    </dependency>    <dependency>        <groupId>org.apache.tomcat.embed</groupId>        <artifactId>tomcat-embed-core</artifactId>        <version>9.0.39</version>    </dependency>    <dependency>        <groupId>org.apache.tomcat.embed</groupId>        <artifactId>tomcat-embed-jasper</artifactId>        <version>9.0.39</version>    </dependency></dependencies>

初始项目

先编写一个非常简单的demo,来实现简单的测试。

什么是 Servlet?

Servlet 是 Java EE (Java Platform, Enterprise Edition) 技术的一部分,用于创建动态 Web 应用程序。它是一种在服务器端运行的小型 Java 程序,用于处理客户端的请求和生成动态响应(通常是 HTML 页面)。Servlet 的核心作用是扩展服务器的功能,特别是处理基于 HTTP 的请求。

Servlet 的核心概念

Servlet 容器:Servlet 是由 Servlet 容器(如 Tomcat、Jetty 等)管理的。容器负责加载、初始化和运行 Servlet,以及管理其生命周期。请求-响应模型:Servlet 使用 HTTP 请求和响应模型来处理客户端的请求(如表单提交、URL 请求)并生成响应。生命周期:Servlet 的生命周期由容器管理,主要包括以下阶段:加载和实例化:当客户端首次访问 Servlet 时,容器加载 Servlet 类并创建其实例。初始化:调用 init() 方法进行初始化操作。服务:调用 service() 方法,处理客户端请求。销毁:当容器需要释放资源或关闭时,调用 destroy() 方法。

Servlet 的特点

平台无关性:基于 Java 技术,Servlet 可以在任何支持 Java 的 Web 服务器上运行。高效性:相比传统的 CGI(Common Gateway Interface),Servlet 使用线程处理请求,避免了每个请求都创建新进程的开销。安全性:Java 提供了内置的安全机制(如类加载器、安全管理器等)。便捷性:通过标准的 API 和 Java 的强大功能,开发动态 Web 应用变得简洁。

Servlet 的工作原理

客户端请求:浏览器发送一个 HTTP 请求到 Web 服务器。容器分发:Web 服务器将请求交给 Servlet 容器,容器查找对应的 Servlet。处理请求:Servlet 容器调用对应的 Servlet 实例的 service() 方法。根据请求类型(GET、POST 等),调用 doGet() 或 doPost()。Servlet 处理请求并生成响应。返回响应:容器将响应发送回客户端。

Servlet

编写一个 Servlet,用作我们的业务测试。

package wzk;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import java.io.IOException;@WebServlet(name="wzkServlet", urlPatterns = "/wzkServlet")public class WzkServlet extends HttpServlet {    @Override    protected void doGet(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException, IOException {        System.out.println("doGet!");        resp.setContentType("application/json;charset=utf-8");        resp.getWriter().print("hello!");    }}

对应的截图如下:
在这里插入图片描述

启动类

直接在启动类中启动 Tomcat。

package wzk;import org.apache.catalina.Context;import org.apache.catalina.LifecycleException;import org.apache.catalina.WebResourceRoot;import org.apache.catalina.startup.Tomcat;import org.apache.catalina.webresources.DirResourceSet;import org.apache.catalina.webresources.StandardRoot;import java.io.File;public class WzkStart {    public static void main(String[] args) throws LifecycleException {        Tomcat tomcat = new Tomcat();        tomcat.setPort(Integer.getInteger("port", 8999));        tomcat.getConnector();        Context context = tomcat.addWebapp("", new File("src/main/webapp").getAbsolutePath());        WebResourceRoot resources = new StandardRoot(context);        resources.addPreResources(                new DirResourceSet(resources, "/WEB-INF/classes",                        new File("target/classes").getAbsolutePath(), "/"));        context.setResources(resources);        tomcat.start();        tomcat.getServer().await();    }}

运行代码

运行我们的 WzkStart,对应的控制台输出结果如下:

11月 18, 2024 4:12:41 下午 org.apache.jasper.servlet.TldScanner scanJars信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.11月 18, 2024 4:12:41 下午 org.apache.coyote.AbstractProtocol start信息: Starting ProtocolHandler ["http-nio-8999"]

对应的结果如下所示:
在这里插入图片描述

访问项目

我们访问对应的结果如下所示:

http://localhost:8999/wzkServlet

对应的截图如下所示:
在这里插入图片描述

数据库

创建新表

我们依赖于之前 MyBatis 的库,你也可以自己创建数据库。
这类我们新建一个表,这里包含 卡号、名称、金钱。

CREATE TABLE `wzk_account` (  `card` varchar(255) DEFAULT NULL,  `name` varchar(255) DEFAULT NULL,  `money` int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

插入数据

这里我们需要写入两条数据

INSERT INTO wzk_account VALUES('1', 'wzk', 500);INSERT INTO wzk_account VALUES('2', 'icu', 500);

我们执行之后,确认数据库中的数据是写入了:
在这里插入图片描述


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/204043.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1