JSP基础1:客户端请求端,前端和后端的联系(半成品)

JSP虽然是20年前的老框架,它的存在是为了讲解前后端不分离,在前端html,css中可以嵌入兼容java后端代码,类似的有vue3

下面的看不懂先跳过

问题如下:request对象 = 后端创建,封装前端发送的数据或请求. 还有哪些对象可以对前后端互相发送的请求做处理.哪些对象可以进行前后端交互

在Java Web开发中,主要使用以下对象处理前后端交互:(JSP很老的框架没必要都学把下面能让你理解前后端交互的学了就行)

对象创建位置主要作用数据流向
request服务器端封装请求信息前端→后端
response服务器端封装响应信息后端→前端
session服务器端维护用户会话双向
application服务器端全局共享数据双向
Cookie服务器端创建,前端存储小数据持久化双向
选择建议:临时数据传递 → request用户状态保持 → session小数据持久化 → Cookie全局数据共享 → application

以上内容看不懂先跳过

1. "客户端"的含义

在 request 对象的上下文中,"客户端"指的是:

  • 浏览器(Chrome、Firefox、Edge等): 用户在浏览器中访问网站
  • 发起HTTP请求的设备(用户的电脑、手机等)
  • 不是指JSP页面本身
请求流程分析

浏览器(客户端) → JSP登录页面.jsp → 响应登录.jsp
        ↓                            ↓                            ↓
  发起请求                显示表单             处理登录逻辑

客户端 = 浏览器(用户操作的界面)
服务器端 = Tomcat服务器 + Servlet/JSP代码(处理请求的后端)

 用以下2个jsp文件代码讲解:

JSP登录页面.jsp:

tomcat服务器运行后会通过 form标记 跳转到响应登录.jsp响应登录.jsp:

tomcat服务器运行响应登录.jsp后会跳转到浏览器端显示用户名和密码



2. 实际请求过程大致为:

  1. 客户端(浏览器)                                             服务器端(Tomcat+JSP)
         |  0.tomcat服务器在后端编译JSP代码 将JSP转换为servlet       |
         | ① (发送请求到服务器端)访问JSP登录页面.jsp (
    对应整个登录页面.jsp的代码)                        
         |------------------------------------------------------------------------------- >  | 
         |                                                                                                     |
         | ② 返回登录表单(
    对应以下代码)                                                 |
         |<----------------------------------------------------------------------------------
  2.      |                                                                                                     |
         | ③ 填写表单,点击登录                                                               |
         |                                                                                                     |
         | ④ 发送POST请求(响应登录.jsp)                                                |
  3.      |                                                  | ⑤ 创建request对象(请求处理阶段:5,6,7)
         |                                                  | ⑥ 执行响应登录.jsp
         |                                                  | ⑦ 生成HTML响应
         | ⑧ 接收HTML响应                                                                      |
         |<---------------------------------------------------------------------------------|
         |                                                                                                     |
         | ⑨ 渲染显示页面                                                                         |
         |                                                                                                     |

      

<form action="响应登录.jsp" method="post">


     |---------------------------------------------------------------------------------->|

<%--jsp登录页面.jsp--%> <form action="响应登录.jsp" method="post"> 用户名:<input type="text" name="username"> 密码:<input type="text" name="password"> <input type="submit" name="登录"> </form>
  • 编译阶段:JSP→Servlet(首次访问)
  • 运行时阶段:处理请求(每次请求)
客户端(前端/移动端):步骤①②③④⑧⑨(浏览器操作)服务器端(后端):步骤④⑤⑥⑦(Tomcat处理)以上代码的关键点:request对象在服务器端(后端)创建,用于封装客户端(前端)发送的数据或1. 客户端(前端/移动端)

包括但不限于Web前端:浏览器(Chrome、Firefox等)移动端:iOS App、Android App桌面应用:Windows/Mac客户端程序其他客户端:小程序、物联网设备等服务器端(后端)

包括但不限于Web服务器:Tomcat、Nginx、Apache应用服务器:Spring Boot应用、Java EE应用数据库服务器:MySQL、Oracle等微服务:各种后端服务

阶段1:首次访问JSP登录页面(步骤①-②)

① 发送请求到服务器端

  • 浏览器请求JSP登录页面.jsp
  • 对应文件位置:web/JSP登录页面.jsp

② 返回登录表单

  • 服务器返回的HTML内容对应第13-16行的表单代码
  • 代码位置:web/JSP登录页面.jsp

阶段2:表单提交处理(步骤③-⑨)

③ 填写表单,点击登录

  • 用户在第14行输入用户名,第15行输入密码
  • 点击第16行的提交按钮

④ 发送POST请求

  • 表单提交到响应登录.jsp
  • 对应第13行的action="响应登录.jsp"method="post"

⑤-⑦ 服务器处理阶段

  • 这3步属于运行时请求处理阶段,不是编译阶段
  • 编译阶段只在JSP首次访问时执行一次
  • 请求处理阶段在每次表单提交时都会执行

⑧-⑨ 响应处理

  • 浏览器接收并渲染服务器返回的HTML

Read more

从零开始:在本地搭建一个带知识库的 AI 助手(Ollama + Open WebUI)

从零开始:在本地搭建一个带知识库的 AI 助手(Ollama + Open WebUI)

一文讲清楚:要选哪些工具、需要什么环境、整体架构长什么样,以及一步步实现到能用的程度。 一、为什么要在本地搭一个 AI 助手? 过去一年,大模型从“新奇玩意儿”迅速变成“日常生产力工具”。但如果你只用网页版 ChatGPT / 文心一言 / 通义千问,会碰到几个很现实的问题: * 数据隐私:公司内部文档、个人笔记、聊天记录,你敢全部塞到线上吗? * 网络依赖:在飞机上、高铁里,或者公司内网严格管控时,在线 AI 直接“失联”。 * 额度与费用:免费额度有限,稍微重度一点就要付费,而且你也不知道自己的数据会不会被拿去训练。 本地部署一套 “AI + 知识库” 的好处就非常直观: 1. 数据完全不出本地,满足隐私合规要求。 2. 断网也能用,随时随地调取你的“第二大脑”。 3. 可定制:可以给团队搭一个“

【白话前端 09】HTML网页结构搭建:从语义化标签到整站规划

早期写网页,前端只有一个容器标签可用:<div>。 结果就是页面里堆叠了几百个 <div>。人眼能通过 CSS 样式看出哪里是头部、哪里是侧边栏。但对于搜索引擎爬虫、或是视障者的屏幕阅读器来说,这只是一坨没有主次的文本碎片。机器根本不知道 <div> 这几个英文字母代表核心内容。 HTML5 引入 <header>、<main> 等语义化标签,本质不是为了给页面换个长相,而是给网页写一份“机器能看懂的结构说明书”。 当把核心代码放进 <main>,把底部备案信息扔进 <footer>,爬虫一进来就明确知道:“抓取有效信息直接去 <main> 里找,底部的东西可以直接跳过。”这就是语义化的底层价值。 本文不背概念,

Qwen1.5-0.5B-Chat实战教程:基于Flask的WebUI开发

Qwen1.5-0.5B-Chat实战教程:基于Flask的WebUI开发 1. 引言 1.1 学习目标 本文旨在带领读者从零开始,完整构建一个基于 Qwen1.5-0.5B-Chat 模型的轻量级智能对话 Web 应用。通过本教程,你将掌握: * 如何在本地环境中部署开源大模型 * 使用 ModelScope SDK 加载并调用通义千问系列模型 * 基于 Flask 构建支持流式响应的 Web 用户界面 * 在无 GPU 环境下实现 CPU 推理优化方案 最终成果是一个可交互、低资源占用、开箱即用的网页聊天系统,适用于边缘设备或低成本部署场景。 1.2 前置知识 为确保顺利跟随本教程操作,请确认已具备以下基础: * Python 编程基础(熟悉函数、类和模块导入) * 基本命令行操作能力(Linux/macOS/

【开题答辩过程】以《基于web的远程文件管理系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看

【开题答辩过程】以《基于web的远程文件管理系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看

个人简介 慕婉学姐精通Java、PHP、微信小程序、Python、Golang和安卓开发等语言,擅长开发大数据、深度学习、网站、小程序、安卓应用和算法项目。平时从事项目定制开发、代码讲解、答辩教学和文档编写,也掌握一些降重技巧。感谢大家的持续关注! 近期,由于许多同学在选题阶段既想创新又担心内容量,学姐将分享更多新颖的选题和开题答辩案例,希望能为学弟学妹们提供更多的灵感和选择,帮助大家设计出更具有创新性的作品 开题陈述 各位老师好,我的毕业设计题目是《基于Web的远程文件管理系统的设计与实现》。该系统旨在通过B/S架构,让用户能够随时随地通过网络浏览器访问和管理自己电脑中的文件,将个人电脑打造成私有"云盘"。主要功能模块包括用户认证模块、文件上传下载模块、文件操作模块(复制、移动、删除、重命名)、目录浏览模块以及文件搜索模块。技术栈方面,后端采用Spring Boot框架搭建,数据库使用MySQL存储用户信息和文件元数据,开发语言为Java,开发工具选用Eclipse。系统相比传统远程桌面程序,具有操作权限更小、安全性更高、使用更便捷的特点。