news 2026/4/18 7:55:28

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/17 0:52:18

告别租赁数据混乱!用报表管好每一项资产

在企业资产构成中&#xff0c;租赁资产占据着重要地位——小到办公用的电脑、打印机&#xff0c;大到生产所需的机械设备、厂房仓库&#xff0c;租赁模式凭借灵活、低成本的优势&#xff0c;成为众多企业优化资产配置的首选。但随之而来的是租赁资产管理的难题&#xff1a;租赁…

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

PostGIS Docker 容器化部署指南

概述 PostGIS是PostgreSQL数据库的空间数据库扩展&#xff0c;它为PostgreSQL提供了存储、索引和查询地理空间数据的能力。通过容器化部署PostGIS&#xff0c;可以快速搭建空间数据库环境&#xff0c;简化配置流程&#xff0c;并确保环境一致性。 本文档详细介绍了如何使用Do…

作者头像 李华
网站建设 2026/4/18 3:49:10

致敬电视百年史 海信RGB-Mini LED和激光电视斩获科技创新大奖

12月19日&#xff0c;中国电子视像行业协会在北京隆重举办了第二十一届中国音视频产业大会。会上对音视频产业取得的重大创新科技成果进行表彰&#xff0c;颁布了音视频领域最具权威的“科技创新奖”。海信RGB-Mini LED电视凭借全球首创的“RGB三维控色液晶显示技术”、海信激光…

作者头像 李华
网站建设 2026/4/16 18:44:55

springboot基于大数据的hadoop微博舆情监测分析系统_15zvt5lc

目录具体实现截图项目介绍论文大纲核心代码部分展示可定制开发之亮点部门介绍结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;同时还支持Python(flask,django)、…

作者头像 李华
网站建设 2026/4/6 2:21:17

springboot备考自习室座位预约系统_qn7m4cn1

目录具体实现截图项目介绍论文大纲核心代码部分展示可定制开发之亮点部门介绍结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;同时还支持Python(flask,django)、…

作者头像 李华