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

Java全栈学习笔记35

# Java EE基础

Servlet -----  SpringMVC   Spring  --- webFlux    

## C/S和B/S的区别

C/S client - server  客户端 -- 服务器端模型

B/S  browser -server  浏览器 -- 服务器模型 ,程序完全放在服务器上。采用请求/响应的模式进行交互

前后端分离 --- 前端是一个服务 --- https ----   后端是一个服务

## web服务器

java项目,本身运行时在jvm虚拟机。网站项目---- 可以被外部网络交互。需要加载到网站服务环境中。

需要一个可以编译和运行java项目的服务器。web容器---web服务器

tomcat,jboss weblogic....

下载完tomcat 需要配置环境变量

使用bin目录中的startup.bat 启动tomcat

## URL

统一资源定位系统。路径

  http://localhost:8080/firstWebProject/index.html

  http: 协议   超文本传输协议

  localhost: 主机

  8080: 端口号

  firstWebProject/index.html   资源名

## JavaEE

软件架构。里面包含了JavaEE体系针对于各个模块提供的技术支持。它是一个开发分布式企业级应用的规范和标准

EJB Enterprise Java Bean  企业级JavaBean 通俗讲 就是企业级的java类

EJB 在后续做开发过程中,不会使用。因为继承第三方难度大,而且集成过多第三方会导致整体项目架构比较臃肿

三层架构

  从JavaEE不同的技术支持体系,把整体网站分为不同的三个模块

  表示层  --- 视图   Jsp jstl el servlet

  业务逻辑层 --- 处理逻辑/数据   EJB

  数据访问层  -- 访问db   jdbc

## Http/Https

超文本传输协议

  http://localhost:8080/firstWebProject/

  https://www.jd.com/

特点

  默认的端口号   http:80  https:443

  无状态: 服务器端不会记录是谁访问了服务器。只会为每一个请求都返回一个响应

请求

  请求行

    请求方法: get/post

    资源名称:访问的资源  

    协议版本: http

  请求头

    本次请求中,所携带的常规和一些额外的参数。不属于请求体

响应

  响应头

    服务器返回响应时的一些额外的参数,不属于响应主体

  状态行:

    版本  状态代码 说明

    状态代码:

      200:请求成功并成功获取到响应

      404: 资源未找到

      400:错误请求,后端存在必传的参数,但是前端没传

      401: 没有授权

      403: 没有权限,服务器拒绝请求

      405:请求方法不匹配

      415:参数类型不匹配

      500:请求到服务器,但是服务器报错了。没有正常给出响应

# Servlet基础

servlet是一种服务器端的应用程序。Java服务器小程序

特殊的java类

  可以接收请求,返回响应

  可以内嵌Html代码

服务器:tomcat  web 服务器(容器)

  总结: servlet其实是运行在tomcat中的一个java类

  请求:可以理解为对目标地址的访问,并且真是该地址的内容或者该地址所返回的数据

配置servlet

  使用xml文件。每个网站项目都存在web.xml。放在WEB-INF 中,这个文件是整个项目的站点文件

    <servlet>

      <servlet-name>hello</servlet-name>

      <servlet-class>servlet类的全限定名称</servlet-class>

    </servlet>

    <servlet-mapping>

      <servlet-name>hello</servlet-name>

      <url-pattern>/hello</url-pattern>

      [<url-pattern>配置多个</url-pattern>]

    </servlet-mapping>

  在这个项目中 url-pattern 不能重复

  注解

    @WebServlet 在类上,标注该类为Servlet类

思考:

  调用这个方法前,我们程序中是否显示的new了这个类的对象:没有

  这个service方法谁调用的。容器

  ServletRequest 和ServletResponse  容器传入参数。

  destory方法是当servlet初始化完成后,对其进行了修改。需要重新初始化Servlet。那么会销毁之前的servlet。

    http://localhost:8080/firstWebProject/hello

    http://localhost:8080/firstWebProject/index.html

    在前端页面中,写路径不要以 /开头。这个/是网站服务器根路径,并非项目根路径

init(ServletConfig config):用于初始化Servlet。

destroy():销毁Servlet。

getServletInfo():获得Servlet的信息。

getServletConfig():获得Servlet配置相关信息。

service(ServletRequest req, ServletResponse res):运行应用程序逻辑的入口点,它接收两个参数,ServletRequest表示客户端请求的信息,ServletResponse表示对客户端的响应。

@Override

  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    System.out.println("请求来了");

  }

  @Override

  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    doPost(req,resp);

  }

  get和post的区别

  get方式提交会把数据暴露在URL中,有长度限制,相对不安全,会把长度后面的数据丢失

  post方式以数据源的形式提交数据,理论上没有长度限制,不会把数据暴露在路径中,相对安全


文章转载自:

http://uGj3LPQr.kyjpg.cn
http://B5UtCNx1.kyjpg.cn
http://srX7R6pT.kyjpg.cn
http://k3rbS6lg.kyjpg.cn
http://jMdWOixE.kyjpg.cn
http://MCwna8Vv.kyjpg.cn
http://rx34iClC.kyjpg.cn
http://7CWTGhLl.kyjpg.cn
http://DLeBazVK.kyjpg.cn
http://Iqm6tnNK.kyjpg.cn
http://iDOO6qhH.kyjpg.cn
http://WmOMlIZa.kyjpg.cn
http://kpOtyGsc.kyjpg.cn
http://dPeI96QZ.kyjpg.cn
http://ypvUJF9P.kyjpg.cn
http://JNohBQOo.kyjpg.cn
http://JDsEGzCY.kyjpg.cn
http://IJcCuyKi.kyjpg.cn
http://iU7zLlAU.kyjpg.cn
http://TW1qnL8V.kyjpg.cn
http://yaniLqih.kyjpg.cn
http://VrBnItKX.kyjpg.cn
http://2C9lXNDm.kyjpg.cn
http://nNoMruGE.kyjpg.cn
http://sYldY5DH.kyjpg.cn
http://xaXuWOvH.kyjpg.cn
http://uZw52VHs.kyjpg.cn
http://MUvUIyvd.kyjpg.cn
http://hhDw4I8c.kyjpg.cn
http://Bx5rsgI6.kyjpg.cn
http://www.dtcms.com/a/387119.html

相关文章:

  • kylin v10 系统 上 qt 5.15.17版本构建及使用
  • Linux:基于环形队列的生产者消费模型
  • Nginx 配置 Vue 项目 Hash/History 模式路由跳转错误的解决方案
  • Linux Makefile与进度条
  • 硬件驱动——I.MX6ULL裸机启动(3)(按键设置及中断设置
  • 深度学习基本模块:RNN 循环神经网络
  • 【深度学习】PixelShuffle处理操作
  • 10.1 - 遗传算法(旅行商问题C#求解)
  • Java 集合入门:从基础到实战的完整知识指南
  • 《过山车大亨3 完整版》PSXbox版下月推出 预告片赏
  • P1107题解
  • 多目标数据关联算法MATLAB实现
  • 战略推理AI Agents:组装LLM+因果推断+SHAP
  • 【CVPR 2016】基于高效亚像素卷积神经网络的实时单幅图像与视频超分辨率
  • 基于STM32的LED实战 -- 流水灯、呼吸灯、流水呼吸灯
  • 【数据结构】——队列,栈(基于链表或数组实现)
  • 任天堂官网更新!“任亏券”不支持兑换NS2专用游戏
  • 大模型数据整理器打包及填充、Flash Attention 2解析(97)
  • 48v转12v芯片48v转5v电源芯片AH7691D
  • Oracle Database 23ai 内置 SQL 防火墙启用
  • MySQL 31 误删数据怎么办?
  • 微前端面试题及详细答案 88道(09-18)-- 核心原理与实现方式
  • VBA技术资料MF362:将窗体控件添加到字典
  • 【Leetcode】高频SQL基础题--1321.餐馆营业额变化增长
  • Redis 中 Intset 的内存结构与存储机制详解
  • uniapp打包前端项目
  • cka解题思路1.32-3
  • 如何解决模型的过拟合问题?
  • 2025牛客周赛108场e题
  • 【课堂笔记】复变函数-2