Java EE

JavaWeb开发笔记

半世苍凉 提交于 2020-10-04 10:34:18
JSP9大内置对象(不需要new,可以直接用) pageContext JSP页面容器 request 请求对象 response 响应对象 session 响应对象 application 全局对象 config 配置对象(服务器配置信息) out 输出对象 page 当前JSP页面对象(相当于java中的this) exception 异常对象 application 全局对象 ——String getContextPath() 虚拟路径 ——String getRealPath(“虚拟路径”) 绝对路径(虚拟路径 相对的绝对路径) (内置对象不包括cookie) 四大范围对象 pageContext JSP页面容器 当前页面有效,页面跳转后无效 request 请求对象 同一次请求有效,请求转发可以拿到(服务器内部进行),重定向拿不到(返回客户端,客户端重新请求) session 会话对象 同一次会话有效(无论怎么跳转,都有效 ,关闭切换浏览器后无效) application全局对象 全局有效,整个项目运行期间都有效(关闭服务和其他项目无效) 尽量使用最小的范围,因为对象的范围越大,造成的性能损失越大 以上四个对象共有的方法: Object getAttribute(String name):根据属性名,获取属性值 void setAttribute(String name

面试官的最爱问的“分布式”核心设计问题,没掌握的不妨来看看

ε祈祈猫儿з 提交于 2020-10-04 10:28:15
现在什么技术最火? 大数据、人工智能、区块链、边缘计算、微服务 ,但是这么多前沿技术的底层全部依赖于分布式。 分布式的核心:拆 微服务和分布式的区别 分布式:不管是横向拆分还是纵向拆分,拆了就行 微服务:纵向拆分(根据业务逻辑拆分,电商:用户、支付、购物……)、最小化拆分 横向拆分:jsp/servlet , service,dao 在不同层面的拆分,纵向拆分:根据业务逻辑拆成独立的小项目 CAP理论 任何一个分布式系统 都必须重点考虑的原则。 C:一致性(强一致性):所有子节点中的数据 时刻保持一致 A:可用性:整体能用 P:分区容错性 :允许部分失败 CAP理论: 在任何分布式系统中,C\A\P不可能共存,只能存在两个。 基础知识: 一般而言,至少要保证P可行,因为分布式 经常会出现 弱网环境。因此 就需要在C和A之间二选一。 举个例子: 当计算机A故障,分区容错性满足,如果一致性满足,那必须回滚,否则计算机B有数据,A没有,这样就不满足数据一致性。 BASE理论 BASE理论的目的: 为了弥补CAP的不足。 要理解的概念: 强一致性(时时刻刻一致、短时间内一致) 最终一致性(只要最后一致即可) 软状态: 多个节点时,允许中间某个时刻数据不一致。 尽最大努力 近似的实现 CAP三者:最终一致性 代替强一致性C BASE理论:首选满足A\P, 因此不能满足C。但是可以用

java面试题及答案(基础题122道,代码题19道)

限于喜欢 提交于 2020-10-04 06:06:38
JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 2、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 java.lang.String类是final类型的

springBoot增加聚合项目

断了今生、忘了曾经 提交于 2020-10-04 04:03:34
1、新建父级maven项目springboot,删除多余部分,保留pom.xml文件,增加文件内容添加依赖jar包 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.cn.zmc</groupId> <artifactId>springboot</artifactId> <version>1.0-SNAPSHOT</version> <modules> <module>common</module> <module>auth</module> </modules> <packaging>pom</packaging> <properties> <java.version>1.8</java.version> <junit.version>4.10<

SMM高级整合实战项目—-增删改查(快速搭建一个J2EE项目)

扶醉桌前 提交于 2020-10-04 03:56:13
置顶:抱歉之前没有上传数据库文件,重新补上 项目源码下载: https://download.csdn.net/download/qq_36102598/11141098 数据库下载: https://pan.baidu.com/s/1rfyADXxjkwHsr9cC7yKLiw 提取码:8bhx 视频学习地址: https://study.163.com/course/courseMain.htm?courseId=1003862031 功能点: 分页 数据校验(前端校验+JSR303后端校验) Ajax Rest风格的URI;使用HTTP协议请求方式的动词,来表示对资源的操作(GET(查询),POST(新增),PUT(修改),DELETE(删除)) 技术点: 基础框架-SSM(SpringMVC+Spring+MyBatis) 数据库Mysql 前端框架-bootstrap快速搭建简洁美观的界面 项目依赖管理-Maven 分页-pagehelper 逆向工程-MyBatis Generator 知识点总结: 项目截图: 来源: oschina 链接: https://my.oschina.net/u/4292686/blog/4482114

Spring Boot 2.x基础教程:事务管理入门

允我心安 提交于 2020-10-04 02:41:41
什么是事务? 我们在开发企业应用时,通常业务人员的一个操作实际上是对数据库读写的多步操作的结合。由于数据操作在顺序执行的过程中,任何一步操作都有可能发生异常,异常会导致后续操作无法完成,此时由于业务逻辑并未正确的完成,之前成功操作的数据并不可靠,如果要让这个业务正确的执行下去,通常有实现方式: 记录失败的位置,问题修复之后,从上一次执行失败的位置开始继续执行后面要做的业务逻辑 在执行失败的时候,回退本次执行的所有过程,让操作恢复到原始状态,带问题修复之后,重新执行原来的业务逻辑 事务就是针对上述方式2的实现。事务,一般是指要做的或所做的事情,就是上面所说的业务人员的一个操作(比如电商系统中,一个创建订单的操作包含了创建订单、商品库存的扣减两个基本操作。如果创建订单成功,库存扣减失败,那么就会出现商品超卖的问题,所以最基本的最发就是需要为这两个操作用事务包括起来,保证这两个操作要么都成功,要么都失败)。 这样的场景在实际开发过程中非常多,所以今天就来一起学习一下Spring Boot中的事务管理如何使用! 快速入门 在Spring Boot中,当我们使用了 spring-boot-starter-jdbc 或 spring-boot-starter-data-jpa 依赖的时候

Tomcat--配置

冷暖自知 提交于 2020-10-04 01:58:11
Tomcat--配置 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 web服务器软件 下载和启动这里就不多说了,之前有过博客的 配置 部署项目的方式 直接将项目放到webapps目录下即可。 直接部署:项目的访问路径-->虚拟目录(把html页面放入其中) 简化部署:将项目打成一个war包,再将war包放置到webapps目录下。 war包会自动解压缩 配置conf/server.xml文件 在<Host>标签体中配置 <Context docBase="D:\hello" path="/hehe" /> docBase:项目存放的路径 path:虚拟目录 在conf\Catalina\localhost创建任意名称的xml文件。在文件中编写 <Context docBase="D:\hello" /> 虚拟目录:xml文件的名称 静态项目和动态项目 目录结构 java动态项目的目录结构: 项目的根目录 WEB-INF目录: web.xml:web项目的核心配置文件 classes目录:放置字节码文件的目录 lib目录:放置依赖的jar包 感谢 黑马程序员 万能的网络 以及勤劳的自己 来源: oschina 链接: https://my.oschina.net/guizimo/blog/4318293

软件概要设计-模板

岁酱吖の 提交于 2020-10-03 20:04:45
1 引言 1.1 编写目的 本说明书目的在于明确说明系统各功能的实现方式,指导开发员进行编码。 本说明书的预期读者为:系统设计者、系统开发员。 1.2 背景 待开发软件系统的名称:物流配送管理系统 此软件系统任务提出者:客户(从事物流业) 此软件系统任务开发者: IT_MOB小组 此软件系统任务用户:需要提供配送的客户、配送点和物流总公司 1.3 基线 物流配送管理系统需求分析说明书 v1.0 1.4 特殊名词定义 客户:客户分为已达成交易的实际客户和未交易的潜在客户,本文档涉及到的所有客户都是已注册并登陆客户端的用户。 1.5 参考资料 属于本项目的其他已发表的文件。 本文件中引用的其他文献、资料以及软件开发标准。 2 总体设计 2.1 概述 2.2 系统环境描述 系统包括的范围:物流配送管理系统。 2.2.1 运行环境 2.2.1.1 软件环境 分类 名称 版本 语种 操作系统 Windows XP 2000 简体中文 操作系统的附加功能 SP4 3 简体中文 数据库平台 oracle 92 简体中文 应用平台 tomcat 5.0 简体中文 邮件系统 Foxmail 4.2.0 简体中文 客户端软件 MS IE 7.0 简体中文 2.2.1.2 硬件环境 服务器 最低配置 推荐配置 应用和数据库服务器 1CPU : P4 2.0G 1CPU : P4 2.8G Mem :

Java学习路线:day22 枚举类与注解

好久不见. 提交于 2020-10-03 18:55:19
目录 第10章枚举类与注解 枚举类的使用 枚举类的理解 自定义枚举类 使用enum关键字定义枚举类 Enum类中的常用方法 使用enum关键字定义的枚举类实现接口 注解的使用 注解的理解 Annotation的使用示例 如何自定义注解 jdk中4个基本的元注解的使用1 jdk中4个基本的元注解的使用2 利用反射获取注解信息 jdk8新特性:可重复注解 jdk8新特性:类型注解 全部源码: https://github.com/name365/JavaSE-30Day 第10章枚举类与注解 枚举类的使用 枚举类的理解 类的对象只有有限个,确定的。举例如下: 星期:Monday(星期一)、......、Sunday(星期天) 性别:Man(男)、Woman(女) 季节:Spring(春节)......Winter(冬天) 支付方式:Cash(现金)、WeChatPay(微信)、Alipay(支付宝)、BankCard(银行卡)、CreditCard(信用卡) 就职状态:Busy、Free、Vocation、Dimission 订单状态:Nonpayment(未付款)、Paid(已付款)、Delivered(已发货)、Return(退货)、Checked(已确认)Fulfilled(已配货)、 线程状态:创建、就绪、运行、阻塞、死亡 当需要定义一组常量时,强烈建议使用枚举类 枚举类的实现

前后端分离理解

依然范特西╮ 提交于 2020-10-03 10:01:25
历史渊源 借Jsp来举例,jsp就是一个典型的前后端耦合在一起的典型的计数案例 这种模式在以前互联网不那么繁荣,web化趋势还不是那么明显的年代发挥着巨大的作用, 但是随着社会技术的不断加深,各种各样的服务都web化以后,其实很多前端展示的东西都变得复杂起来了,jsp这种模板技术就没办法去高效的开发了,其本质原因还是因为前端那个时候没有工程化、模块化和可复用化的思维来做。开发必然会出现各种各样的不协调, 还有一些效率低和扯皮的问题,所以从公司项目管理的角度来看,解决这个问题的办法就是解耦,在软件领域中各种复杂的问题高内聚低耦合这种原则几乎都能见效。所以前端也需要工程化、项目化的思维来做。 做法 可以采用前后端分离的开发模式,前后端程序猿只需要提前约定好接口文档(参数、数据类型),然后并行开发即可,最后完成前后端集成,遇到问题同步修改即可,真正实现了前后端应用的解耦合,可以极大地提升开发效率。说直白点前后端分离就是把原来的一个应用,拆分成两个应用,一个纯前端应用,专门负责数据展示和用户交互,一个纯后端应用,专门负责提供数据处理接口,前端 HTML 页面通过 Ajax 调用后端 RESTful API 接口进行数据交互。 这么说不形象,通过下面这两张图带你了解前后端分离和传统单体应用的区别,单体应用的结构是这样的。 前后端分离是这样的: 如图所示,前后端分离就是将一个应用拆成两个