2023/7/8总结

news2024/9/22 21:22:22

Tomcat

  • 启动:双击bin目录下的startup.bat文件
  • 停止:双击bin目录下的shutdown.bat 文件
  • 访问 :http://localhost:8080(默认是8080,可以修改)

 git的使用

打开git bash

  • git config --global user.name "名称"  提交时的名称
  • git config --global user.email "you@example.com"  提交时的邮箱
  • git add (文件路径)  加入缓存   小句点号是改文件路径下所有的文件
  • git commit -m(注释)  生成版本
  • git li-files 当前的已经存在的文件

  • git status -s 查看文件状态 
  • git restore 目标文件  从缓存里面覆盖当前文件
  • git rm --cached 目标文件 从暂存区移除文件 

Servlet

Servlet是Server与Applet的缩写,是服务器小程序的意思。主要运行在服务端。

 当请求到达Servlet容器时,Servlet容器会判断该Servlet对象是否存在,如果不存在,则会创建实例并且初始化,这个方法只会执行一次

HttpServletRequest对象

主要是用来接收客户端发送过来的请求信息,其中service方法中形参接收的是HttpServletRequest接口的实例化对象,表示该对象主要应用在HTTP协议上,该对象是由Tomcat封装好传递过来

常用方法

 

 Tomcat8.0以上版本,get请求不会乱码,post请求会乱码

请求转发

是一种服务器的行为,当客户端请求到达后,服务器进行转发,此时会将请求对象进行保存,地址栏中的url地址不会发生改变,得到响应后,服务器端会将响应发生给客户端,从始至终只有一个请求发出去。

 request作用域

通过该对象可以在一个请求中传递数据,只在一次请求中有效,即服务器跳转有效

 HttpServletResponse对象

当服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象和代表响应的response对象。想要向客户端输出数据,需要通过response对象。这个对象中封装了向客户端发送数据,发送响应头,发送响应状态码的方法。

响应数据

接收到客户端请求后,可以通过HttpServletResponse对象之间进行响应,响应时需要获取输出流。

  • getWriter()获取字符流(只能响应回字符)
  • getOutputStream()获取字节流(能响应一切数据)

响应的数据会到客户端被浏览器进行解析   俩者不能同时被使用

响应乱码问题

getWriter()获取到的字符流,如果出现中文会乱码,写下面这句话就可以解决乱码问题

 重定向

重定向是一种服务器指导,客户端的行为。客户端发出第一个请求,被服务器接收处理后,进行响应的同时会给客户端一个新的地址,当客户端接收到响应之前,会马上根据服务器给的新地址发起第二次请求,服务器就会接收请求并且作出响应。

注意重定向是不会共享数据的   重定向可以跳转到域外,但是请求转发是不会的,请求转发只能在该项目内

 Cookie对象

这个是浏览器提供的一种技术,通过服务器的程序能将一些只需要保存在客户端,或者在客户端进行处理的数据,不需要通过网络传输,来提高网页的效率。安全性较差,常见的记住密码就是通过Cookie来实现的

 想要获取Cookie,只能获取到一个数组,不能单个获取

 Cookie的到期时间

我们可以手动设定cookie的有效时间(通过到期时间来计算),cookie的时间是以秒来设定的,用setMaxAge(int time)方法设定

  • 如果时间为负数,表示不存储该cookie,只在浏览器内存中存活,一旦关闭浏览器窗口,那么cookie就会消失。默认是-1.
  • 如果时间为正整数,表示存储的秒数,当数值大于0时,浏览器会把cookie存储到硬盘上,即使关闭浏览器,cookie也会存活。
  • 如果为0,表示需要删除该cookie,表示cookie作废。

Cookie是不能存储中文的。

Cookie的路径

 

 HttpSession对象

该对象不像HttpServletRequest或者HttpServletResponse一样,存在一个父接口,该接口只是一个纯粹的接口。对于服务器而言,每一个连接到它的客户端都是一个Session,servlet容器使用此接口创建HTTP客户端和HTTP服务器之间的会话,会话会保留指定的时间段,一个会话通常只会对于一个用户,该用户可能多次访问一个站点,可以通过该接口查看和操作有关某个会话的信息。

session无论是客户端还是服务器端都可以获得,且只存在于当前的浏览器当中。

它的作用就是在于标识一次会话,并且在一次会话期间共享数据。

当请求到达服务器,如果开启了会话,服务器会查看是否从客户端传一个名为JSESSIONID的cookie,如果没有则认为是一个新的会话,会创建一个新的session对象,用一个唯一的sessionid为此次会话做一个标志。它是依赖于cookie对象存储的。

session域对象

在一次会话当中,数据是可以共享的。

 Session默认在tomcat中它的时间到期为30分钟。

销毁Session:(立即销毁)

 ServletContext对象

每一个web应用都有切记有一个ServletContext对象,又称为Application对象,该对象在WEB容器启动的时候,会为每一个WEB应用程序创建一个对应的ServletContext对象。

该对象使得整个应用程序共享某些数据,一旦存储进去,如果没有手动删除会一直保存,

主要作用为:作为域对象用来共享数据,此时数据在整个应用程序中共享,该对象保存了当前应用程序相关信息。

在Servlet中如果想要支持文件上传表单,需要加@MultipartConfig注解

文件下载

当我们在HTML页面使用a标签时,如果浏览器能够识别的内容就会显示出来,如果时浏览器不能识别的内容,浏览器就会执行下载。此时如果我们想要能够识别的内容进行下载,就需要设置download属性规定浏览器进行下载,但是有些浏览器并不支持。

MVC分层

  • M->  model   数据访问层
  • V-> view  视图层
  • C-> controller  控制层

Mybatis

ORM  对象关系映射

指的是持久化数据和实体对象的映射方式,为了解决面向对象于关系型数据库存在的互不匹配的现象的技术

映射规则

  • 数据表   ->  类
  • 表字段   ->  类属性
  • 表数据   ->  对象

mybatis 是一个持久层框架,内部封装了JDBC,开发者只需要关注到SQL语句本身,而不需要花费精力去处理加载驱动,创建连接、创建执行者等复杂的操作

它通过xml或者注解的方式将要执行的各种Statement配置起来,并且通过java对象和Statement中SQL的动态参数进行映射生成最终要执行的SQL语句。 最后执行完SQL会将结果映射为java对象并且返回,对JDBC进行了封装,屏蔽了JDBC API的底层访问细节。

相关API

  • Resources

getResourcesAsStream(String fileName) 通过类加载器返回指定资源的字节输入流

  • SqlSessionFactoryBuilder

获取SqlSessionFactory工厂对象的功能类

build(InputStream is) 通过指定资源字节输入流获取SqlSession工厂对象

  • SqlSessionFactory

获取SqlSession构建对象的工厂接口

openSession()  获取SqlSession构建者对象,并且开启手动提交事务

openSession(boolean autoCommit)  获取SqlSession构建者对象,true开启,false关闭

  • SqlSession

构建者对象接口,用于执行SQL、管理事务,接口代理

  • selectList(String statement,Object paramter) 执行查询语句,返回List
  • selectOne(String statement,Object paramter) 执行查询语句,返回一个结果对象
  • insert(String statement,Object paramter)  执行新增语句 返回影响行数
  • update(String statement,Object paramter)  执行修改语句,返回影响行数
  • delete(String statement,Object parmater)  执行删除语句,返回影响行数
  • commit()  提交事务
  • rollback()  回滚事务
  • getMapper(Class <T> cls)  获取指定接口的代理实现类对象
  • close()  释放资源

下面是一个案例: 

起别名

 然后在对应的映射文件,就可以只写User了

下面是一些系统已经给我们起好的名字

 Mybatis接口代理方式--实现规则

利用接口代理方式,我们可以只用编写接口,又Mybatis框架根据接口的定义来创建该接口的动态代理对象。

实现规则的要求:

  1. 映射配置文件中的名称空间必须和Dao层接口的全类名相同
  2. 映射配置文件中的增删查改标签的id属性必须和Dao层接口的方法名称相同
  3. 映射配置文件中的增删改查标签的parameterType属性必须和Dao层接口方法的参数相同
  4. 映射配置文件中的增删查改标签的resultType属性必须和Dao层接口方法的返回值相同

具体实现:

 

 然后调用这个对象的相应的方法就可以了

动态sql

也就是多条件查询,有时候我们需要变换查询条件,如果参数不同,需要写很多sql语句,为了解决这个问题,所以出现了多条件查询

if 标签

 foreach标签

 SQL片段抽取

我们在写sql语句的时候,通常会写一些重复的语句,为了简化,所以出现了SQL片段抽取。

 多表操作:

  • 一对一

  •  一对多

  •  多对多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/732756.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3---什么是路由缓存问题

使用带有参数的路由时需要注意的是&#xff0c;当用户从 /users/johnny 导航到 /users/jolyne 时&#xff0c;相同的组件实例将被重复使用。因为两个路由都渲染同个组件&#xff0c;比起销毁再创建&#xff0c;复用则显得更加高效。不过&#xff0c;这也意味着组件的生命周期钩…

500万PV的网站需要多少台服务器?

1. 衡量业务量的指标 衡量业务量的指标项有很多&#xff0c;比如&#xff0c;常见Web类应用中的PV、UV、IP。而比较贴近业务的指标项就是大家通常所说的业务用户数。但这个用户数比较笼统&#xff0c;其实和真实访问量有比较大的差距&#xff0c;所以为了更贴近实际业务量及压力…

什么是提示工程?

原文链接&#xff1a;芝士AI吃鱼 理解大规模人工智能模型为何如此行事是一门艺术。即使是最有成就的技术专家也会对大型语言模型 (LLM) 的意想不到的能力感到困惑&#xff0c;大型语言模型是ChatGPT等人工智能聊天机器人的基本构建模块。 因此&#xff0c;提示工程成为生成式 …

特征选择算法 | Matlab 基于最大互信息系数特征选择算法(MIC)的分类数据特征选择

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 特征选择算法 | Matlab 基于最大互信息系数特征选择算法(MIC)的分类数据特征选择 部分源码 %--------------------

python 常用数据结构-列表

list 列表 列表定义与使用列表常用方法列表嵌套列表推导式 列表定义 列表是有序的可变元素的集合&#xff0c;使用中括号[]包围&#xff0c;元素之间用逗号分隔 列表是动态的&#xff0c;可以随时扩展和收缩 列表是异构的&#xff0c;可以同时存放不同类型的对象 列表中允…

阶乘后的零(力扣)数学 JAVA

给定一个整数 n &#xff0c;返回 n! 结果中尾随零的数量。 提示 n! n * (n - 1) * (n - 2) * … * 3 * 2 * 1 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;0 解释&#xff1a;3! 6 &#xff0c;不含尾随 0 示例 2&#xff1a; 输入&#xff1a;n 5 输出&…

WSL2 及 docker开发环境搭建

WSL2 及 docker开发环境搭建 1.使能WSL 控制面板->程序->程序和功能->启动或关闭Windows功能->勾选红框中选项->确认后重启电脑 &#xfeff; 2.下载Linux Kernel Update安装包 下载地址如下&#xff0c; 附件已将下载的安装包作为附件形式上传&#xff0c;…

ITIL 4服务连续性管理实践

一、目的和描述 关键信息 服务连续性管理实践的目的是确保灾难发生时&#xff0c;服务的可用性和性能能够保持在足够的水平。本实践提供了一个框架机制&#xff0c;利用产生有效响应的能力来构建组织的弹性&#xff0c;以保障关键利益相关者的利益&#xff0c;还有组织的声誉…

element 封装dialog弹窗组件鼠标移动到弹窗出现title

问题&#xff1a; element 封装dialog弹窗组件鼠标移动到弹窗出现title 封装的组件 <template><el-dialog title"111"v-bind"$attrs" v-on"$listeners" :visible.sync"show" ></el-dialog> </template><s…

02-webpack的热更新是如何做的,以及原理

一、是什么 HMR 可以理解为模块热替换&#xff0c;指在应用程序运行过程中&#xff0c;替换、添加、删除模块&#xff0c;而无需重新刷新整个应用. 如&#xff0c;我们在应用运行过程中修改了某个模块&#xff0c;通过自动刷新会导致整个应用的整体刷新&#xff0c;那页面中的…

pygame伪3d 实现地面效果

教程来自What is Mode 7? Let’s code it! 油管镜像 import cv2 import pygame import sys from pygame import gfxdraw import numpy as np(width, height) (800, 600) pygame.init() screen pygame.display.set_mode((width, height)) image pygame.image.load("11…

ElasticSearch基础学习(SpringBoot集成ES)

一、概述 什么是ElasticSearch&#xff1f; ElasticSearch&#xff0c;简称为ES&#xff0c; ES是一个开源的高扩展的分布式全文搜索引擎。 它可以近乎实时的存储、检索数据&#xff1b;本身扩展性很好&#xff0c;可以扩展到上百台服务器&#xff0c;处理PB级别的数据。 ES也…

什么是API接口?主要作用是什么?

API英文全称为&#xff1a;Application Programming Interface&#xff0c;中文意思是应用程序编程接口&#xff0c;它是一些预先定义的函数&#xff0c;目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力。 主要作用&#xff1a; API之主要目的是提供应用程…

【笔记】Pycharm配置Node.js运行js代码

最近在学习关于Js逆向的知识&#xff0c;需要在PyCharm中运行Js程序&#xff0c;记录一下配置过程。 安装Node.js Node.js中文网 选择自己电脑对应的安装包下载暗转即可 安装好软件后&#xff0c;配置node.js环境变量。 完成安装和环境配置后&#xff0c;打开cmd测试是否安…

解决 idea 中使用 git 提交显示多余空行

解决 idea 中使用 git 提交显示多余空行 1、问题描述2、解决方法 欢迎访问我的个人博客&#xff1a;https://wk-blog.vip 1、问题描述 在 idea 中使用Git提交代码时&#xff0c;发现不管是对于代码文件还是其他纯文本文件&#xff0c;在保存时总会在文件末尾加上一个空行&…

网络应用基础 TCPIP协议(NETBASE第四课)

网络应用基础 TCPIP协议&#xff08;NETBASE第四课&#xff09; TCP/IP 百度百科 CP/IP&#xff08;Transmission Control Protocol/Internet Protocol&#xff0c;传输控制协议/网际协议&#xff09;是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是T…

【Excel经验】日期时间处理方法

概览-公式汇总 公式功能公式公式说明提取时间中的日期TEXT(A2,“yyyy-mm-dd”)A2列数据格式样例&#xff1a;2023/7/5 6:20:10计算耗时得到单位&#xff1a;秒数VALUE(TEXT(B2-A2,“[ss]”))A2、B2列数据格式样例&#xff1a;2023/7/5 6:20:10计算耗时得到格式化显示年月日B2-…

基础算法-子矩阵的和

1 课堂笔记 2 代码 3.代码解析 #include<iostream> using namespace std; const int maxn1010; int a[maxn][maxn],s[maxn][maxn]; int n,m,q,x1,y1,x2,y2;int main(){scanf("%d%d%d",&n,&m,&q);//为数组赋值for(int i1;i<n;i){for(int j1;j&…

Mycat【Mycat分片规则(按日期(天)分片、全局序列)、Mycat高可用(Mycat高可用概述)】(七)-全面详解(学习总结---从入门到深化)

目录 Mycat分片规则_按日期&#xff08;天&#xff09;分片 Mycat分片规则_全局序列 Mycat高可用_Mycat高可用概述 Mycat分片规则_按日期&#xff08;天&#xff09;分片 实现原理 此规则为按天分片&#xff0c;设定时间格式、范围。 实现过程 创建示例表 #用户信息表 …

Linux时间子系统

转自&#xff1a;深入理解Linux时间子系统(0.7)_城中之城的博客-CSDN博客 一、时间概念解析 我们住在空间里&#xff0c;活在时间中。时间对我们来说是既熟悉又陌生。熟悉是因为我们每天都在时间的驱动下忙碌着&#xff0c;陌生是因为我们从来没有停下来认真思考过时间是什么…