知识复盘(Session、Mysql、Servlet、Jsp、SSM)

news2024/9/22 5:36:09

一、会话跟踪技术(Session Tracking)

1.为什么会出现会话机制?

目前主流的通讯方式就是客户端和服务端之间进行通信,而这种通信是通过Http协议实现的,但Http协议本身是无状态的,所以客户端每发送一次请求到服务器都会被当做一个全新的请求进行处理,就是Web服务器不能识别哪些请求是同一个浏览器发出的,所以就出现了会话机制,会话机制的主要目的就是帮助服务器记住客户端的状态,简单来说就是标记用户,跟踪其状态,这样它就能区分哪些请求是同一个客户端发起的,区分不同客户端发起的请求,把同一个客户端的操作归类在一起。这样就不会出现请求混乱的问题。请求混乱:用生活案例解释就是:你用自己的手机在网上购物,结果应该是你的购物车里塞满东西,但是结果真的是这样吗?显然不是,结果却是张三同学的购物车被塞满了,这是我们想要的结果吗?肯定不是啊!那这样就出现了请求处理混乱的问题,所以会话机制就能够标记用户,跟踪其状态,这样点对点进行请求处理,就不会出现请求处理混乱的问题了。

2.会话的分类

它分为Cookie(客户端会话跟踪)和Session(服务端会话跟踪)。

什么是Cookie?

Cookie是客户端会话跟踪技术,把请求获取到的数据存储到浏览器端,当然这里指的数据是一些相对不是特别重要的数据,因为它是可见的,安全没有得到保障,等到下次客户端访问服务器的时候,会自动携带这个Cookie。对于处理一些安全要求不高的数据是非常方便的。

什么是Session?

Session是服务端会话跟踪技术,将客户端发送请求的数据存储到服务器端,一般用来处理用户信息,记录用户的状态,它对数据的存储相对于是Cookie来说是较安全的,不可见的。

Cookie和Session的区别:

● Cookie存储量是有大小限制的,最大限制3K
● Session存储量无大小限制
● Cookie将数据存储在浏览器端
● Session将数据存储到服务器端
● Cookie可以通过setCookie(int expire) 持久化存储
● Session默认存储30分钟,30分钟后自动销毁。

Cookie的优缺点

优点:
cookie携带数据量小、轻量,对于效率的影响相对较小,不占用服务器资源。
缺点:
数据的安全性不高,侵入性强,信息容易被窃取。

Session的优缺点

优点:
数据的安全性得到了保障。
缺点:
占用服务器资源,Session存储到服务器的数据,会被Tomcat存入磁盘空间中,每次启动Tomcat服务器的时候,都会将此文件重新加载到session中(Session的钝化与活化),但是这样性能就受到了很大的影响,安全的前提是用性能来换取的。

二、Mysql

1.主要索引的有哪些?

● 普通索引
● 主键索引
● 唯一索引
● 全文索引
● 复合索引
● 空间索引

2.索引的作用是什么?

索引最主要的作用就是用来提高查询效率的。我们要给哪些字段创建索引呢?是访问频繁的数据还是访问不频繁的数据,显然是查询频繁的数据了,给查询频繁的数据进行索引创建,在下次访问时直接会去查找它的索引,这样就大大提高了查询效率,那什么是索引呢?是不是很抽象?你可以把索引理解成是一个字典的音序表,这里我用英文字典来比喻,如果你要查单词的话,如何在那么厚的字典中找到你查的单词,如果一页页的查,那么就会大大增加了我们的时间成本,本末倒置了,
所以我们正常的思路是什么?如果我们要查goods这个单词的含义,那么我们是不是第一目标就是找g开头的单词,这样说的话,你就明白了吧,这个创建的索引就是g开头的字母,这样比我们一页页的去找是不是效率更高,时间成本更低。

3.创建索引的三种方式

主键索引不需要我们手动进行创建,我们在给字段id设置primary key的时候就自动创建了主键索引。
1.使用CREATE INDEX创建,语法如下:

CREATE INDEX indexName ON tableName (columnName(length))

 2.使用ALTER语句创建,语法如下:

ALTER TABLE tableName ADD INDEX indexName(columnName)

 ALTER语句创建索引,下面提供一个设置索引长度的例子:

ALTER TABLE stu ADD INDEX name_idx (name(16));

SHOW INDEX FROM stu;

3.建表时创建索引

CREATE TABLE tableName(
    id int NOT NULL,
    columnName columnType,
    INDEX [indexName] (columnName(length))
);

 示例:

CREATE INDEX content_index ON stu (content(100));

 创建普通索引:

CREATE INDEX idx_name ON book(name);

ALTER TABLE book ADD INDEX idx_name(book);

创建唯一索引:

CREATE UNIQUE INDEX card_idx ON person(id_card);

ALTER TABLE person ADD UNIQUE INDEX card_idx(id_card);

 创建空间索引:

CREATE SPATIAL INDEX idx_location ON trip(location);

ALTER TABLE trip ADD SPATIAL INDEX idx_location (location);

创建全文索引:

CREATE FULLTEXT INDEX idx_content ON stu(content);

ALTER TABLE stu ADD FULLTEXT INDEX idx_content(content);

创建组合索引:

CREATE INDEX multi_name ON stu(name,content,intro);

ALTER TABLE stu ADD INDEX multi_name(name,content,intro);

 4.如何查看索引?

show index from tableName;

 5.如何删除索引?

DROP INDEX indexName ON tableName;

ALTER TABLE tableName DROP INDEX indexName;

ALTER TABLE tableName DROP PRIMARY KEY

 6.DQL

select 字段,聚合函数 from tableName 
where condition group by 分组字段 having 过滤条件 
order by 排序 limit 记录数

子查询(多层查询)

比较运算符:!= = > < >= <=
select name,grade from stu where grade > (select grade from stu where name='张三');
in (not in):表示在某一范围
select name,class from stu where id in(select id from stu where class='2班' or class='4班');
any:任一个
select name stu where zy=any(select zy from stu where zy='计算机' or zy='网络');
all:全部
select name from stu where exists(select name from stu where name='李四');

 三、Servlet

1.什么是Servlet?

Servlet(Server Applet)是Java Servlet的简称,它是服务器小程序,即在服务器上运行的小程序,是由Java编写的服务端程序,Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

2.主要功能

Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为:
1.客户端发送请求至服务端
2.服务端将请求信息发送至Servlet
3.Servlet生成响应内容并将其传给服务器,响应内容动态生成,通常取决于客户端的请求
4.服务器将响应返回给客户端

3.生命周期

1.客户端请求该Servlet
2.加载Servlet类到内存
3.实例化并调用init()方法初始化该Servlet
4.service()(根据请求方法不同调用doGet()或者doPost(),此外还有doHead(),doPut(),doDelete(),doTrace(),doOptions()、destroy())。
5.加载和实例化Servlet。这项操作一般是动态执行的。然而,Server通常会提供一个管理的选项,用于在Server启动时强制装载和初始化指定的Servlet。

四、JSP

1.JSP的九大内置对象是什么?

request、response、session、application、out、page、pageContext、config、exception

2.JSP的四大作用域

pageContext、request、session、application

3.JSP的九大内置对象分别对应的四大作用域

request域:request对象
session域:session对象
application域:application对象
pageContext域:response、out、page、pageContext、config、exception对象。

4.JSP九大内置对象的介绍

request对象:

request对象是javax.servlet.httpServletRequest类型的对象,该对象代表了客户端的请求信息,主要用来接收客户端发起的Http协议请求,处理传递到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求,是客户端对服务器发出的请求。客户端的请求信息被封装到request对象中,通过它发送给服务器。它是HttpServletRequest类的实例。

response对象:

response对象是javax.servlet.HttpServletResponse类型的对象,该对象代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。服务器收到客户端请求后做出的响应。它是HttpServletResponse类的实例。作用域为page

Session对象:

session对象是由服务器创建的与用户请求相关的对象,session内部是由Map类来存储数据,
所以存储的方式就是k/v对,它不仅仅局限于简单类型的数据,它还可以存储复杂类型的数据,这也是session的强大之处,服务器为每一个用户创建一个session对象,用来存储该用户的信息,跟踪该用户的状态,是客户端与服务器的一次会话,从客户端连接到服务器的一个Web应用开始,直到客户端与服务器连接断开,会话才会销毁,它是HttpSession类的实例,作用域session(会话期)。

application对象:

application对象可以将客户端向服务器发送请求的数据保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application的生命周期更长,它类似于系统的"全局变量",是不是听起来还是很抽象,那我就举一个例子来表示,先看一个图片:

那么我想表达的是什么呢?就是这个图片上部分是用户变量,下部分是系统变量,那么如果你在用户变量中配合一些东西,类似于jdk等,那么只在你当前登录的Windows用户下有效,那么你切换到另一个用户,你就会发现jdk失效了,但如果你在下部分系统变量中配置jdk的话,那么无论你切换任一个Windows用户,它的jdk都是有效的。这个application对象就相当于我们图片中的系统变量,作用域是最大的,在整个Web应用中都是有效的,用刚才的例子来说,它在整个Windows系统下都是有效的,这样你对application对象的理解是不是更深了一些。接着说它的作用,它实现了用户间数据的共享,可存放全局变量。它始于服务器的启动,止服务器的关闭,这个对象还是挺专一的,这个过程有始有终,在此期间,此对象一直存在,这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作,在任何地方对此用户对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命周期,它是ServletContext类的实例。作用域application。为什么说application对象的作用域是最大的,给大家看一张图片,就一目了然了(自己画的,凑活看吧)

 

out对象:

 out对象用于在浏览器中动态输出web内容,并且管理应用服务器上的输出缓冲区。在使用out对象输出数据时,可以对数据缓冲区进行操作,使用完之后要及时清除缓冲区中残留的数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。避免资源的浪费,以及数据的污染。
out对象是JspWriter类的实例,是向客户端输出内容常用的对象。作用域为page(页面执行期)。

page对象:

page对象就是JSP本身,只有在JSP页面内才是合法的。page隐含对象本质上包含当前Servlet接口引用的变量,类似于Java中的this关键字,指向当前对象。它是java.lang.Object类的实例。"page"对象代表了正在运行的由JSP文件产生的类对象,实质上JSP会被Tomcat服务器编译为servlet字节码文件,本质上还是servlet,但只是以jsp的形式展示给我们了。作用域 page.

pageContext对象:

pageContext对象的作用是获取任何范围的参数,通过它可以获取JSP页面中所有的内置对象,如:out、request、response、session、application等对象。pageContext对象的创建和初始化都是由容器帮我们完成的,在JSP页面中可以直接使用pageContext对象。它提供了对JSP页面内所有的对象以及名称空间的访问,也就是说它可以访问到本页所在的Session,也可以取出本页面所在的application的某一属性值,你可以称它为JSP页面功能的集大成者,它是PageContext的实例。作用域 PageConfig对象。

config对象:

config对象的主要作用是获取服务器的配置信息。通过pageContext对象的getServletConfig()方法可以获取一个config对象。当一个Servlet对象初始化时,容器把某些信息通过config对象传递给这个Servlet。我们可以在web.xml配置文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)。作用域 Page。

exception对象:

exception对象的作用是显示异常信息,可以让我们在JSP页面开发中快速的定位的错误,并进行处理,大大降低了时间成本,它的存在也是非常重要的,需要我们注意的是:只有在包含“isErrorPage=true"的JSP页面中才可以使用,在一般的JSP页面中使用该对象将无法通过JVM编译,exception对象与Java中的所有对象一样,都具有系统提供的继承结构,exception对象几乎涵盖了所有异常情况。在Java程序中,我们可以通过try/catch关键字来处理异常情况,但是在JSP页面中,我们只能通过exception对象来处理异常情况,并且前提是该JSP页面必须包含isErrorPage=true,当出现异常情况,可以将exception对象传递给page指令设定的错误页面中,然后在错误页面中处理相应的 exception对象。它实际上是java.lang.Throwable的对象,作用域 page。

五、SSM(Spring、Spring MVC、Mybatis)框架整合

1.什么是Spring?

Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称为项目中的粘合剂(adhesive)即Spring是一个控制反转(IoC)和面向切面(AOP)的容器框架。

Spring的核心思想就是IoC(控制反转 Inversion of Control),即不需要我们去显示地new一个对象,而是由Spring框架来帮我们完成这一切。为什么叫控制反转呢?那么第一次听是不是很抽象,但是它却是语义化的,就是见名知意,下面我就给大家举例一下,让大家能够更深层次的理解IoC,

看到这个图是不是就会清晰多了,Ioc容器让A、B、C、D对象没有了耦合关系, 通过IoC容器齿轮将它们撮合在一起,起到了一种类似于粘合剂(adhesive)的作用,齿轮转动全部依赖于Ioc这个第三方容器齿轮来维持运转。把这个Ioc第三方容器齿轮拿掉,我们再来看一下这套系统

 我们现在可以看到,我们要实现整个系统所需要完成的全部内容。这时候,A、B、C、D这4个对象之间已经没有了耦合关系,彼此之间毫无联系,那么这时候你再去实现A的时候,根本无需再去考虑B、C、D了,可以说IoC容器将对象之间的依赖关系降到了最低程度。而Spring框架也恰恰是因为IoC容器实现了松耦合。那么你又会说这跟控制反转又什么关系呢?别着急,通过下面的解释,接下来你就会非常的清楚IoC容器了,我再用代码给大家实现一下,通过IoC容器管理和非IoC容器管理的两种情况:
非IoC容器管理情况:
1.持久层

public interface UserDao {
    public void init();
}

public class UserDaoImpl implements UserDao{
    @Override
    public void init() {
        System.out.println("UserDao的实现");
    }
}

2.业务层

public interface UserService {
    public void init();
}

public class UserServiceImpl implements UserService{
    @Override
    public void init() {
        System.out.println("UserServiceImpl的实现");
    }
}

3.测试用例

public class TestDemo {
    public static void main(String[] args) {
        UserService userService = new UserServiceImpl();
        userService.init();
    }
}

 IoC容器管理情况:
1.持久层

public interface UserDao {
    void add();
}

public class UserDaoImpl implements UserDao {

    private String username;
    private String password;

    public void setUsername(String username) {
        this.username = username;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public UserDaoImpl() {
        System.out.println("userDao被创建了");
    }

    @Override
    public void add() {
        System.out.println("userDao ... " + username + " == " + password);
    }
}

2.业务层

public interface UserService {

    public void add();

}

public class UserServiceImpl implements UserService {

    //声明一个UserDao类型的变量
    private UserDao userDao;

    public UserServiceImpl() {
        System.out.println("userService被创建了");
    }

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public void add() {
        System.out.println("userService ...");
        userDao.add();
    }

}

3.控制层

public class UserController {
    public static void main(String[] args) throws Exception {
        //1.创建Spring的容器对象
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        //2.从容器对象中获取userService对象
        UserService userService = context.getBean("userService", UserService.class);
        //3.调用userService方法进行业务逻辑处理
        userService.add();
    }
}

 这样通过上面两种情况的对比,你就明白了什么是IoC控制反转了,由原来我们主动创建对象的方式转变为了由IoC容器注入,IoC的别名又叫做DI(Dependency Injection),就是这个获取依赖对象的过程被反转了,即在使用UserService对象的时候由IoC容器自动帮我们把UserDao进行注入,使用完之后由垃圾回收器进行回收,这就是IoC实现松耦合的原理。

2.Spring框架有哪些主要模块?

Spring有七大功能模块:
1.Core(核心)
Core模块是Spring的核心类库,Core实现了IoC功能。


2.AOP
Spring AOP模块是Spring的AOP库,提供了AOP(拦截器)机制,并提供常见的拦截器,供用户自定义和配置。


3.orm(单应用架构)
提供对常用ORM框架的管理和支持,hibernate、mybatis等。

4.Dao
Spring提供对JDBC的支持,减少了我们连接数据库的一些冗余操作,降低了时间成本,对JDBC进行了封装。

5.Web
对Struts2的支持。

6.Context
Context模块提供框架式的Bean的访问方式,其它程序可以通过Context访问Spring的Bean资源,相当于资源注入。

7.MVC
MVC模块为spring提供了一套轻量级的MVC实现,即Spring MVC。

3.使用Spring框架带来了哪些好处?

1.轻量级框架、容器
Spring是一个容器,管理对象的生命周期和配置,基于一个可配置原型prototype,使得你的bean可以是单例的,也可以每次需要时都生成一个新的实例。

2.IoC控制反转
Spring通过IoC控制反转实现了松耦合。

3.支持AOP
Spring提供对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行集中式(centralization)处理,从而提高程序的复用性。

4.方便测试
Spring提供Junit4的支持,可以通过注解的方式方便测试spring程序。

5.对Java中很多API进行了封装
方便我们进行使用,不需要再去引入一些其它的jar包,降低了我们的时间成本,开箱即用。

6.方便集成(integration)各种优秀框架
如Struts、hibernate、mybatis等。

7.支持声明式事务处理
我们只需要通过配置就可以实现对事务的管理,无需手动进行编程式声明,降低时间成本。

4.Spring Bean的作用域之间有什么区别?

Spring容器中的bean可以分为5个范围:

1.singleton:这种bean范围是默认的,这种范围确保不管接收多少请求,每个容器只有一个bean的实例,即单例模式。

2.prototype:为每一个bean提供一个实例。

3.request:在请求bean范围内为每一个来自客户端的网络请求创建一个实例,在请求完毕后,bean会失效并被垃圾回收器进行回收。

4.session:为每个session创建一个实例,session过期后,bean会随之消失。

5.global-session:global-session和Portlet应用相关。当你的应用部署在Portlet容器中工作时,它包含很多portlet。如果你想要声明让所有的portlet公用全局存储变量的话,那么全局存储变量需要存储在global-session中。

2.什么是Spring MVC?

Spring MVC使用 MVC 架构模式的思想,将Web应用进行职责解耦,它符合单一职责的设计原则,把一个复杂的Web应用划分成模型(Model)、视图(View)、控制器(Controller) 三层,有效的简化了Web应用的开发,降低了时间成本和试错成本,方便了开发人员之间的分工协作。

Spring MVC各层的职责如下:
● Model:负责对请求进行处理,并将结果返回给Controller
● View:负责将请求的处理结果进行渲染,展示在客户端浏览器上
● Controller:是Model和View交互的纽带(bound),主要负责接收用户的请求,并调用Model对请求进行处理,然后将请求的处理结果传递给View进行渲染。

Spring MVC本质上是对Servlet的进一步封装,其最核心的组件是DispatcherServlet,它是 Spring MVC的前端控制器,主要负责对请求和响应进行统一的处理和分发。Controller接收到的请求其实就是DispatcherServlet根据一定的规则分发给它的。

Spring MVC框架内部采用松耦合、可插拔的组件结构,具有高度的可配置性,即扩展性和灵活性更强,Spring MVC的注解驱动annotation-driver和对REST风格的支持,也是它最具有特色的功能。

3.Spring MVC的特点

● Spring MVC是Spring家族的原生产品,可以与IoC容器等Spring基础设施无缝对接
● Spring MVC支持各种视图技术,例如JSP、Thymeleaf、FreeMarker等
● Spring MVC基于原生的Servlet实现,通过功能强大的前端控制器DispatcherServlet,对请求和响应进行统一处理
● 代码更加简洁、规范,大幅度提升了开发效率
● 内部组件化程度高,可插拔式组件即插即用,想要使用什么功能,配置相应的组件即可
● 性能卓著,适合现代大型、超大型互联网项目的开发

3.什么是MyBatis?

MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOS(Plain-Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

Mybatis最强大的特性

Myabtis最强大的特性之一就是支持动态SQL,可以根据业务的不同,编写动态SQL进行处理。
 

Mybatis特点:

● 简单易学:本身就很小且简单。没有任何第三方依赖。
● 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。
● 解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑进行分离,使系统的设计更清晰、更易维护,方便单元测试。sql和程序代码的分离,提高了代码的可维护性。
● 提供映射标签,支持对象与数据库的ORM字段关系映射。
● 提供对象关系映射标签,支持对象关系组建维护。
● 提供xml标签,支持编写动态sql。
 

Mybatis总体流程:

1.加载配置并初始化
2.接收调用请求
3.处理操作请求

Mybatis功能架构:

1.API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操作数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。

2.数据处理层:负责具体的SQL查询、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。

3.基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将它们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。

4.SSM框架的分工协作

Spring

Spring负责事务管理,Spring可以管理持久层(Persistent Object 简称:PO)的Mapper对象以及业务的Service对象,由于Mapper对象和Service对象都在Spring容器中,所以可以在业务逻辑层通过Service对象调用持久层的Mapper对象。

Spring MVC

Spring MVC负责管理表现层的Handler。Sring MVC容器是Spring容器的子容器,因此Spring MVC容器可以调用Spring容器中的Service对象。

Mybatis

Mybatis负责与数据库进行交互。

六、结尾

温故而知新,记得每隔一段时间对学过的知识进行归纳总结,把这些东西放入你的长期记忆区,结合生活案例去理解,你将会更快、更深刻的理解一个知识点,如果你只会用,不会说,那也不行,我们不能成为一个哑式编程开发者,最后送大家一句话,海阔凭鱼跃、天高任鸟飞。希望以上总结的知识点能给你带来帮助。

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

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

相关文章

windows上的Linux系统WSL2

目录 简介 安装 简介 适用于 Linux 的 Windows 子系统 (WSL) 可让开发人员直接在 Windows 上按原样运行 GNU/Linux 环境&#xff08;包括大多数命令行工具、实用工具和应用程序&#xff09;&#xff0c;且不会产生传统虚拟机或双启动设置开销&#xff0c;用于快速的多平台验…

Unity UGUI2——Canvas与EventSystem

一、Canvas ​ Canvas 的意思是画布&#xff0c;它是 UGUI 中所有 UI 元素能够被显示的根本&#xff0c;它主要负责渲染自己的所有 UI 子对象 ​ 如果 UI 控件对象不是 Canvas 的子对象&#xff0c;那么控件将不能被渲染 ​ 我们可以通过修改 Canvas 组件上的参数修改渲染方…

[架构之路-214]- UML-类图图解、详解、结构化、本质化讲解

目录 一、什么是类 1.1 概述 1.2 UML中类的表示 1.3 接口 1.4 抽象类 1.5 模板类 二、什么类图 2.1 概述 2.2 类关系 三、UML类图 3.1 结构关系 3.1.1 完全一体&#xff1a;继承关系 &#xff08;类与类耦合度最高&#xff0c;类与类之间最强的关系&#xff09; …

空天|谈一谈飞机引擎的应急断离

为什么突然想到这个话题呢&#xff1f;归功于即将到来的材料力学考试。在复习科学出版社出版的苟文选、王安强等编写的《材料力学&#xff08;1&#xff09;》第三版第三章的连接键强度校核等内容时&#xff0c;一个例题吸引了我的注意力。 例3-4&#xff1a; 水平力Fg。 强而…

理论实战源码齐飞!架构师社区疯传的SpringSecurity进阶小册真香

安全管理是Java应用开发中无法避免的问题&#xff0c;随着Spring Boot和微服务的流行&#xff0c;Spring Security受到越来越多Java开发者的重视&#xff0c;究其原因,还是沾了微服务的光。作为Spring家族中的一员,其在和Spring家族中的其他产品如SpringBoot、Spring Cloud等进…

Unity UGUI3——三大基础控件

一、Image ​ Image 是图像组件&#xff0c;是 UGUI 中用于显示精灵图片的关键组件 ​ 除了背景图等大图&#xff0c;一般都使用 Image 来显示 UI 中的图片元素 &#xff08;一&#xff09;参数介绍 Source Image&#xff1a;图片来源 图片类型必须是“精灵 Sprite”类型 Col…

IBM N系列存储和NetApp FAS之间的对应关系

IBM在很长一段时间都是OEM NetApp的FAS存储作为他的NAS产品线&#xff0c;在IBM叫做Storage N series&#xff0c;就是N系列&#xff0c;在2014年IBM终止了和NetApp之间的OEM关系&#xff0c;目前在市场上的OEM的NetApp存储型号主要是 FAS3000&#xff0c;FAS31和FAS32的中端系…

HTB靶场:简单inject

HTB靶场&#xff1a;简单inject 1、进入靶场&#xff0c;连接vpn后开启靶机 inject 2、nmap扫描一下靶机 nmap -v -A 10.10.11.*扫描后显示服务和端口信息8080和22 3、打开web服务 1&#xff09;有上传文件功能 简单上传了几个文件&#xff08;txt,img等 上传过程根据参数简…

SpringBoot 实现 PDF 添加水印有哪些方案?

简介 PDF&#xff08;Portable Document Format&#xff0c;便携式文档格式&#xff09;是一种流行的文件格式&#xff0c;它可以在多个操作系统和应用程序中进行查看和打印。在某些情况下&#xff0c;我们需要对 PDF 文件添加水印&#xff0c;以使其更具有辨识度或者保护其版…

全国青少年软件编程(Scratch)等级考试二级考试真题2023年5月——持续更新.....

一、单选题(共25题,共50分) 1.运行下列哪段程序,可以让狗狗走到木屋门口?() A. B. C. D. 标准答案:C 2.下列哪个选项可以控制:按下左键扫帚向左旋转15度,按下右键扫帚向右旋转15度?() A. B. C.

LLM系列 | 09: 基于ChatGPT构建智能客服系统(query分类安全审核防注入)

简介 竹斋眠听雨&#xff0c;梦里长青苔。门寂山相对&#xff0c;身闲鸟不猜。小伙伴们好&#xff0c;我是卖热干面的小女孩。紧接前面几篇ChatGPT Prompt工程系列文章&#xff1a; 04:ChatGPT Prompt编写指南05:如何优化ChatGPT Prompt&#xff1f;06:ChatGPT Prompt实践&am…

如何安装MySQL数据库

目录 什么是MySQL数据库 第一步 安装依赖环境 第二步 创建MySQL相关进程用户 第三步 导入MySQL相关包 第四步 解包到指定目录下 第五步 切换到MySQL目录下编译安装 第六步 编译 第七步 更改指定文件的所有者和所属组 第八步 进入指定配置文件清空内容 第九步 配置指定…

软件测试复习题

一、填空题 软件从“出生”到“消亡”的过程称为___。早期的线性开发模型称为_______开发模型。引入风险分析的开发模型为_______开发模型。ISO 9126-1991标准提出的质量模型包括_______和________和________和______和_______和_______6大特性。按照缺陷的严重程度可以将缺陷…

如何做Web测试?测试者必知的常见测试点总结

目录 一、Web应用程序 二、功能测试 三、易用性测试(界面测试)整体界面测试 四、茶客性测试 五、安全性测试安全性测试要求: 六、性能测试 总结&#xff1a; 如何做Web测试?以下为大家比较全面地总结一下Web测试的票点 一、Web应用程序 应用程序有两种模式&#xff0c…

article-五轴机械臂正逆分析(标准法)VQ

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A2CiIK0R-1687071926271)(data:image/svgxml;utf8, )] 五轴机械臂正逆解仿真 标准的D-H参数法 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PbUOp13D-1687071926272)(da…

设计模式-策略工厂

在介绍策略工厂的实现前&#xff0c;我们要先了解spring中beanFactory&#xff1a; BeanFactory 作为IOC服务的提供者&#xff0c;通过XmlBeanFactory来得到实例 生产Bean的工厂&#xff0c;采用延迟初始化策略&#xff08;只有在需要某个对象时&#xff0c;才进行初始化和依…

网络安全如何从零基础到精通?

在看这篇文章之前&#xff0c;有个问题想确认一下&#xff0c;你现在自学网络安全是出于兴趣原因&#xff0c;还是说之后准备走网络安全这个方向&#xff1f; 因为目的不同&#xff0c;学习的方式和深度也会不一样。 今天我就围绕职业发展这个方向来和你聊聊。 如果你真的想通过…

全国青少年软件编程(Scratch)等级考试一级考试真题2023年5月——持续更新.....

一、单选题(共25题&#xff0c;共50分) 1.看图找规律&#xff0c;请问下图红框中是&#xff1f;&#xff08; &#xff09; A. B. C. D. 标准答案&#xff1a;D 试题解析&#xff1a;通过观察每种图形有两个&#xff0c;所以选择D 2.用一根绳子绕树一圈余30厘米&#x…

小说推文洗稿的工作流程

牙叔教程 简单易懂 第一步 找到十万赞以上的爆款视频 自己刷呗, 多刷一些, 最好是那种粉丝几万到几十万的作者, 点赞数量在万赞以上的作品, 十万赞就更好啦 第二步 提取视频的文案 我们分享视频的时候, 有一个复制链接的按钮, 然后把链接复制到 逗哥配音 , 就可以把文案提取…

【QQ界面展示-通知的发布2 Objective-C语言】

一、我再把这个通知的发布与监听给大家复习一下, 1.我们发布和监听通知, 1)第一,需要一个对象,通知的发布者 2)第二,需要一个对象,通知的监听者 只有它俩,还不够,一个是通知的发布者、一个是通知的监听者, 只有它俩,根本不够, 你要想进行通知的发布、和监听,…