[Java]JavaWeb学习笔记(尚硅谷2020旧版)(二)

简介: [Java]JavaWeb学习笔记(尚硅谷2020旧版)(二)

⚽ 创建JavaWeb模块

⚽ Web工程目录介绍

⚽ 给动态 web 工程添加额外 jar 包

🏐 方式一

🏐 方式二

创建一个自己的类库:

⚽ 在 IDEA 中部署工程到 Tomcat 上运行

index.jsp

⚽ 配置资源热部署

🏀 Servlet

⚽ Servlet 简介

  1. Servlet 是 JavaEE 规范之一。(规范就是接口)
  2. Servlet 是 JavaWeb 三大组件之一。JavaWeb 三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。
  3. Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端

⚽ 手动实现 Servlet

1、编写一个类实现 Servlet 接口

2、实现 service 方法,处理请求,并响应数据

3、到 web.xml 中去配置 servlet 程序的访问地址

找不到Servlet类:

解决博客链接

HelloServlet.java

import javax.servlet.*;
import java.io.IOException;
public class HelloServlet implements Servlet {
    ......
    /**
     * service方法用于处理请求和相应的方法
     * @param servletRequest
     * @param servletResponse
     * @throws ServletException
     * @throws IOException
     */
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("HelloServlet");
    }
}

到 web.xml 中配置 servlet 程序的访问地址

<!-- servlet标签给Tomcat配置servlet程序 -->
    <servlet>
        <!--servlet-name 标签 Servlet 程序起一个别名(一般是类名) -->
        <servlet-name>HelloServlet</servlet-name>
        <!--servlet-class 是 Servlet 程序的全类名-->
        <servlet-class>HelloServlet</servlet-class>
    </servlet>
    <!--servlet-mapping 标签给 servlet 程序配置访问地址-->
    <servlet-mapping>
        <!--servlet-name 标签的作用是告诉服务器,我当前配置的地址给哪个 Servlet 程序使用-->
        <servlet-name>HelloServlet</servlet-name>
        <!--
            url-pattern 标签配置访问地址
            / 斜杠在服务器解析的时候,表示地址为:http://ip:port/工程路径 
            /hello 表示地址为:http://ip:port/工程路径/hello 
        -->
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>

⚽ url 地址到 Servlet 程序的访问

⚽ Servlet 的生命周期

  • 1、执行 Servlet 构造器方法
  • 2、执行 init 初始化方法
  • 第一、二步是在第一次访问的时候创建 Servlet 程序会调用。
  • 3、执行 service 方法
  • 第三步每次访问都会调用。
  • 4、执行 destroy 销毁方法
  • 第四步在 web 工程停止的时候调用。
import javax.servlet.*;
import java.io.IOException;
public class HelloServlet implements Servlet {
    public HelloServlet() {
        System.out.println("1.构造器被调用");
    }
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("2.初始化方法被调用");
    }
    @Override
    public void destroy() {
        System.out.println("4.destroy方法被调用");
    }
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("3.service方法被调用");
    }
}

⚽ GET 和 POST 请求的分发处理

@Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        // 类型转换(因为HttpServletRequest有 getMethod()方法)
        HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
        // 获取请求的方式
        String method = httpServletRequest.getMethod();
        if ("GET".equals(method)) {
            System.out.println("GET");
        } else if ("POST".equals(method)){
            System.out.println("POST");
        }
    }

⚽ 通过继承 HttpServlet 实现 Servlet 程序

一般在实际项目开发中,都是使用继承 HttpServlet 类的方式实现 Servlet 程序。

1、编写一个类继承 HttpServlet 类

2、根据业务需要重写 doGet 或 doPost 方法

3、到 web.xml 中的配置 Servlet 程序的访问地址

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class HelloServlet2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("HelloServlet2 doGet");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("HelloServlet2 doPost");
    }
}
<servlet>
        <servlet-name>HelloServlet2</servlet-name>
        <servlet-class>HelloServlet2</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloServlet2</servlet-name>
        <url-pattern>/hello2</url-pattern>
    </servlet-mapping>

⚽ 使用 IDEA 创建 Servlet 程序

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
public class HelloServlet3 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("HelloServlet3 doGet");
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("HelloServlet3 doPost");
    }
}
<servlet>
        <servlet-name>HelloServlet3</servlet-name>
        <servlet-class>HelloServlet3</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloServlet3</servlet-name>
        <url-pattern>/hello3</url-pattern>
    </servlet-mapping>

⚽ Servlet 类的继承体系

⚽ ServletConfig 类

ServletConfig 类从类名上来看,是 Servlet 程序的配置信息类。ServletConfig 类对象中封装了Servlet 程序的配置信息,ServletConfig 类对象可以在 Servlet 程序初始化时使用。

Servlet 程序和 ServletConfig 对象都是由 Tomcat 负责创建,我们负责使用。Servlet 程序默认是第一次访问的时候创建,ServletConfig 是每个 Servlet 程序创建时,就创建一个对应的 ServletConfig 对

象。

自己的Servlet类重写init方法,如果在后续的方法中需要使用ServletConfig 类对象,则需要调用super.init(config)方法保存ServletConfig 类对象。

相关文章
|
4月前
|
Java API 微服务
2025 年 Java 从入门到精通学习笔记全新版
《Java学习笔记:从入门到精通(2025更新版)》是一本全面覆盖Java开发核心技能的指南,适合零基础到高级开发者。内容包括Java基础(如开发环境配置、核心语法增强)、面向对象编程(密封类、接口增强)、进阶技术(虚拟线程、结构化并发、向量API)、实用类库与框架(HTTP客户端、Spring Boot)、微服务与云原生(容器化、Kubernetes)、响应式编程(Reactor、WebFlux)、函数式编程(Stream API)、测试技术(JUnit 5、Mockito)、数据持久化(JPA、R2DBC)以及实战项目(Todo应用)。
229 5
|
22天前
|
小程序 Java 知识图谱
Java 学习笔记 —— BMI & BMR 计算器
这是一个使用 Java 编写的 BMI 与 BMR 计算器小程序,可输入年龄、性别、身高和体重,计算身体质量指数(BMI)和基础代谢率(BMR),并输出健康评估结果。通过该项目,掌握了 Java 的输入处理、数据验证、条件判断、数学运算及格式化输出等基础知识,是 Java 初学者的理想练习项目。
|
22天前
|
Java
Java 数组学习笔记
本文整理Java数组常用操作:遍历、求和、查找、最值及二维数组行求和等典型练习,涵盖静态初始化、元素翻倍、去极值求平均等实例,帮助掌握数组基础与应用。
|
7月前
|
存储 Java
# 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
109 13
|
7月前
|
开发框架 Java 开发工具
【Java全栈学习笔记-U1-day01】Java介绍
本笔记整理了Java学习的基础内容,涵盖程序理解、Java语言特性、JDK安装与配置、Java程序开发工具及编写步骤。重点介绍了Java程序的基本结构、编译和运行过程,以及输出语句的使用。通过实例演示了IDEA创建Java程序的方法,并强调了编码规范和注意事项。适合初学者复习和交流学习。 主要内容: 1. 理解程序:计算机组成、程序定义。 2. 简介:Java语言特点、技术平台、JDK作用。 3. 编写Java程序:编写、编译、运行步骤,基本结构。 4. 输出语句 5. DEA使用:新建工程、保存位置、文件介绍、新建类。 6. 扩展:注释、代码规范、大小写敏感、缩进等。
|
9月前
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
155 4
|
12月前
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
105 2
|
11月前
|
Java 数据库连接 API
Spring 框架的介绍(Java EE 学习笔记02)
Spring是一个由Rod Johnson开发的轻量级Java SE/EE一站式开源框架,旨在解决Java EE应用中的多种问题。它采用非侵入式设计,通过IoC和AOP技术简化了Java应用的开发流程,降低了组件间的耦合度,支持事务管理和多种框架的无缝集成,极大提升了开发效率和代码质量。Spring 5引入了响应式编程等新特性,进一步增强了框架的功能性和灵活性。
192 0
java202303java学习笔记第二十三天-初识内部类2
java202303java学习笔记第二十三天-初识内部类2
102 0
java202303java学习笔记第二十四天-静态内部类1
java202303java学习笔记第二十四天-静态内部类1
165 0

热门文章

最新文章