自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 收藏
  • 关注

转载 软件测试笔记-统一测试数据平台

目录一、测试数据准备1.0时代二、测试数据准备的2.0时代三、测试数据准备的3.0时代一、测试数据准备1.0时代将测试数据准备的相关操作封装成数据准备函数缺点:参数非常多,非常复杂如果参数是对象就更复杂了绝大多数的测试数据准备场景是,你仅仅需要一个所有参数都使用了缺省值的测试数据,或者只对个别几个参数由明确的要求,而其他参数都可以是缺省值的测试数据createXXXUser缺点:对于参数比较多的情况,会面临需要封装的函数数量很多的尴尬底层Impl函数参数改变,修改所有封装函

2021-08-01 15:04:49 432

转载 软件测试比较-测试数据的痛点

目录一、On-the-fly(实时创建)二、Out-of-box(事先创建数据)开箱即用方法三、综合运用On-the-fly和Out-of-box耗时长事先批量生成的数据可能会成为脏数据微服务架构,测试环境不稳定,阻碍测试数据的顺利创建一、On-the-fly(实时创建)测试用例自己维护数据,保证数据的准备性和可控性,避免“脏”数据的可能优点:准确性可控性缺点:耗时长测试数据本省复杂的关联性创建使用的业务数据要先创建一堆其他相关联的数据,可以考虑将相对稳定的数据事先

2021-08-01 13:06:39 406

转载 软件测试比较-如何准备测试数据

目录一、基于GUI操作生成测试数据二、通过API调用生成测试数据三、通过数据库操作生成测试数据四、综合运用一、基于GUI操作生成测试数据优点: 简单直接,没有任何复杂性,创建的数据来自与真实的业务流程,最大程度保证数据的正确性。缺点:效率非常低一次创建一条数据执行过程耗时(GUI)不适合封装成测试数据工具创建成功的概率不会太高受限GUI自动化执行的稳定性界面变更—》失败引入不必要的测试依赖补充:基于此,找到后端调用的API,修改了数据库的哪些业务表二、通过AP

2021-08-01 12:43:19 207

转载 软件测试笔记-需要掌握非测试知识?

目录一、网站架构的核心知识二、容器技术三、云计算技术四、DevOps思维五、前端开发工具优秀的测试工程师应该具备宽广的知识面,设计出有的放矢的测试用例,保证整个软件产品的质量开发工程师是“深度遍历”,测试工程师是“广度遍历”操作系统,数据库,中间件,脚本开发,版本管理工具与策略,CI/CD流水线设计,F5负载均衡技术,抓包工具,浏览器Developer Tool大到网站架构,容器技术,微服务架构,服务网格,DevOps,云计算,大数据,人工智能和区块链技术等一、网站架构的核心知识如果想要做

2021-07-21 23:31:50 88

转载 软件测试笔记-核心竞争力?

目录一、简单描述下二、传统测试工程师1.测试策略设计能力2.测试用例设计能力3.快速学习能力4.探索性测试思维5.缺陷分析能力6.自动化测试技术7.良好的沟通能力三、测试开发工程师1.测试系统需求分析能力2.更宽广的知识体系应该做什么?应该怎么做?一、简单描述下测试 人员必须深入理解业务,但是业务知识不能等同于测试能力-测试开发 核心其实是“测试”,“开发”的目的是更好地服务于测试二、传统测试工程师1.测试策略设计能力对于各种不同的被测软件,能够快速准确地理解需求,有限的时间和资

2021-07-21 20:01:59 75

转载 软件测试笔记-如何做好测试计划

目录一、没有测试计划会怎么样?二、测试范围三、测试策略1.功能测试2.兼容性测试1.如何确定这些?2.实施3.测试用例的选取3.性能测试四、测试资源五、测试进度六、预测风险预估敏捷开发,测试计划从原来的一次性集中制定测试计划-----迭代的方式持续制定计划一、没有测试计划会怎么样?难以知道具体的测试范围,具体的测试策略2.难以预估具体的工程量和所需的测试工程师数量,分工不明确3.整体进度不可控4.对潜在风险的抵抗能力弱好的测试计划: 测试范围、测试策略、测试资源、测试进度和测试风险评估二

2021-07-21 18:29:50 150

转载 软件测试笔记-如何高效填写软件缺陷报告

目录一、缺陷标题二、缺陷概述三、缺陷影响四、环境配置五、前置条件六、缺陷重现步骤七、期望结果和实际结果八、优先级和严重程度九、变通方案十、根原因分析(Root Cause Analysis)十一、附件(Attachment)缺陷报告是测试工程师与开发工程师交流沟通的重要桥梁,也是测试工程师日常工作的重要输出。缺陷报告本身的质量将直接关系到缺陷被修复的速度以及开发工程师的效率,同时还会影响测试工程师的信用、测试与开发人员协作的有效性好的缺陷报告不是大量信息的堆叠,而是以高效的方式提供准确有用的信息

2021-07-20 20:41:34 282

转载 软件测试笔记-你真的懂测试覆盖率吗?

目录一、需求覆盖率二、代码覆盖率三、代码覆盖率的价值四、代码覆盖率的局限性五、代码覆盖率工具六、代码覆盖率工具的实现原理1.ASM1.On-The-Fly注入模式2. offline注入模式测试覆盖率–衡量测试的充分性和完整性广义 1.需求覆盖率 2.代码覆盖率一、需求覆盖率对需求的覆盖程度(一对多)通常用ALM Doors和TestLink等工具建立两者之间的关系互联网项目很少直接测试需求覆盖率 将软件需求转换成测试需求,-----》测试点二、代码覆盖率至少执

2021-07-20 19:35:57 403

转载 软件测试笔记-自动化测试技术大全

目录一、单元测试自动化技术1.单元测试自动化内涵二、代码级集成测试的自动化技术(很复杂,几乎不用了,现在代码强调解耦)三、Web Service测试自动化技术1.API自动化测试三步骤2.Web Service测试“自动化”四、GUI测试的自动化技术软件研发生命周期各个阶段都有自动化一、单元测试自动化技术1.单元测试自动化内涵框架代码生成自动化测试数据的自动化生成桩代码自动生成被测代码自动化静态分析测试覆盖率的自动统计与分析二、代码级集成测试的自动化技术(很复杂,几乎不用了,现在代码强

2021-07-19 22:43:17 335

转载 学习笔记-为什么要做自动化测试?什么样的项目适合做自动化测试?

目录一、什么是自动化测试?二、为什么要自动化测试?三、坑四、什么样的项目适合自动化测试?一、什么是自动化测试?写一段代码去测试另一段代码,需要大量的时间和精力,维护成本大维护成本高于节省成本,失去了价值与意义,取舍吧二、为什么要自动化测试?取代重复工作提升回归测试的效率 适合敏捷开发过程非工作时间测试 工作时间分析(累死个人)高并发高持续性测试一致性可重复性三、坑不是所有测试适合自动化脆弱,维护成本高执行次数高于5(经验之谈)次,才能收回成本手工测试发现缺陷往往更多依赖测

2021-07-19 22:12:23 77

转载 什么是单元测试?

目录一、什么是单元测试二、如何做好单元测试1.代码的基本特征与产生错误的原因2.单元测试用例详解输入数据输出数据3.驱动代码 桩代码 和 Mock代码驱动代码(Driver)指调用被测函数的代码桩代码(Stub)是用来代替真实代码的临时代码Mock代码三、实际项目中如何开展单元测试四、难点什么是单元测试?如何做好单元测试?一、什么是单元测试电子元器件 软件中的单元 通常是函数或者类 对单个元器件的测试 单元测试组装完成的功能电路板 软件中的模板 对电路板的测试 软件集成测试电视机

2021-07-18 22:17:06 124

原创 红黑树笔记

目录一、定义二、调整策略三、插入调整(当前树是整颗树的一部分----向上回溯调整)1.情况一2.情况二四、个人理解一、定义每个节点非黑即红根节点是黑色叶节点(NIL)是黑色如果一个节点是红色,则它的两个子节点都是黑色的从根节点出发到所有叶节点路径上,黑色节点数量相同二、调整策略插入调整站在祖父节点看 儿子和孙子之间的冲突 我来解决删除调整站在父节点看插入和删除的情况处理一共五种三、插入调整(当前树是整颗树的一部分----向上回溯调整)注意:整棵树的根节点的颜色最后一定是黑色

2021-07-18 16:48:37 62

原创 软件测试基础-(如何设计一个好的测试用例)

目录一、什么才算是"好的"测试用例二、“好的”测试用例必须具备哪些特征1.等价类划分2.边界值分析方法3.错误推测方法三、如何才能设计出“好的”测试用例四、经验之谈一、什么才算是"好的"测试用例"好的"测试用例一定是一个完备的集合 它能够覆盖所有等价类以及各种边界值 而跟能否发现缺陷无关把被测软件看作一个池塘 软件缺陷是池塘中的鱼 建立测试用例集的过程就像是在编织一张捕鱼网只要池塘里有鱼 这个大渔网就一定能把鱼给捞上来如果渔网本身是完整的且合格的 那么捞不到鱼 就证明池塘中没有鱼 而渔网的好坏与

2021-07-18 13:27:30 247

原创 软件测试笔记-(登录功能的测试)

目录基础概念功能性测试用例安全性测试用例性能压力测试用例包括兼容性测试用例包括补充需求合理性测试--用户场景测试--分享基础概念等价类划分所有可能的数据划分成若干子集,每个子集中的任意数据对于揭露程序中潜在的错误都具有同等效果,那么这样的子集就构成了一个等价类。边界值分析方法选取输入、输出的边界值进行测试。大量错误通常发生在输出、输出范围的边界上,选正好等于、刚刚大于或刚刚小于边界的值作为测试数据。功能性测试用例输入已注册的用户名和正确的密码,验证是否登录成功。已注册用户名和不正确的密

2021-07-17 23:14:29 1574 11

原创 Spring Boot(Spring Boot缓存管理)

Spring Boot缓存管理6.1 Spring Boot 默认缓存管理6.1.2 Spring Boot 默认缓存体验6.2 Spring Boot 缓存注解介绍1.@EnableCaching注解2.@Cacheable注解3.@CachePut 注解4.@CacheEvict 注解5.@Caching 注解6.CacheConfig6.3 Spring Boot 整合Redis 缓存实现6.3.1 Spring Boot 支持的缓存组件6.3.2 基于注解的Redis缓存实现6.3.3 基于API的

2021-07-01 23:02:59 371 1

原创 Spring Boot(Spring Boot实现Web的常用功能)

Spring Boot实现Web的常用功能5.1 Spring MVC的整合支持5.1.1 Spring MVC 自动配置介绍5.1.2 Spring MVC功能扩展实现环境搭建功能扩展实现5.2 Spring Boot 整合Servlet三大组件5.2.1 组件注册整合Servlet三大组件。5.2.2 路径扫描整合Servlet三大组件5.3 文件上传与下载5.3.1 文件的上传5.3.2 文件下载5.4 Spring Boot 应用的打包与部署5.4.1 Jar包方式打包部署5.4.2 War包方式打

2021-06-30 20:48:44 743 1

原创 Spring Boot(Spring Boot视图技术)

第四章、Spring Boot视图技术4.1 Spring Boot支持的视图技术小提示4.2 Thymeleaf 基本语法4.2.1 常用标签小提示4.2.2 标准表达式1.变量表达式2.选择变量表达式3.消息表达式4.链接表达式5.片段表达式4.3 Thymeleaf 基本使用4.3.1 Thymeleaf模板基本配置4.3.2 静态资源的访问4.4 配置国际化页面1.编写国际化文件2.编写配置文件3.定制区域信息解析器在一个Web应用中,通常会采用MVC设计模式实现对应的模型、视图、和控制器,其中,

2021-06-30 15:58:47 355

原创 Spring Boot(Spring Boot 数据访问)

SpringBoot数据访问3.2 SpringBoot 整合MyBatis3.2.2 使用注解的方式整合 MyBatis3.2.3 使用配置文件的方式整合MyBatis3.3 Spring Boot 整合JPA3.3.1 Spring Data JPA 介绍JPA的Resitory接口方法的需要注意问题3.4 Spring Boot 整合 Redis3.4.1 Redis介绍开启redis服务可视化管理工具redis的整合使用Spring Data 是Spring提供的一个用于简化数据库访问,支持云服务

2021-06-30 00:18:12 182 4

原创 SpringBoot(Spring Boot的核心配置与注解)

第二章、Spring Boot的核心配置与注解2.1 全局配置文件2.1.1 application.properties2.1.2 application.yaml 配置文件2.2 配置文件属性值的注入使用@ConfigurationProperties注入属性使用@Value注入属性对比分析2.3 Spring Boot 自定义配置2.3.1 使用 @PropertySource加载配置文件2.3.2 使用 @ImportResource 加载了XML配置文件2.3.3 使用@Configuration

2021-06-29 19:49:36 303 1

原创 Spring Boot(开发入门)

第一章、Spring Boot开发入门1.1 Spring Boot 概述1.2 Spring Boot 的优点1.4 Spring Boot 原理分析1.41 Spring Boot 依赖管理spring-boot-starter-parentspring-boot-starter-web1.42 Spring Boot 自动配置@SpringBootConfigurationSpring Boot设计初衷是为了简化Spring配置,从而让用户可以轻松构建独立运行的程序,极大地提高开发效率。1.1 S

2021-06-29 15:45:10 271

原创 SSM(拦截器)

第十五章、拦截器15.1 拦截器概述15.1.1 拦截器的定义15.1.2 拦截器的配置15.2 拦截器的执行流程15.3 多拦截器执行流程15.1 拦截器概述Spring MVC的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),主要用于拦截用户请求并做相应的处理。15.1.1 拦截器的定义实现HanderInterceptor接口 继承HandlerInterceptor接口实现类(HandlerInterceptorAdaptor)实现WebReque

2021-06-28 11:40:00 301

原创 SSM(JSON数据交互和RESTful支持)

第十四章、JSON数据交互和RESTful支持14.1 JSON 数据交互14.1.1 JSON 概述14.1.2 JSON数据转换14.2 RESTful支持14.1 JSON 数据交互JSON相对于XML解析速度快,占用空间更小。14.1.1 JSON 概述JSON(JavaScript Object Notation JS对象标记) 轻量级数据交换格式,基于JS的一个子集,使用了C、C++、C#、Java、JavaScript、Perl、Python等其他语言的约定,完全独立于编程语言的文本格

2021-06-28 11:16:03 307 1

原创 SSM(数据绑定)

第十三章、数据绑定13.1 数据绑定介绍13.1 数据绑定介绍Spring MVC根据客户端请求参数的不同,将请求消息中的信息以一定的方式转换并绑定到控制器类的方法参数中。这种将请求消息数据和后台方法参数建立连接的过程就是Spring MVC中的数据绑定。数据绑定过程中,Spring MVC框架会通过数据绑定组件(DataBinder)将请求参数串的内容进行类型转换,然后将转换后的值赋给控制器中方法的形参,这样后台...

2021-06-28 10:25:45 390

原创 SSM(Spring MVC的核心类和注解)

第十二章、Spring MVC的核心类和注解12.1 DispacherServlet12.2 Controller注解类型12.3 RequestMapping 注解类型@RequestMapping注解的属性组合注解请求处理方法的参数类型请求处理方法的返回值类型12.4 视图解析器12.1 DispacherServlet如果元素的值为1,则在应用程序启动时会立即加载该Servlet。如果元素不存在,则应用程序会在第一个Servlet请求时加载该Servlet.如果元素存在并且通过其子元素配置了S

2021-06-27 21:56:05 320

原创 SSM(Spring MVC 入门)

第十一章、Spring MVC入门11.1 Spring MVC 概述11.2 第一个Spring MVC应用11.3 Spring MVC 的工作流程11.1 Spring MVC 概述Spring MVC 是Spring提供的一个实现了Web MVC 设计模式的轻量级Web框架。它与Struts2框架一样,都属于MVC框架。Spring框架的一部分,可以方便地利用Spring所提供的其他功能。灵活性强,易于与其他框架集成。提供了一个前端控制器DispatcherServlet,使开发人员无须

2021-06-27 20:40:29 49

原创 SSM(MyBatis的关联映射)

TOC针对多表之间的操作,MyBatis提供了关联映射,通过关联映射就可以很好地处理对象与对象之间的关联关系。9.1 关联关系概述一对一任意一方引入对方主键作为外键类中定义对方类型的对象一对多在多的一方,添加一的一方的主键作为外键一的类中以集合的方式引入B类类型对象,多的类定义A类属性多对多产生中间关系表,引入两张表的主键作为外键,两个主键称为联合主键或者使用新的字段作为主键。双方都定义对方类型的集合9.2 一对一<association>子元素...

2021-06-27 18:13:32 170

原创 SSM(动态SQL)

第八章、动态SQL动态SQL中的元素JDBC或者其他类似的框架进行数据库开发,通常都要根据需求手动拼装SQL,MyBatis提供的对SQL语句动态组装的功能,恰能很好地解决这一麻烦工作。动态SQL中的元素元素说明<if>判断语句,用于但条件分支判断<choose> (<when><otherwise>)相当于switch case default<where> <trim><set>

2021-06-27 16:43:36 302

原创 SSM(MyBatis的核心配置)

第七章、MyBatis的核心配置7.1 MyBatis的核心对象7.1.1 SqlSessionFactory7.1.2 SqlSession7.2 配置文件7.2.1主要元素7.3 映射文件7.1 MyBatis的核心对象在使用Mybatis框架时,主要涉及两个核心对象: SqlSessionFactory 和 SqlSession7.1.1 SqlSessionFactorySqlSessionFactory是MyBatis框架中十分重要的对象,单个数据库映射关系经过编译后的内存镜像,主要作用是

2021-06-27 15:03:06 243

原创 SSM(初识Mybatis)

第六章、初识Mybatis6.1 什么是Mybatis主流ORM框架区别6.2MyB atis的工作原理6.3 示例代码Mybatis是主流的Java持久层框架,与Hibernate一样,也是一种ORM框架。其性能优异,具有高度的灵活性、可优化性和易于维护等特点。6.1 什么是MybatisMybatis(前身是iBatis)是一个支持普通SQL查询、存储过程以及高级映射的持久层框架、它消除了几乎所有的JDBC代码和参数的手动设置以及对结果集的检索,使用简单的XML或注解进行配置和原始映射,用以将接口

2021-06-27 11:05:13 125

原创 SSM(Spring的事物管理)

第五章、Spring的事物管理5.1 Spring 事物管理概述5.1.1 事物管理的核心接口PlatformTransactionManagerTransactionDefinitionTransactionStatus5.1.2 事务的管理方式5.2 声明式事务管理5.2.1 基于XML方式的声明式事务5.2.2 基于Annotation方式的声明式事务5.1 Spring 事物管理概述5.1.1 事物管理的核心接口Spring事物管理所涉及的3个核心接口PlatformTransactionM

2021-06-27 01:23:44 111

原创 SSM(Spring的数据库开发)

第四章、Spring的数据库开发4.1 Spring JDBC4.1.1 Spring JdbcTemplate的解析JdbcAccessor提供的属性4.1.2 Spring JDBC的配置Spring JdbcTemplate的常用方法4.2.1 execute(String sql)4.2.2 update()4.2.3query()4.1 Spring JDBCSpring的JDBC模块负责数据库资源管理和错误处理。4.1.1 Spring JdbcTemplate的解析针对数据库的操作,S

2021-06-26 22:53:47 123

原创 SSM(Spring AOP)

第三章、String AOP3.1 String AOP简介3.1.1什么是AOP3.1.2 AOP术语3.2 动态代理3.21 JDK动态代理3.22 CGLIB代理3.3 基于代理类的AOP实现3.3.1 Spring的通知类型3.3.2 ProxyFactoryBean3.4 AspectJ 开发3.4.1 基于XML的声明式AspectJ配置切面配置切入点配置通知3.4.2 基于注解的声明式AspectJ3.1 String AOP简介3.1.1什么是AOPAOP的全程是Aspect-Orie

2021-06-26 21:34:35 188

原创 SSM(Spring中的Bean)

第二章、Spring中的Bean2.1 Bean的配置2.2 Bean的实例化构造器实例化静态工厂实例化实例工厂方式实例化2.3 Bean的作用域Bean的生命周期执行流程2.4 Bean的装配方式2.41 基于XML的装配设值注入构造器注入2.42 基于Annotation(注解)的装配2.1 Bean的配置Spring中,XML配置文件的根元素是 , 中包含了多个子元素,每一个子元素定义了一个Bean,并描述了该Bean如何被装配到Spring容器中。属性或子元素名称描述id

2021-06-26 18:16:08 533

原创 SSM(概述)

第一章、Spring概述1.1 Spring概述1.1.1 什么是Spring1.1.2 框架的优点1.13 Spring的体系结构1.Core Container(核心容器)2. Data Access/Integration(数据访问/集成)3.Web4.其他模块1.2 Spring的核心容器1.21 BeanFactory1.22 ApplicationContext小提示1.3 依赖注入1.3.1 依赖注入的概念1.3.2依赖注入的实现方式1.1 Spring概述1.1.1 什么是Spring

2021-06-26 16:51:48 517

原创 JavaWeb(文件的上传和下载)

文件的上传和下载第十二章、文件的上传和下载12.1 文件的上传文件上传APIFileItem接口DiskFileItemFactoryServletFileUpload12.3 文件下载第十二章、文件的上传和下载12.1 文件的上传文件上传总共分两步Web页面中添加上传输入项在Servlet中读取上传文件的数据 <form enctype="multipart/form-data" method="post"> <input type="file" name="myFil

2021-06-25 21:28:59 71

原创 JavaWeb(JSP开发模型)

JSP开发模型第十一章、JSP开发模型11.1 JSP开发模型JSP Model1JSP Model211.2 MVC设计模式JSP技术有两种开发模型可供选择,通常我们称为JSP Model1 和 JSP Model2第十一章、JSP开发模型11.1 JSP开发模型JSP的开发模型就是JSP Model ,在Web开发中,为了更方便地使用JSP技术,SUN公司为JSP技术提供了两种开发模型:JSP Model1 和 JSP Model2。JSP Model1 简单轻便,适合小型Web项目的快速开

2021-06-25 20:09:58 277

原创 JavaWeb(数据库连接池与DBUtils工具)

数据库连接池与DBUtils工具第十章、数据库连接池与DBUtils工具10.1 数据库连接池10.2 DBUtils 工具QueryRunnner类 - 类似于mybatis映射ResultSetHander接口第十章、数据库连接池与DBUtils工具每操作一次数据库,都会执行一次创建和断开Connnection对象的操作,这种频繁的操作Connection对象十分影响数据库的访问效率,并且增加了代码量,所以实际开发中,开发人员通常会使用数据库连接池来解决这些问题。Apache组织还提供一个DBUti

2021-06-25 18:27:39 165

原创 JavaWeb(Servlet高级)

Servlet高级第八章 、Servlet高级8.1 Filter 过滤器什么是FilterFilter映射Filter链FilterConfig接口8.2 Listener 监听器-Servlet事件监听器第八章 、Servlet高级Filter和Listener是Servlet规范中的两个高级特性,它们不用于处理客户端的请求。Filter对象用于对request、response对象进行修改,Listener用于对context、session、request对象进行监听。善用这两个高级特性能够轻

2021-06-25 17:42:26 131

原创 JavaWeb(EL表达式和JSTL)

EL表达式和JSTL第七章 EL表达式和JSTL7.1 初识JavaBean概述BeanUtils工具7.2 EL表达式EL中标识符正斜杠EL中的关键字EL中的变量常量EL中的运算符比较运算符逻辑运算符empty运算符条件运算符“()”运算符优先级EL隐式对象7.3 JSTL什么是JSTLCore标签库第七章 EL表达式和JSTL数据和功能重复使用,便于移植,Sun公司提出“JavaBean技术”,使用JavaBean技术可以对这些数据和功能进行封装,做到一次编写,到处运行。为了降低JSP页面的复杂度

2021-06-25 12:13:38 118

原创 JavaWeb(JSP技术)

JSP技术第六章、JSP技术6.1 JSP概述6.2 JSP运行原理源码6.3 JSP基本用法6.4 JSP指令page指令include指令6.5 JSP隐式对象< jsp:inlcude >< jsp:forward >第六章、JSP技术6.1 JSP概述JSP文件中,HTML代码与Java代码共同存在,HTML代码用来实现网页中静态内容的显示,Java代码用来实现网页中动态内容的显示。跨平台jsp基于Java语言的,它可以使用Java API,所以它也是跨平台的(同

2021-06-24 22:29:19 330

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除