Java Web入门基础知识笔记

核心说明:本笔记仅聚焦入门必懂知识点,不深入底层原理和复杂用法,重点帮大家建立Java Web基础认知,为后续深入学习铺垫,贴合大纲节奏,区分已完成和待学内容。 新手提示:所有知识点均搭配通俗讲解,遇到不懂的术语不用慌,先理解"作用"和"怎么用",不用死记硬背原理,入门先"会用"再"深究"。

Java Web 入门 三层核心问题解答(完全贴合新手入门定位)


第一层:目标与定位 ------ 明确「为什么学它」

1. 课程目标与学习侧重点

这门 Java Web 入门课的核心目标

  1. 掌握 Web 后端开发的底层核心逻辑(HTTP 请求 - 响应模型),理解「浏览器和服务器如何交互」;
  2. 熟练使用 Java Web 原生核心组件,完成动态 Web 应用的开发、调试、打包与部署全流程;
  3. 建立企业级 Java 后端的分层开发思想,掌握前后端交互、会话管理、数据库整合的核心能力;
  4. 为后续学习 SpringMVC、SpringBoot 等主流企业级框架打下不可替代的底层基础(所有 Java 后端框架的底层都是 Servlet 规范)。

学习侧重点 :默认你已掌握 JavaSE 基础,本课程不侧重 Java 语法本身,核心聚焦Web 服务端开发的完整流程、核心组件使用、底层原理理解、工程化开发思想,是 Java 后端开发的必修入门基石,而非纯语法、算法或数据科学类内容。

2. 核心技术定位

Java Web 是Java 语言在服务端 Web 开发的标准化技术体系,其载体 Java 语言的核心定位如下:

  • 语言类型:编译型静态强类型语言,先编译为跨平台的字节码,再由 JVM 运行,实现「一次编写,到处运行」;
  • 核心应用领域:企业级 Web 后端开发、微服务开发、大数据开发、安卓开发,其中Web 服务端是 Java 最主流、最核心的应用场景
  • 设计哲学:严谨规范、面向对象、高可用、高可维护性,极度注重工程化和标准化,天生适配大型团队协作的企业级项目开发,给新手的预期是:学习它是为了掌握标准化的后端开发能力,而非快速写小脚本。

第二层:核心特征 ------ 抓住「它是什么」

1. 核心范式与语法风格

  • 核心范式:完全基于 Java 的面向对象编程范式,同时支持「组件化 Web 开发范式」------ 所有 Web 功能都封装为可复用、可插拔的标准化组件(Servlet、Filter、Listener);
  • 语法风格:继承 Java 的严谨强类型风格,语法规范、编译期严格类型检查,大部分错误在编译期就能发现,运行时稳定性极强;和 Python/JavaScript 等弱类型语言相比,门槛略高,但更适合大型项目的长期维护;
  • 和 JavaSE 的核心区别:JavaSE 是控制台 / 桌面应用,以main方法为程序入口,开发者自己管理对象生命周期;Java Web 是基于 Web 容器的请求 - 响应模型 ,无main方法,由 Tomcat 容器管理组件生命周期,全程围绕「接收浏览器请求、处理业务、返回响应」展开。

2. 核心抽象机制

代码组织的基本单元

表格

单元层级 核心内容 核心作用
Web 核心执行单元 Servlet、Filter、Listener Web 功能的最小执行体,分别负责请求处理、请求拦截、事件监听
工程化分层单元 控制层(Servlet)、业务层(Service)、数据访问层(DAO) 遵循 MVC 思想,每层职责单一,解耦业务,便于维护和团队协作
代码封装单元 Java 包(package)、类(class)、接口(interface)、Maven 模块 实现代码的结构化、模块化组织,支持复用和扩展

核心数据结构

  1. Java 基础核心集合:List(有序列表)、Map(键值对)、Set(无序不重复集合),用于业务数据的处理和传递;
  2. Web 专属域对象(Java Web 的核心数据载体):
    • HttpServletRequest(请求域):单次请求内有效,用于请求转发时的数据传递;
    • HttpSession(会话域):单次用户会话内有效,用于存储用户登录状态等会话数据;
    • ServletContext(应用域):整个项目生命周期内有效,用于存储全局共享数据。

3. 独特的「王牌特性」

  1. **标准化 Servlet 请求 - 响应模型(最核心)**这是整个 Java 后端生态的底层基石,所有 Java Web 应用(包括 SpringBoot)都遵循 Servlet 规范,统一了浏览器和服务端的交互标准,一次编写可兼容所有支持 Servlet 规范的 Web 容器(Tomcat、Jetty 等)。学懂 Servlet,就看懂了 90% Java 后端框架的底层原理。

  2. 容器化生命周期管理Web 核心组件(Servlet、Filter)的创建、初始化、服务、销毁,全由 Tomcat 容器统一管理,同时容器自动处理多线程场景。开发者无需自己管理对象生命周期和并发问题,只需专注业务逻辑开发,大幅降低 Web 开发门槛,同时保证高并发场景下的稳定性。

  3. 成熟的分层架构与工程化思想Java Web 天生适配 MVC 分层架构,将请求处理、业务逻辑、数据访问完全解耦,代码可复用性、可维护性极强,完美适配企业级大型项目的团队协作,这也是 Java 能长期占据企业级开发主流的核心原因。


第三层:学习路径与资源 ------ 规划「怎么学」

1. 如何建立「最小可运行」环境

核心环境四件套(企业主流稳定版本)

  1. 安装配置 JDK8/11,配置环境变量,cmd 输入java -version验证成功;
  2. 安装配置 Tomcat9/10(对应 JDK 版本),启动后访问localhost:8080验证成功;
  3. 安装 IDEA(社区版 / 旗舰版),在工具内配置好 JDK 和 Tomcat;
  4. 安装配置 Maven,配置国内镜像源和本地仓库,在 IDEA 中完成 Maven 集成。

最小可运行验证(Hello World)

  1. 在 IDEA 中创建 Maven Web 项目,补全标准目录结构;
  2. pom.xml中引入 Servlet 依赖坐标;
  3. 创建HelloServlet类,添加@WebServlet("/hello")注解,重写doGet方法,输出Hello Java Web!
  4. 在 IDEA 中部署项目到 Tomcat,启动服务器;
  5. 浏览器访问http://localhost:8080/项目上下文路径/hello,成功看到输出内容,即环境搭建完成。

2. 最高效的实践路径(新手友好,边学边敲)

核心原则:拒绝只看不动手,每一个知识点必须亲手写 demo 跑通,以练促学

表格

学习阶段 核心内容 落地目标 建议周期
入门筑基 环境搭建 + 最小闭环项目 跑通 Hello Servlet,理解 Web 项目部署、启动、访问全流程 1-2 天
核心原理 HTTP 协议 + Servlet 基础 + Request/Response 对象 掌握请求参数获取、乱码解决、请求转发 / 重定向,完成表单提交处理 demo 3-4 天
动态页面 JSP 基础 + EL 表达式 + JSTL 标签 实现「Servlet 处理数据→JSP 动态展示」的完整交互,替代 Java 脚本 2-3 天
会话管理 Cookie+Session 实现用户登录、登录状态保持、退出登录功能,解决 HTTP 无状态问题 2 天
通用组件 Filter 过滤器 + Listener 监听器 实现全局编码过滤、登录权限拦截、项目初始化、在线人数统计 2 天
数据交互 JDBC+Druid 连接池 + 分层架构 完成 DAO 层开发,实现用户注册、数据增删改查,打通 Web 与数据库 3-4 天
项目实战 完整用户管理系统 整合所有知识点,实现注册、登录、增删改查、权限拦截、分页展示 5-7 天
进阶铺垫 打包部署 + 规范优化 掌握 Maven 打 WAR 包、Tomcat 独立部署,引入日志框架,规范分层代码 1-2 天

3. 官方 / 权威学习资源(优先推荐,避免碎片化错误信息)

  1. 核心规范与官方文档

  2. 权威 API 参考

  3. 新手友好的经典权威教材

    • 《Head First Servlets & JSP》:Java Web 入门神书,图文并茂、通俗易懂,把底层原理讲得透彻不枯燥;
    • 《Servlet 与 JSP 核心编程》:经典系统教材,案例丰富,覆盖全量入门知识点;
    • 《Java Web 开发实战》:贴合国内开发场景,实战导向,适合新手边学边练。

具体学习

第1章 Java Web入门与开发环境搭建(已完成)

核心目标:掌握Java Web开发的基础环境,能正常启动开发工具和服务器,完成简单项目初始化。 新手提示:这一章是"打地基",环境搭建成功,后续学习才能顺利进行,遇到配置失败(比如Tomcat启动报错),优先检查路径和环境变量。

  • 1.1 初探Java Web应用程序:Java Web是用Java技术开发的、能通过浏览器访问的应用(比如网站、管理系统),核心是"后端处理请求,返回前端展示"。 新手讲解:简单说,Java Web就是我们平时用的网页/系统(比如淘宝、公司的员工管理系统),后端(Java代码)负责处理逻辑(比如查询商品、验证登录),前端(HTML)负责展示给用户看,两者配合完成交互。

  • 1.2 开发环境搭建(核心是"配置成功,能正常运行"):

    • JDK:Java开发的基础,必须安装并配置环境变量(确保cmd输入java -version能显示版本),是所有Java程序的运行基础。 新手讲解:JDK就像"厨师的工具包",没有它,Java代码无法编写和运行;配置环境变量,就是让电脑"随时随地"能找到这个工具包,不用每次都手动找安装路径。

    • Tomcat:Web服务器,负责接收浏览器的请求、运行Java Web项目,启动后能访问localhost:8080即配置成功。 新手讲解:Tomcat就像"网站的服务器主机",浏览器(比如Chrome)发送请求(比如访问某个页面),Tomcat接收后,运行我们写的Java Web项目,再把结果返回给浏览器;能打开localhost:8080,说明Tomcat已经正常工作。

    • IDEA:Java开发工具,简化项目创建和开发,配置好JDK和Tomcat后,能直接在工具中启动项目。 新手讲解:IDEA就像"智能记事本",能帮我们快速创建项目、编写代码,还能直接启动Tomcat,不用手动输入命令,新手重点掌握"配置JDK和Tomcat"的步骤即可。

    • IDEA AI插件:辅助开发的工具,入门阶段了解即可,能帮我们快速生成简单代码、排查基础错误。 新手讲解:AI插件就像"小助手",比如你不知道Servlet怎么写,它能帮你生成基础代码,不用从零开始写,入门阶段不用深入研究,能用上就好。

第2章 Maven项目管理基础(已完成)

核心目标:理解Maven的作用,会用Maven管理项目依赖,不用手动导入jar包。 新手提示:新手最头疼的就是"找不到jar包、jar包版本冲突",Maven就是帮我们解决这个问题的,重点记住"依赖坐标"和"pom.xml文件"即可。

  • 2.1 Maven概述:Maven是项目管理工具,核心作用是"统一管理项目依赖(jar包)",避免手动导入jar包出现的版本冲突、缺失问题。 新手讲解:jar包就是"别人写好的工具类",比如我们要连接数据库,不用自己写代码,直接用别人写好的jar包即可;Maven能自动下载、管理这些jar包,不用我们手动找、手动复制,还能避免不同jar包版本不兼容的问题。

  • 2.2 Maven安装配置:安装后配置环境变量,再配置本地仓库(存储下载的jar包),确保cmd输入mvn -v能显示版本。 新手讲解:和JDK一样,配置环境变量是为了让电脑能识别Maven命令;本地仓库就是"jar包的存放文件夹",Maven下载的所有jar包都会存在这里,后续项目可以直接复用,不用重复下载。

  • 2.3 IDEA集成Maven:在IDEA中指定本地Maven的安装路径和配置文件,让IDEA能识别Maven,用于创建和管理Web项目。 新手讲解:这一步是"让IDEA和Maven联动",配置好后,我们在IDEA中创建项目、添加依赖,Maven就能自动工作;新手跟着步骤操作即可,不用纠结原理,配置成功就能正常使用。

  • 2.4 依赖管理:在pom.xml文件中添加依赖坐标,Maven会自动下载对应的jar包,入门阶段会复制、修改依赖坐标即可。 新手讲解:pom.xml是Maven的"配置文件",依赖坐标就是"jar包的地址",我们只要把地址复制到这个文件中,Maven就会自动去下载对应的jar包;入门阶段不用自己写坐标,复制现成的(比如JDBC、Servlet的依赖坐标)即可。

第3章 IDEA2023原生Web项目开发基础(已完成)

核心目标:会用IDEA创建Web项目,能启动项目,访问简单的Servlet和JSP页面。 新手提示:这一章是"第一次上手写Web项目",重点练"操作步骤",比如创建项目、配置Tomcat、访问页面,遇到报错先检查路径和配置,不用慌。

  • 3.1 IDEA整合Tomcat:在IDEA中配置本地Tomcat,关联项目,确保能通过IDEA启动Tomcat并部署项目。 新手讲解:就是"让IDEA能控制Tomcat",配置好后,我们点击IDEA中的"启动"按钮,Tomcat就会启动,同时把我们的项目部署上去,不用手动启动Tomcat、手动部署。

  • 3.2 创建Web项目:用IDEA+Maven创建Web项目,熟悉项目目录结构(src/main/java、src/main/webapp等)。 新手讲解:Web项目有固定的目录结构,src/main/java是我们写Java代码(Servlet、Service等)的地方,src/main/webapp是放前端页面(JSP、HTML)的地方;新手不用死记目录,创建项目后,对着目录熟悉即可,后续写代码会慢慢熟练。

  • 3.3 Servlet创建与访问:创建Servlet类,用注解(@WebServlet)配置访问路径,启动项目后,能通过浏览器访问该Servlet,看到简单输出。 新手讲解:Servlet是"后端处理请求的核心",比如我们访问一个路径,Servlet就会执行对应的代码,返回结果;注解@WebServlet("/路径")就是"给Servlet设置一个访问地址",比如@WebServlet("/hello"),启动项目后,访问localhost:8080/项目名/hello,就能看到Servlet的输出。

  • 3.4 JSP创建与访问:创建JSP页面(后缀.jsp),编写简单的HTML+Java代码,启动项目后,能通过浏览器访问该页面,看到动态内容。 新手讲解:JSP就是"能写Java代码的HTML页面",HTML是静态的(内容固定),JSP能通过Java代码展示动态内容(比如展示当前时间、展示数据库中的数据);创建JSP后,直接放在webapp目录下,启动项目就能通过路径访问。

第4章 HTTP协议基础原理(入门必懂)

核心目标:理解HTTP是什么,知道浏览器和服务器之间如何通信,记住核心要点即可。 新手提示:HTTP是"浏览器和服务器的沟通语言",新手不用深入研究报文细节,重点记住"GET/POST区别"和"常见状态码",后续开发中会经常用到。

  • 4.1 HTTP协议:浏览器和Web服务器之间的"通信规则",所有Java Web交互都基于HTTP,特点是"无状态"(服务器不记住每次访问的用户)。 新手讲解:简单说,HTTP就是浏览器和服务器说话的"规矩",比如浏览器要请求数据,必须按照HTTP的规则发送请求,服务器也要按照HTTP的规则返回响应;"无状态"就是服务器记不住你,比如你第一次访问和第二次访问,服务器都当你是新用户,后续的Session就是解决这个问题的。

  • HTTP请求/响应报文:

    • 请求报文:浏览器发给服务器的"请求信息",包含3部分:请求行(请求方法、访问路径)、请求头(浏览器信息、请求格式)、请求体(提交的参数,比如表单数据)。 新手讲解:请求报文就是"浏览器发给服务器的信",请求行告诉服务器"我要做什么(请求方法)、我要访问哪个地址(访问路径)";请求头告诉服务器"我是谁(浏览器信息)、我要的数据格式是什么";请求体就是"我要提交的数据"(比如登录时的用户名和密码)。

    • 响应报文:服务器发给浏览器的"响应信息",包含3部分:响应行(状态码)、响应头(服务器信息、响应格式)、响应体(要展示的内容,比如HTML、数据)。 新手讲解:响应报文就是"服务器给浏览器的回信",响应行告诉浏览器"请求处理得怎么样(状态码)";响应头告诉浏览器"我是谁(服务器信息)、我返回的数据格式是什么";响应体就是"服务器返回的内容"(比如网页HTML、查询到的数据)。

  • GET与POST区别(入门重点):

    • GET:请求参数拼在URL后面,不安全、参数长度有限(比如浏览器地址栏的请求)。 新手讲解:GET就像"公开喊话",参数直接显示在地址栏,比如百度搜索"Java",地址栏会显示参数,不安全(别人能看到参数),而且参数不能太长(地址栏有长度限制),适合简单的查询请求(比如查询商品列表)。

    • POST:请求参数放在请求体中,安全、参数长度无限制(比如表单提交)。 新手讲解:POST就像"悄悄话",参数不显示在地址栏,别人看不到,而且能提交大量数据,适合需要提交敏感信息的请求(比如登录、注册)。

HTTP状态码

  • 常见状态码(记熟这5个即可):

    • 200:成功(请求被服务器正常处理)。 新手讲解:最常见的状态码,说明你的请求没问题,服务器成功返回了你要的内容(比如打开正常的网页)。

    • 404:页面不存在(访问路径错误)。 新手讲解:常见报错,比如访问的路径写错了、页面被删除了,检查一下访问路径是否正确即可。

    • 500:服务器内部错误(代码写错了)。 新手讲解:自己写的代码有问题(比如Servlet中语法错误),重点检查自己的Java代码,修改后重启项目即可。

    • 302:重定向(页面跳转)。 新手讲解:服务器告诉浏览器"你要访问的页面不在这,去另一个地址找",比如登录成功后,自动跳转到首页。

    • 405:请求方法不支持(比如用GET访问需要POST的接口)。 新手讲解:比如你用GET请求访问一个需要POST的Servlet(比如登录接口),服务器就会返回405,检查请求方法和Servlet中定义的方法是否一致即可。

第5章 Servlet核心进阶知识(入门重点)

核心目标:理解Servlet的作用和生命周期,会用两种方式配置Servlet,能处理简单请求。 新手提示:Servlet是Java Web的"核心",新手重点掌握"生命周期流程"和"注解配置",能写出简单的Servlet处理请求即可,不用深入底层原理。

  • 5.1 Servlet定义:Java Web的核心组件,负责接收浏览器请求、处理请求,然后返回响应(相当于"后端的处理器")。 新手讲解:Servlet就是"后端的服务员",浏览器发送请求(比如点击登录),Servlet接收请求,处理逻辑(比如验证用户名密码),然后返回响应(比如登录成功/失败),是后端处理请求的核心。

  • Servlet生命周期(入门记流程即可):

    • 初始化(init()):服务器启动时,创建Servlet对象,执行一次。 新手讲解:Servlet就像"服务员",服务器启动时,服务员(Servlet)上岗,只上岗一次,做好准备工作。

    • 服务(service()):每次有请求访问时,执行一次,会自动调用doGet()或doPost()。 新手讲解:每次有顾客(浏览器)点餐(请求),服务员(Servlet)就服务一次,根据请求方法(GET/POST),调用对应的服务方法(doGet/doPost)。

    • 销毁(destroy()):服务器关闭时,执行一次,释放资源。 新手讲解:服务器关闭时,服务员(Servlet)下班,释放手中的资源(比如关闭数据库连接),只下班一次。

  • Servlet配置方式(二选一,入门重点学注解):

    • 注解配置:在Servlet类上添加@WebServlet("/路径"),简单快捷(入门首选)。 新手讲解:最常用的配置方式,不用写复杂的配置文件,只要在Servlet类上面加一行注解,设置好访问路径,就能访问这个Servlet,新手重点掌握这种方式。

    • web.xml配置:在web.xml文件中编写配置,适合复杂场景,入门了解即可。 新手讲解:老式的配置方式,需要在web.xml中编写代码,配置访问路径和Servlet的对应关系,比较繁琐,入门阶段不用深入,知道有这种方式即可。

  • ServletContext:全局应用域对象,整个项目共享一个,能存储全局数据(比如项目名称、全局配置),入门知道它的作用即可。 新手讲解:ServletContext就像"项目的公共仓库",整个项目的所有Servlet都能访问这个仓库中的数据,比如存储项目名称、数据库连接地址等全局信息,入门阶段知道它能存全局数据即可,不用深入使用。

  • 线程安全:Servlet是单例多线程的,多个请求会同时访问,入门阶段知道"尽量不要在Servlet中定义成员变量"即可,不用深入。 新手讲解:简单说,一个Servlet只有一个对象,多个浏览器同时访问,会同时调用这个对象的方法,容易出现数据混乱;所以新手写Servlet时,尽量不要在类中定义成员变量(比如private String name;),避免出现问题。

第6章 请求与响应核心对象(入门重点)

核心目标:掌握HttpServletRequest和HttpServletResponse的基本用法,能获取请求参数、返回响应内容,解决乱码问题。 新手提示:这两个对象是"后端处理请求和响应的关键",新手重点掌握"获取请求参数"和"设置响应内容",乱码问题是新手常踩的坑,记住固定解决方案即可。

  • HttpServletRequest(请求对象):代表浏览器发给服务器的请求,常用功能:

    • 获取请求参数(比如表单提交的用户名、密码)。 新手讲解:HttpServletRequest就像"装着请求信息的包裹",里面有浏览器提交的参数(比如登录时的username和password),我们用它的方法(比如getParameter("username")),就能取出包裹里的参数。

    • 获取请求路径、浏览器信息等。 新手讲解:除了参数,这个对象还能获取请求的路径、浏览器的类型(比如Chrome、Edge)等信息,入门阶段重点掌握获取请求参数的方法即可。

  • HttpServletResponse(响应对象):代表服务器发给浏览器的响应,常用功能:

    • 设置响应内容(比如返回文字、HTML页面)。 新手讲解:HttpServletResponse就像"服务器给浏览器的回信",我们用它的方法(比如getWriter().write("登录成功")),就能给浏览器返回内容,让浏览器展示出来。

    • 设置响应编码(解决中文乱码)。 新手讲解:新手常踩的坑------返回中文时出现乱码(比如显示???),只要设置响应编码为UTF-8,就能解决,记住固定代码即可。

  • 请求转发与重定向(入门记区别):

    • 请求转发:服务器内部跳转,URL地址不变,能共享请求中的数据。 新手讲解:就像你去餐厅吃饭,点了可乐,服务员(Servlet)自己去后厨拿,你不用动,地址栏不变,而且服务员能把你点的餐(请求数据)带给后厨(另一个Servlet)。

    • 重定向:服务器通知浏览器跳转,URL地址会变,不能共享请求中的数据。 新手讲解:就像你去餐厅吃饭,点的可乐没有,服务员(Servlet)告诉你"隔壁餐厅有,你去隔壁买",你需要自己去隔壁(浏览器跳转页面),地址栏会变成隔壁餐厅的地址,而且服务员不会把你点的餐(请求数据)带给隔壁。

  • Web乱码解决方案(入门必会):

    • 请求乱码:在获取参数前,设置request.setCharacterEncoding("UTF-8")。 新手讲解:浏览器提交的中文参数,服务器默认用ISO-8859-1编码解析,会出现乱码,这行代码就是告诉服务器,用UTF-8编码解析请求参数,必须写在获取参数之前。

    • 响应乱码:设置response.setContentType("text/html;charset=UTF-8")。 新手讲解:服务器返回的中文内容,默认用ISO-8859-1编码,浏览器解析会乱码,这行代码就是告诉服务器和浏览器,用UTF-8编码处理响应内容,写在返回响应之前即可。

第7章 JSP动态网页进阶(入门重点)

核心目标:理解JSP的作用,会用简单的内置对象、EL表达式和JSTL标签,编写动态页面。 新手提示:JSP是"前端和后端的桥梁",能在HTML中写Java代码,新手重点掌握"内置对象"和"EL表达式",简化代码编写,不用写复杂的Java脚本。

7.1 JSP工作原理:JSP本质是Servlet,浏览器访问JSP时,服务器会把JSP编译成Servlet,再执行并返回结果(入门知道这个流程即可)。 新手讲解:你写的JSP页面,服务器会自动把它转换成Servlet代码,然后执行,所以JSP本质还是Servlet,只是比Servlet更方便编写前端页面,不用手动写HTML输出代码。

JSP九大内置对象(入门重点记5个):

  • request:请求对象,和Servlet中的request一样,用于获取请求参数。 新手讲解:和Servlet中的HttpServletRequest一样,能获取浏览器提交的参数(比如username),不用自己创建,直接用即可。

  • response:响应对象,和Servlet中的response一样,用于设置响应。 新手讲解:和Servlet中的HttpServletResponse一样,能设置响应内容、解决乱码,直接用即可。

  • session:会话对象,用于存储用户会话信息(比如登录状态)。 新手讲解:session就像"用户的专属储物柜",用户登录后,把登录状态(比如用户名)存到session中,后续访问其他页面,就能从session中取出登录状态,判断用户是否已登录。

  • application:全局对象,和ServletContext一样,整个项目共享。 新手讲解:和ServletContext一样,是项目的公共仓库,所有JSP和Servlet都能访问,存储全局信息(比如项目名称)。

  • pageContext:页面上下文对象,用于获取其他内置对象,入门了解即可。 新手讲解:相当于"内置对象的管家",能获取request、session等其他内置对象,入门阶段不用深入使用,知道有这个对象即可。

JSP三大指令(入门记作用,会用page指令):

  • page指令:设置页面编码、语言等(比如<%@ page contentType="text/html;charset=UTF-8" %>)。 新手讲解:最常用的指令,重点记住这行代码,用于设置JSP页面的编码,解决中文乱码,每个JSP页面开头都建议加上。

  • include指令:引入其他JSP页面,实现页面复用。 新手讲解:比如多个页面都有相同的导航栏,不用每个页面都写一遍,把导航栏写成一个单独的JSP页面,然后用include指令引入,实现复用,减少重复代码。

  • taglib指令:引入JSTL标签库,后续使用JSTL标签时需要。 新手讲解:JSTL标签能简化JSP中的Java代码,使用前需要用taglib指令引入标签库,入门阶段记住引入的代码即可。

EL表达式:简化数据获取,用{变量名}就能获取request、session等对象中的数据,不用写复杂的Java代码(入门会用基本语法即可)。 新手讲解:新手之前获取request中的数据,需要写复杂的Java代码(比如\<%= request.getParameter("username") %\>),用EL表达式只要写{username},就能获取到数据,非常简洁,重点掌握这种简化写法。

JSTL标签库(入门重点学2个):

  • if标签:用于页面逻辑判断(比如判断用户是否登录)。 新手讲解:在JSP页面中实现判断逻辑,比如判断session中是否有用户名(是否登录),如果有,显示"欢迎你",如果没有,显示"请登录",不用写Java的if语句,用JSTL的if标签更简洁。

  • forEach标签:用于页面循环(比如遍历展示列表数据)。 新手讲解:比如从数据库中查询到多个商品数据,需要在页面上循环展示,用forEach标签就能实现,不用写Java的for循环,简化代码。

第8章 Web会话跟踪技术(入门重点)

核心目标:理解会话跟踪的作用,掌握Cookie和Session的基本用法,知道两者区别。 新手提示:HTTP是无状态的,会话跟踪就是"让服务器记住用户",新手重点掌握Cookie和Session的"作用"和"区别",知道什么时候用Cookie、什么时候用Session。

会话跟踪:因为HTTP是无状态的,服务器记不住用户,所以需要通过技术跟踪用户状态(比如登录后,下次访问不用重新登录)。 新手讲解:比如你登录淘宝后,浏览多个商品,淘宝能记住你是谁,不用每次浏览都重新登录,这就是会话跟踪的作用,解决HTTP"记不住人"的问题。

Cookie(客户端会话技术):

  • 存储在浏览器端,用于记录用户信息(比如记住密码)。 新手讲解:Cookie就像"服务器给浏览器的小纸条",服务器把用户信息(比如记住密码的状态)写在纸条上,发给浏览器,浏览器存在本地,下次访问时,再把纸条发给服务器,服务器就能记住用户。

  • 入门会创建、获取Cookie,知道可以设置有效期即可。 新手讲解:新手重点掌握"创建Cookie"(给浏览器发纸条)、"获取Cookie"(读取浏览器发来的纸条),以及设置Cookie的有效期(比如让纸条保存7天,7天后失效)。

Session(服务器端会话技术):

  • 存储在服务器端,用于记录用户会话信息(比如登录状态)。 新手讲解:Session就像"服务器给用户的专属储物柜",用户登录后,服务器给用户分配一个储物柜(Session),把用户信息(比如用户名)存进去,同时给浏览器一个"钥匙"(JSESSIONID,存在Cookie中),下次浏览器访问时,带着钥匙,服务器就能找到对应的储物柜,记住用户。

  • 入门会创建、获取Session,知道它的生命周期(默认30分钟无操作失效)即可。 新手讲解:创建Session不用手动创建,第一次调用request.getSession()就会自动创建;Session默认30分钟内没有用户操作,就会自动失效(储物柜被清空),用户需要重新登录。

Cookie与Session区别(入门记核心):

  • Cookie:存在客户端(浏览器),不安全(别人能修改浏览器中的Cookie),存储容量小(只能存少量数据)。 新手讲解:适合存储不敏感、少量的数据(比如记住密码、用户偏好设置)。

  • Session:存在服务器端,安全(别人看不到服务器中的数据),存储容量大(能存大量数据)。 新手讲解:适合存储敏感、大量的数据(比如登录状态、用户权限),是新手开发中最常用的会话技术。

第9章 Web核心配置文件web.xml

核心目标:了解web.xml的作用,会配置简单的欢迎页、错误页面。 新手提示:web.xml是Web项目的"全局配置文件",新手重点掌握"欢迎页"和"错误页面"的配置,遇到404、500报错时,能通过配置自定义页面,提升用户体验。

9.1 web.xml作用:部署描述符,用于配置Web项目的全局设置,比如欢迎页、错误页面、全局参数等。 新手讲解:web.xml就像"项目的全局设置面板",所有项目级别的配置都在这里设置,比如项目启动后默认访问哪个页面、出现错误时显示哪个页面等。

常用配置(入门会写即可):

  • 欢迎页:项目启动后,默认访问的页面(比如index.jsp)。 新手讲解:比如你访问http://localhost:8080/项目名,没有指定具体页面,服务器就会自动访问欢迎页,配置时只要指定欢迎页的路径即可。

  • 全局错误页面:当出现404、500等错误时,显示的自定义页面。 新手讲解:默认的错误页面很简陋,我们可以自己写一个美观的错误页面(比如404页面写"页面找不到啦"),然后在web.xml中配置,出现对应错误时,就会显示我们自定义的页面。

  • 全局初始化参数:配置项目的全局参数,供整个项目使用。 新手讲解:比如配置数据库连接地址、项目名称等全局信息,整个项目的Servlet和JSP都能获取到这些参数,入门阶段了解即可。

注解与XML混合配置:入门阶段,注解配置Servlet、Filter等,web.xml配置全局设置,两者不冲突。 新手讲解:新手开发中,用注解配置Servlet、Filter(简单快捷),用web.xml配置欢迎页、错误页面(全局设置),两者可以同时使用,互不影响。

第10章 Filter过滤器技术(入门重点)

核心目标:理解Filter的作用,会配置简单的过滤器,实现全局编码过滤、登录拦截。 新手提示:Filter是"请求的拦截器",能统一处理所有请求,新手重点掌握"全局编码过滤"和"登录拦截",这两个是开发中最常用的功能,能减少重复代码。

10.1 Filter作用:拦截请求和响应,在请求到达Servlet之前、响应返回浏览器之前做处理(比如统一编码、登录校验)。 新手讲解:Filter就像"项目的保安",所有请求都要经过保安的检查,才能到达Servlet;保安可以做一些统一处理(比如检查所有请求的编码、检查用户是否登录),减少Servlet的重复代码。

Filter生命周期(入门记流程):初始化(init())→ 拦截(doFilter())→ 销毁(destroy()),和Servlet生命周期类似。 新手讲解:和Servlet一样,服务器启动时,Filter初始化(保安上岗);每次有请求时,Filter拦截处理(保安检查);服务器关闭时,Filter销毁(保安下班)。

过滤器配置:和Servlet一样,支持注解(@WebFilter)和web.xml配置,入门会用注解配置即可。 新手讲解:和Servlet的注解配置类似,在Filter类上添加@WebFilter("/*"),表示拦截所有请求,简单快捷,新手重点掌握这种方式。

实战重点(入门必会):

  • 全局编码过滤器:拦截所有请求,统一设置请求和响应的编码,解决全站乱码。 新手讲解:之前我们在每个Servlet中都要写设置编码的代码,很繁琐;用全局编码过滤器,拦截所有请求,统一设置编码,一次配置,全站生效,不用再在每个Servlet中重复写代码。

  • 登录拦截过滤器:拦截未登录的用户,跳转到登录页面,保护页面安全。 新手讲解:比如一些页面(比如个人中心),只有登录后的用户才能访问,登录拦截过滤器就会检查用户是否登录(检查session中是否有用户信息),如果没登录,就自动跳转到登录页面,保护页面安全。

第11章 Listener监听器技术(入门了解)

核心目标:了解Listener的作用,知道常用的监听器,能实现简单的实战需求。 新手提示:Listener是"项目的监听器",能监听项目中某些事件的发生(比如项目启动、用户登录),入门阶段了解常用监听器的作用,能实现简单的在线人数统计即可,不用深入。

11.1 Listener作用:监听Web项目中"域对象"的创建和销毁,以及属性的变化(比如监听Session的创建和销毁,统计在线人数)。 新手讲解:Listener就像"项目的监控器",能监控域对象(Request、Session、Application)的创建、销毁,以及它们的属性变化,当发生对应的事件时,就会执行对应的代码。

常用监听器(入门了解2个):

  • ServletContextListener:监听整个项目的启动和销毁,项目启动时初始化资源(比如加载配置文件)。 新手讲解:项目启动时,这个监听器会执行初始化代码(比如加载数据库配置文件);项目关闭时,会执行销毁代码(比如关闭数据库连接),入门了解即可。

  • HttpSessionListener:监听Session的创建和销毁,用于统计在线人数。 新手讲解:用户登录时,会创建Session,这个监听器就会记录一次(在线人数+1);用户退出或Session失效时,监听器就会记录一次(在线人数-1),这是入门阶段最常用的监听器实战场景。

实战:入门会编写简单的在线人数统计监听器,知道监听器的基本使用流程即可。 新手讲解:不用深入原理,跟着步骤编写监听器类,配置注解,就能实现在线人数统计,重点掌握"监听Session创建和销毁"的逻辑即可。

第12章 JDBC数据库整合Web项目(入门重点)

核心目标:会在Web项目中连接数据库,实现简单的增删改查,了解分层思想。 新手提示:Web项目离不开数据库(比如存储用户信息、商品数据),新手重点掌握"Druid连接池"和"分层思想",能实现简单的用户登录、注册功能即可,不用深入复杂的数据库操作。

JDBC基础:JDBC是Java连接数据库的标准,通过JDBC可以操作数据库(增删改查),入门会用基本的JDBC代码即可。 新手讲解:JDBC就是"Java连接数据库的工具",通过JDBC代码,我们能连接数据库,执行SQL语句(比如查询用户、添加用户),入门阶段记住基本的连接代码和SQL执行流程即可。

Web项目集成JDBC:在Web项目中,通过Maven导入JDBC依赖,编写代码连接数据库,实现简单的用户登录、注册功能。 新手讲解:在Web项目中,我们用Maven导入JDBC的jar包,然后编写代码,实现"用户登录(查询数据库中的用户信息)""用户注册(向数据库中添加用户信息)",这是Web项目最基础的数据库交互场景。

Druid连接池(入门必会):替代原生JDBC的连接方式,能复用数据库连接,提高性能,入门会配置Druid,获取连接即可。 新手讲解:原生JDBC每次操作数据库都要创建连接、关闭连接,很耗时;Druid连接池会提前创建好一批连接,用的时候拿,用完放回,复用连接,提高效率;新手重点掌握Druid的配置文件编写和获取连接的方法。

分层思想(入门理解):将项目分为3层,职责清晰,便于后续维护:

  • DAO层:负责和数据库交互,实现增删改查。 新手讲解:DAO层就像"和数据库打交道的专员",专门负责执行SQL语句,查询、添加、修改、删除数据库中的数据,不处理业务逻辑。

  • Service层:负责处理业务逻辑(比如判断用户名密码是否正确)。 新手讲解:Service层就像"业务处理专员",比如登录时,判断DAO层查询到的用户名密码是否正确,处理业务逻辑,不直接和数据库打交道。

  • Servlet层:负责接收请求、调用Service层,返回响应。 新手讲解:Servlet层就像"前台接待",接收浏览器的请求(比如登录请求),调用Service层处理逻辑,然后返回响应(登录成功/失败),不处理业务逻辑和数据库操作。

事务基础:入门知道"事务是一组不可分割的操作,要么全部成功,要么全部失败"(比如转账,扣钱和加钱必须同时成功或同时失败),不用深入实现。 新手讲解:比如转账操作,从A账户扣100元,给B账户加100元,这两个操作是一个整体,要么都成功(A扣钱、B加钱),要么都失败(A不扣钱、B不加钱),这就是事务,入门阶段知道这个概念即可。

第13章 Web项目路径、部署与工具规范(入门必懂)

核心目标:掌握Web项目的路径区分,会打包部署项目,了解基础的开发规范。 新手提示:路径错误是新手常踩的坑,部署项目是Web开发的必备技能,新手重点掌握"绝对路径"的使用和"Maven打包"的步骤,规范开发习惯。

  • 13.1 Web路径(入门重点区分): 相对路径:相对于当前页面的路径(比如./index.jsp),容易出错,入门尽量少用。 新手讲解:相对路径是"相对于当前页面的地址",比如当前页面在webapp/user目录下,./index.jsp就是指webapp/user/index.jsp,一旦页面路径变化,相对路径就会出错,新手尽量不用。

  • 绝对路径:以/开头,相对于项目根路径(比如/{pageContext.request.contextPath}/index.jsp),推荐使用。 新手讲解:绝对路径是"相对于项目根目录的地址",{pageContext.request.contextPath}会自动获取项目的上下文路径(比如项目名),不管当前页面在哪个目录,绝对路径都不会出错,新手重点掌握这种写法。

  • 上下文路径:项目部署后的访问路径(比如http://localhost:8080/JavaWebDemo,其中JavaWebDemo就是上下文路径)。 新手讲解:上下文路径就是"项目的访问前缀",比如你的项目叫JavaWebDemo,部署后,访问项目的所有路径都要加上/JavaWebDemo,比如访问index.jsp,路径就是http://localhost:8080/JavaWebDemo/index.jsp。

项目打包与部署: Maven打包:通过Maven将项目打成WAR包(用于部署),入门会用Maven的package命令即可。 新手讲解:项目开发完成后,需要打包成WAR包,才能部署到服务器上;用Maven的package命令,就能自动打包,打包后的WAR包在项目的target目录下。

Tomcat部署:将WAR包放到Tomcat的webapps目录下,启动Tomcat,自动解压部署。 新手讲解:部署项目很简单,把打包好的WAR包复制到Tomcat的webapps目录下,启动Tomcat,Tomcat会自动解压WAR包,部署项目,然后就能通过浏览器访问。

IDEA热部署:配置IDEA,修改代码后不用重启Tomcat,直接生效,提高开发效率。 新手讲解:开发过程中,每次修改代码都要重启Tomcat,很耗时;配置热部署后,修改代码保存,就能自动生效,不用重启Tomcat,新手建议配置,提高开发效率。

基础规范: 日志:用SLF4J+Logback替代System.out打印,便于排查错误,入门会简单使用即可。 新手讲解:之前我们用System.out.println()打印信息,排查错误很不方便;用日志工具,能将信息保存到文件中,还能区分日志级别,便于排查错误,入门阶段记住基本的日志打印代码即可。

全局异常处理:配置自定义错误页面,避免直接向用户展示错误代码(比如500),提升用户体验。 新手讲解:如果项目出现错误,直接向用户展示500、404等错误代码,用户体验很差;配置全局异常处理,出现错误时,显示自定义的错误页面,告诉用户"系统出错了,请稍后再试",提升用户体验。

入门总结

  1. 入门核心:掌握"环境搭建→项目创建→请求处理→数据交互→项目部署"的完整流程,不用深入底层原理。 新手提示:入门阶段,"会用"比"懂原理"更重要,先能写出简单的Web项目(比如用户登录注册),再逐步深入底层原理。

  2. 重点掌握:Servlet、JSP、HTTP协议、Cookie/Session、Filter、JDBC整合,这些是后续学习框架(SpringMVC、SpringBoot)的基础。 新手提示:这些知识点是Java Web的"基石",后续学习SpringBoot等框架,都是基于这些知识点的简化,一定要扎实掌握。

  3. 学习建议:先理解每个知识点的"作用和基本用法",能写出简单的demo,再逐步深入,避免一开始陷入复杂细节。 新手提示:学习过程中,遇到不懂的地方,不要死磕,先跳过,继续往下学,等整体有了认知,再回头理解,多写demo,多动手操作,比死记硬背更有效。

相关推荐
行思理14 小时前
微信支付“商家转账用户确认模式”,新手教程
java·开发语言·微信
cyforkk14 小时前
Vercel 绑定自定义域名极简配置指南
服务器·前端·网络
空中湖15 小时前
Spring AI RAG 完整实战:从零搭建企业知识库问答系统
java·人工智能·spring
Ai拆代码的曹操15 小时前
K8s Pod Pending 逐层排查:从 FailedScheduling 到 PVC StorageClass 不存在的实战记录
java·linux·kubernetes
什巳15 小时前
JAVA练习306- 翻转二叉树
java·数据结构·算法·leetcode
IT_陈寒15 小时前
React useEffect依赖数组中埋的坑,这次终于让我逮到了
前端·人工智能·后端
wangbing112516 小时前
JPA下自定义主键
java·linux·服务器
FourAu16 小时前
2026 前端突围指南:从 ESR 边缘渲染到封装 Web AI SDK,聊聊 AI 时代的职业进化
前端·人工智能