news 2026/4/28 4:09:17

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/4/25 7:33:34

揭秘Open-AutoGLM为何必须安装插件:90%用户忽略的关键依赖项

第一章&#xff1a;Open-AutoGLM为何必须依赖插件的底层逻辑Open-AutoGLM 作为一款面向自动化任务生成与执行的大语言模型系统&#xff0c;其核心能力不仅体现在自然语言理解上&#xff0c;更在于对复杂外部环境的动态感知与交互。这种扩展性并非内生于模型本身&#xff0c;而是…

作者头像 李华
网站建设 2026/4/27 5:52:03

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

一、学习目标作为系列课程高级合规场景专项补充篇&#xff0c;本集聚焦企业 “流程合规性 服务质量管控” 核心需求&#xff0c;核心目标是掌握DifyDeepseek AI 质检的全流程开发、多场景质检规则配置、违规预警与闭环整改&#xff1a;解决企业客服会话质检、财务票据审核、合…

作者头像 李华
网站建设 2026/4/18 19:04:27

DataKit js-yaml和follow-redirects组件依赖影响分析

根据js-yaml和follow-redirects的依赖结果分析两者在DataKit项目中的受影响情况进行分析 js-yaml 主要依赖者 (在所有项目中): eslint/eslintrc0.4.3 (开发依赖): eslint7.32.0 (开发依赖): cosmiconfig6.0.0 (开发依赖): eslint/eslintrc1.3.1 (开发依赖): eslint8.23.0 (…

作者头像 李华
网站建设 2026/4/22 6:11:37

(N_105)基于javaweb,ssm公交查询系统

开发工具&#xff1a;eclipse&#xff0c;jdk1.8 服务器&#xff1a;tomcat8.0 数据库&#xff1a;mysql5.7 技术&#xff1a; springspringMVCmybaitsEasyUI 项目功能介绍&#xff1a; 分用户前台和管理后台 1.前台功能&#xff1a;登录、注册、首页、轮播图、站点信息、…

作者头像 李华
网站建设 2026/4/27 18:02:52

【Open-AutoGLM高效办公秘籍】:手把手教你5步导出PPT的终极方法

第一章&#xff1a;Open-AutoGLM高效办公的核心价值Open-AutoGLM 作为新一代基于大语言模型的自动化办公框架&#xff0c;通过深度集成自然语言理解与任务执行能力&#xff0c;显著提升了企业知识处理与流程自动化的效率。其核心价值不仅体现在对非结构化文本的智能解析上&…

作者头像 李华
网站建设 2026/4/26 5:23:53

Open-AutoGLM开源地址来了!3步部署,让大模型训练效率提升8倍

第一章&#xff1a;Open-AutoGLM开源地址来了&#xff01;3步部署&#xff0c;让大模型训练效率提升8倍Open-AutoGLM 是新一代面向大语言模型的自动化训练框架&#xff0c;现已正式开源。该项目通过动态计算图优化、梯度累积调度与混合精度训练策略&#xff0c;显著提升训练吞吐…

作者头像 李华