当前位置: 首页 > news >正文

Java Web 相关技术概念与知识点

Java Web 主要用于构建基于 Web 的应用程序,涵盖了从客户端请求到服务器端处理再到响应返回的全过程

掌握这些 Java Web 关键技术后,可以进一步学习 Spring MVC、Spring Boot 等现代框架来构建更复杂的 Web 应用! 🚀


1. HTTP 协议

HTTP(HyperText Transfer Protocol,超文本传输协议) 是 Web 开发的基础,主要用于客户端(浏览器)和服务器之间的通信

1.1 HTTP 的特点

  • 无状态:每次请求是独立的,服务器不会记录上次请求的状态
  • 基于请求-响应模式:客户端发送请求,服务器返回响应
  • 明文传输:默认情况下,HTTP 传输的数据是明文的(可使用 HTTPS 进行加密)
  • 可扩展性:通过请求头(Header)可以扩展功能,如 CookieUser-Agent

1.2 常见的 HTTP 方法

  • GET:获取资源(如网页、图片、数据等)
  • POST:提交数据(如表单、JSON 数据等)
  • PUT:更新资源
  • DELETE:删除资源
  • HEAD:类似 GET 请求,但不返回响应体(只返回头部信息)
  • OPTIONS:获取服务器支持的请求方法

2. GET 和 POST 请求

2.1 GET 请求

  • 参数通过 URL 传递?key=value&key2=value2

  • 数据长度受 URL 限制(通常 2048 字符)

  • 适用于获取数据,而不进行修改

  • 不适用于敏感数据传输(参数暴露在 URL 中)

  • 示例:

    GET /login?username=admin&password=123 HTTP/1.1
    Host: example.com
    

2.2 POST 请求

  • 参数存放在请求体(body)中,不会暴露在 URL

  • 没有数据长度限制

  • 适用于数据提交(如表单、文件上传等)

  • 更安全(但仍需加密,如使用 HTTPS)

  • 示例:

    POST /login HTTP/1.1
    Host: example.com
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 27
    
    username=admin&password=123
    

3. HTTP 响应数据格式

服务器处理请求后,返回响应数据,通常包含:

  • 状态行:如 HTTP/1.1 200 OK
  • 响应头:如 Content-TypeContent-LengthSet-Cookie
  • 响应体:返回的实际数据,如 JSON、HTML、XML、文本等

常见的 HTTP 状态码

状态码含义
200 OK请求成功
301 Moved Permanently资源永久重定向
302 Found资源临时重定向
400 Bad Request客户端请求错误
401 Unauthorized未授权
403 Forbidden禁止访问
404 Not Found资源未找到
500 Internal Server Error服务器内部错误

4. Tomcat 服务器

Tomcat 是一个轻量级的 Java Web 服务器,用于运行 Servlet 和 JSP 应用。它实现了 Servlet 规范JSP 规范,是 Java Web 开发的基础

Tomcat 的主要组件

  • Catalina:Servlet 容器,负责处理 HTTP 请求和响应
  • Coyote:Tomcat 的 HTTP 连接器,负责解析 HTTP 请求
  • Jasper:JSP 解析引擎,将 JSP 转换为 Servlet 进行执行

Tomcat 部署 Web 应用

  • webapps/ 目录:存放 Web 应用,如 .war 包或文件夹

  • conf/server.xml:Tomcat 配置文件,可修改端口等参数

  • 启动命令:

    ./bin/startup.sh  # Linux/macOS
    bin\startup.bat   # Windows
    

5. Servlet

5.1 什么是 Servlet

Servlet 是 Java Web 开发的核心,它是运行在服务器端的 Java 类,负责接收 HTTP 请求,处理数据,并返回 HTTP 响应

5.2 Servlet 的生命周期

  1. 创建(init):容器加载 Servlet 并调用 init() 方法(只执行一次)
  2. 处理请求(service):每次请求都会调用 service() 方法,根据请求方法调用 doGet()doPost()
  3. 销毁(destroy):服务器关闭或应用卸载时调用 destroy() 方法(只执行一次)

5.3 示例:HelloServlet

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        resp.setContentType("text/html;charset=UTF-8");
        resp.getWriter().write("<h1>Hello, Servlet!</h1>");
    }
}
  • @WebServlet("/hello"):定义访问路径 /hello
  • doGet() 处理 GET 请求,并返回 text/html 响应

6. JSP(Java Server Pages)

6.1 什么是 JSP

JSP 是一种基于 Java 的动态网页技术,本质上是 Servlet 的扩展,可以在 HTML 中嵌入 Java 代码

6.2 JSP 的核心语法

  1. 指令(Directive)

    • 设置 JSP 属性,如页面编码:

      <%@ page language="java" contentType="text/html; charset=UTF-8" %>
      
  2. 表达式(Expression)

    • 输出变量值:

      <h1>当前时间:<%= new java.util.Date() %></h1>
      
  3. 脚本(Scriptlet)

    • 在 JSP 页面中写 Java 代码:

      <% 
          String message = "Hello, JSP!";
          out.print(message);
      %>
      
  4. 声明(Declaration)

    • 定义类级别变量或方法:

      <%! int count = 0; %>
      

6.3 JSP 的工作原理

  1. JSP 文件被 Tomcat 转换为 Servlet*.java
  2. 编译生成 *.class 文件并执行
  3. 处理请求并生成 HTML 响应

6.4 JSP 与 Servlet 的关系

  • JSP 更适合页面开发(可以混写 HTML + Java)
  • Servlet 更适合业务逻辑处理
  • 最佳实践:使用 JSP 做视图,Servlet 做控制器(MVC 设计模式)

7. 总结

技术作用
HTTP 协议客户端与服务器的通信规则
GET & POST两种常用的 HTTP 请求方法
Tomcat运行 Java Web 应用的服务器
Servlet处理 HTTP 请求的 Java 服务器端组件
JSP生成动态 HTML 的 Java 视图技术

相关文章:

  • [MySQL初阶]MySQL(2)数据类型精讲静态类型和动态类型的对比
  • ubuntu20系统下conda虚拟环境下安装文件存储位置
  • 大模型在呼吸衰竭预测及围手术期方案制定中的应用研究
  • JVM如何判断一个对象可以被回收
  • 自定义wordpress三级导航菜单代码
  • 摄相机标定的基本原理
  • 15天 — 如何解决 Redis 中的热点 key 问题?Redis 集群的实现原理是什么?Redis 中的 Big Key 问题是什么?如何解决?
  • sqli-lab靶场学习(七)——Less23-25(关键字被过滤、二次注入)
  • 1.RabbitMQ简介
  • rust笔记13:trait对象
  • 电脑技巧:硬件检测工具 HWiNFO 8.16版本更新功能介绍
  • 点云滤波方法:特点、作用及使用场景
  • MyBatis-Plus 条件构造器的使用(左匹配查询)
  • 使用jacob进行word操作
  • docker:Dockerfile案例之自定义centos7镜像
  • ESP8266连接网络实时上传数据
  • 基于Qwen-VL的手机智能体开发
  • 达梦适配记录-检查服务器
  • Linux网络相关内容与端口
  • 【人工智能】异构算力重构AIGC | 蓝耘智算平台部署通义万相2.1文生图技术全解析
  • 专业制作网站 上海/长沙网站推广有哪些啊
  • 去除网址中 wordpress/关键词优化排名第一
  • 物流系统网站建设 的网站描述/成都网站推广经理
  • 电商网站建设外包/seo案例视频教程
  • 怎么自己做公司网站/深圳百度快速排名优化
  • 淮南直聘网/seo上海网站推广