news 2026/3/8 15:05:54

JavaWeb期末知识点总结(含手写八卦封印笔记)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JavaWeb期末知识点总结(含手写八卦封印笔记)

JavaWeb期末知识点总结

关键词:JavaWeb、JSP、Servlet、MVC、Session、Cookie、JDBC、过滤器、监听器


📌 前言

JavaWeb 是 Java 语言在 Web 开发领域的重要组成部分,是构建动态网站的核心技术之一。本文基于手写笔记整理而成,全面梳理了 JavaWeb 课程中的核心知识点,涵盖 JSP、Servlet、MVC 模型、会话管理(Session/Cookie)、数据库连接(JDBC)等内容,适合准备期末考试或复习 JavaWeb 的同学参考。


一、JSP(JavaServer Pages)

1. JSP 页面生命周期

JSP 生命周期分为以下几个阶段:

  1. 翻译阶段:将.jsp文件翻译成对应的 Servlet 类。
  2. 编译阶段:将生成的 Servlet 编译为.class文件。
  3. 初始化阶段:调用init()方法初始化 Servlet 实例。
  4. 执行阶段:调用service()方法处理请求。
  5. 销毁阶段:调用destroy()方法释放资源。

✅ 注意:JSP 在首次访问时会被编译并缓存,后续访问直接执行已编译的 Servlet。


2. JSP 三大指令元素

指令作用
<%@ page %>设置页面属性,如编码、导入包等
<%@ include %>静态包含,将文件内容插入当前页面
<%@ taglib %>导入自定义标签库
示例:
<%@ page language="java" contentType="text/html;charset=UTF-8" %> <%@ include file="header.jsp" %>

3. JSP 三大作用域

从大到小依次为:

作用域对象生命周期范围
pagePageContext当前页面当前页面
requestHttpServletRequest一次请求单次请求
sessionHttpSession用户会话整个会话
applicationServletContext应用运行期间全局应用

🔁 数据传递顺序:page → request → session → application


4. JSP 动作元素

常用动作元素包括:

  • <jsp:include>:动态包含其他页面
  • <jsp:forward>:请求转发(服务器内部跳转)
  • <jsp:useBean>:使用 JavaBean
示例:
<jsp:forward page="success.jsp" /> <jsp:useBean id="user" class="com.User" scope="session" />

二、Servlet

1. Servlet 生命周期

  1. 加载与实例化:由容器加载类并创建实例。
  2. 初始化:调用init()方法。
  3. 服务:调用service()方法处理请求。
  4. 销毁:调用destroy()方法释放资源。

service()方法根据请求方法(GET/POST)自动调用doGet()doPost()


2. 请求与响应处理

  • HttpServletRequest:封装客户端请求信息。
  • HttpServletResponse:封装服务器响应信息。
常见操作:
// 获取参数Stringname=request.getParameter("name");// 设置响应头response.setContentType("text/html;charset=UTF-8");// 输出内容PrintWriterout=response.getWriter();out.println("<h1>Hello World!</h1>");

三、MVC 架构模式

MVC 概念

  • Model(模型):负责业务逻辑和数据处理。
  • View(视图):负责展示数据(如 JSP 页面)。
  • Controller(控制器):接收请求,调用 Model 处理,返回 View。

✅ MVC 分离职责,提高代码可维护性和扩展性。

实现流程

  1. 用户通过浏览器发送请求(如/login)。
  2. Controller 接收请求,调用 Service 层处理业务。
  3. Service 调用 DAO 层访问数据库。
  4. 将结果存储在requestsession中。
  5. 转发至对应 JSP 页面显示。

四、会话管理(Session & Cookie)

1. Session

  • 服务器端存储用户状态。
  • 基于 Cookie 实现,但不依赖 Cookie。
  • 生命周期:默认 30 分钟无活动后过期。
使用方式:
HttpSessionsession=request.getSession();session.setAttribute("username","zhangsan");Stringusername=(String)session.getAttribute("username");

⚠️ 注意:Session 存储在服务器上,占用内存,不适合存储大量数据。


2. Cookie

  • 客户端存储机制,保存在浏览器中。
  • 可设置过期时间,支持持久化。
  • 不安全,易被篡改。
示例:
Cookiecookie=newCookie("user","zhangsan");cookie.setMaxAge(60*60*24);// 24小时response.addCookie(cookie);// 读取Cookie[]cookies=request.getCookies();for(Cookiec:cookies){if("user".equals(c.getName())){System.out.println(c.getValue());}}

✅ 区别:Cookie 存在客户端,Session 存在服务器。


五、JDBC 数据库连接

JDBC 连接步骤

  1. 加载并注册数据库驱动程序:
    Class.forName("com.mysql.cj.jdbc.Driver");
  2. 获取数据库连接:
    Connectionconn=DriverManager.getConnection(url,username,password);
  3. 创建 Statement 或 PreparedStatement:
    PreparedStatementps=conn.prepareStatement("SELECT * FROM user WHERE id=?");
  4. 执行 SQL 语句并获取结果集:
    ResultSetrs=ps.executeQuery();while(rs.next()){System.out.println(rs.getString("name"));}
  5. 关闭资源(按逆序关闭):
    rs.close();ps.close();conn.close();

✅ 推荐使用try-with-resources自动关闭资源。


六、过滤器(Filter)与监听器(Listener)

1. 过滤器(Filter)

用于拦截请求和响应,常用于登录验证、字符编码设置等。

示例:
@WebFilter("/admin/*")publicclassLoginFilterimplementsFilter{@OverridepublicvoiddoFilter(ServletRequestreq,ServletResponseres,FilterChainchain)throwsIOException,ServletException{HttpServletRequestrequest=(HttpServletRequest)req;if(request.getSession().getAttribute("user")==null){request.getRequestDispatcher("/login.jsp").forward(req,res);}else{chain.doFilter(req,res);}}}

2. 监听器(Listener)

监听 Web 应用中特定事件的发生,如:

  • ServletContextListener:监听应用启动/关闭
  • HttpSessionListener:监听会话创建/销毁
  • ServletRequestListener:监听请求开始/结束
示例:
@WebListenerpublicclassMyListenerimplementsServletContextListener{@OverridepublicvoidcontextInitialized(ServletContextEventsce){System.out.println("应用启动!");}@OverridepublicvoidcontextDestroyed(ServletContextEventsce){System.out.println("应用关闭!");}}

七、请求转发 vs 重定向

特性请求转发(Forward)重定向(Redirect)
地址栏不变改变
是否同一次请求否(两次请求)
是否共享请求对象
是否可以跨域
性能更快较慢

✅ 选择建议:

  • 内部跳转用forward
  • 页面跳转或登录成功后用redirect

八、JavaBean 规范

JavaBean 是符合以下规范的 Java 类:

  1. 提供无参构造函数。
  2. 属性私有,提供getter/setter方法。
  3. 实现Serializable接口(可序列化)。
示例:
publicclassUserimplementsSerializable{privateStringname;privateintage;publicUser(){}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}}

✅ JSP 中可通过<jsp:useBean>使用 JavaBean。


九、常见面试题总结

问题答案要点
JSP 和 Servlet 的区别?JSP 侧重视图,Servlet 侧重控制逻辑;JSP 编译为 Servlet。
Session 和 Cookie 的区别?Session 服务器端存储,Cookie 客户端存储;Session 更安全但消耗资源。
如何防止重复提交?使用 Token、禁用按钮、重定向等。
MVC 的优势?分层清晰,便于维护和扩展。

🔚 结语

JavaWeb 是 Java EE 开发的基础,掌握其核心概念对后续学习 Spring、Spring Boot 等框架至关重要。本文结合手写笔记,系统整理了 JavaWeb 的关键知识点,希望对你备考或项目开发有所帮助!

📌建议复习重点:JSP 指令、Servlet 生命周期、MVC 流程、Session/Cookie、JDBC 操作、过滤器与监听器。


💡温馨提示:多动手写代码,理解原理比死记硬背更重要!


如果你觉得这篇博客对你有帮助,欢迎点赞、收藏、分享!


版权声明:本文内容基于个人学习笔记整理,仅供学习交流使用。转载请注明出处。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/7 21:44:48

从零实现施密特触发器:基于运放的硬件实践

从零实现施密特触发器&#xff1a;一次深入运放核心的硬件实践你有没有遇到过这样的问题——一个看似简单的传感器信号&#xff0c;接入单片机后却频频误触发&#xff1f;明明只按了一次按键&#xff0c;系统却记录了三四次&#xff1b;温度缓慢上升时&#xff0c;ADC读数像抽风…

作者头像 李华
网站建设 2026/3/4 15:02:21

【Open-AutoGLM插件安装全指南】:从零配置到高效运行的5大核心步骤

第一章&#xff1a;Open-AutoGLM插件安装概述Open-AutoGLM 是一款基于 AutoGLM 架构开发的开源自动化机器学习插件&#xff0c;旨在简化大语言模型在垂直场景中的部署与调用流程。该插件支持多种主流框架集成&#xff0c;提供命令行与API双模式操作接口&#xff0c;适用于本地开…

作者头像 李华
网站建设 2026/3/5 23:27:17

Open-AutoGLM沉思MCP落地难题全解析,90%团队忽略的3个致命陷阱

第一章&#xff1a;Open-AutoGLM沉思MCP落地难题全解析在大模型与自动化系统深度融合的背景下&#xff0c;Open-AutoGLM作为基于GLM架构的开源自动推理框架&#xff0c;其与MCP&#xff08;Model Control Protocol&#xff09;协议的集成面临多重现实挑战。协议语义不一致、控制…

作者头像 李华
网站建设 2026/3/3 20:17:26

Dify企业级实战深度解析 (20)

一、学习目标作为整个系列课程的终极收尾篇&#xff0c;本集核心目标是实现 “知识体系闭环、实战问题清零、进阶路径明确、职业发展落地”&#xff1a;系统梳理全系列核心技能与知识脉络&#xff0c;复盘企业级项目实战中的关键难点与解决方案&#xff0c;解答学习与落地中的高…

作者头像 李华
网站建设 2026/3/5 17:42:48

Open-AutoGLM设备选择难题,一文解决算力、存储与扩展性三大瓶颈

第一章&#xff1a;Open-AutoGLM设备需求概述 Open-AutoGLM 是一款面向自动化代码生成与模型推理的开源框架&#xff0c;其运行依赖于特定的硬件与软件环境配置。为确保系统稳定运行并充分发挥性能&#xff0c;部署前需满足一系列基础设备要求。 硬件配置建议 CPU&#xff1a…

作者头像 李华
网站建设 2026/3/2 12:43:27

还在用云端跑GLM?Open-AutoGLM本地部署教程来了,隐私+低延迟一步到位

第一章&#xff1a;Open-AutoGLM本地部署的时代已来随着大语言模型技术的飞速发展&#xff0c;Open-AutoGLM 作为一款开源、可定制的自动化语言生成工具&#xff0c;正逐步成为企业与开发者本地化部署的首选方案。其灵活性、隐私保护能力以及对离线环境的支持&#xff0c;使得在…

作者头像 李华