Java EE

ssm+PageHelper实现分页查询

梦想与她 提交于 2020-07-24 22:32:05
通过搭建ssm框架,然后通过mybatis的分页插件pagehelp进行分页查询。 源码:https://gitee.com/smfx1314/pagehelper 看一下项目结构: 首先创建一个maven工程,pom中引入相关jar包 < dependencies > < dependency > < groupId > org.springframework </ groupId > < artifactId > spring-core </ artifactId > < version > 4.3.2.RELEASE </ version > </ dependency > < dependency > < groupId > org.springframework </ groupId > < artifactId > spring-aop </ artifactId > < version > 4.3.2.RELEASE </ version > </ dependency > < dependency > < groupId > org.springframework </ groupId > < artifactId > spring-aspects </ artifactId > < version > 4.3.2.RELEASE </ version > </

这份书单,想要晋级高级Java工程师的朋友值得一看!

时光毁灭记忆、已成空白 提交于 2020-07-24 18:44:39
点击蓝色“程序员书单”关注我哟 加个“星标”,每天带你读好书! ​ 经过了10多年的发展,Java Web从开发框架到社区都已经非常成熟,很多程序员都可以通过使用框架很快速地搭建起一个Java Web应用,特别是近几年SpringBoot大热,干脆连配置都不需要了解了,直接一键式编译部署运行,让Java工程师的入门成本变得越来越低。 但于此同时,互联网公司对于Java的应用场景也在不断地升级换代,从单机部署再到分布式,从SOA再到微服务,Java后端技术栈变得更加庞大,对于工程师的要求也越来越高,特别是对于大公司来说更是如此,也正因为如此,对Java工程师的考察已经不限于Java Web的那套东西了,企业往往会提出更高的要求,比如需要你能够熟练使用设计模式,了解Java并发编程和JVM调优,甚至是了解分布式技术、微服务以及中间件等等。 今天的这份书单并不针对某一种技术,而是想介绍一些一些Java进阶方面的书籍,其中包括Java的一些编码规范,代码最佳实践,以及调优指南,另外还介绍了一些Java编程的黑科技,比如Java异步编程,相信这些书籍对你的Java进阶学习会有所帮助。 Java进阶系列书单 ​ 阿里巴巴Java开发手册 《阿里巴巴Java开发手册》的愿景是码出高效,码出质量。它结合作者的开发经验和架构历程,提炼阿里巴巴集团技术团队的集体编程经验和软件设计智慧

什么是WebService

江枫思渺然 提交于 2020-07-24 17:49:40
一句话概括什么是WebService   WebService是一种跨编程语言、跨操作系统平台的远程调用技术。 远程调用技术:远程调用是指一台设备上的程序A可以调用另一台设备上的方法B。比如:银联提供给商场的pos刷卡系统,商场的pos机转账调用的转账方法的代码其实是跑在银行服务器上的。再比如,amazon,天气预报系统,淘宝网,校内网,百度等把自己的系统服务以WebService服务的形式暴露出来,让第三方网站和程序可以调用这些服务功能,这样扩展了自己系统的市场占有率。 跨编程语言:是指服务端、客户端程序的编程语言可以不同 跨操作系统平台:是指服务端、客户端可在不同的操作系统上运行 从表面上看,WebService是指一个应用程序向外界暴露了一个能通过Web调用的API接口,我们把调用这个WebService的应用程序称作客户端,把提供这个WebService的应用程序称作服务端。 从深层上看,WebService是建立可互操作的分布式应用程序的新平台,是一个平台,是一套标准。它定义了应用程序如何通过Web实现互操作性,通过WebService标准对服务进行查询和访问。 如何实现WebService 1. 远程调用   远程调用的过程是这样的,先从客户端和服务端的角度考虑,客户端向服务端发送服务请求,服务端接收请求并处理,再向客户端回复请求,客户端接收回复。接着

loadrunner 运行脚本-Run-time Settings之Miscellaneous设置

笑着哭i 提交于 2020-07-24 16:08:58
作用说明 提供混杂设置, 如 错误处理,多线程,自动化事务设置等 注意:仅对指定协议有效 Error Handling Continue on Error 开启后, 在 VuGen 中,如脚本中某个函数出错会导致整个脚本的停止运行,但是在场景中会继续运行 。缺省不开启 Fail open transactions on lr_error_message 当事务中出现 lr_error_message 函数时, 将会设置该函数所在的事务状态为 Fail 。 Generate Snapshot on Error 当错误发生时,生成快照 snapshot , 但是会大大降低负载效率 。可以通过查看 Vuser 日志并双击错误发生的日志行查看快照。 不推荐在负载测试中开启 Continue on Error 和 Generate Snapshot on Error 选项。这个配置可能有害的影响 Vusers 的性能 . Multithreading Run Vuser as a process 以进程方式运行 Vuser, 不开启多线程。 在场景中使用 mmdrv.exe 的进程方式来模拟虚拟用户,每一个虚拟用户都会使用一个 mmdrv.exe 进程 Run Vuser as a thread 以线程的方式运行 Vuser 。开启多线程, 所有的虚拟用户都会使用 mmdrv.exe

Tomcat Filter之动态注入

爷,独闯天下 提交于 2020-07-24 15:20:32
前言 最近,看到好多不错的关于“无文件Webshell”的文章,对其中利用上下文动态的注入 Filter 的技术做了一下简单验证,写一下测试总结,不依赖任何框架,仅想学习一下tomcat的filter。 先放几篇大佬的文章: Tomcat中一种半通用回显方法 tomcat结合shiro无文件webshell的技术研究以及检测方法 Tomcat通用回显学习 基于全局储存的新思路 | Tomcat的一种通用回显方法研究 threedr3am/ysoserial Filter介绍 详细介绍略,简单记录一下我的理解: 过滤器(Filter):用来对指定的URL进行过滤处理,类似 .net core 里的中间件,例如登录验证过滤器可以用来限制资源的未授权访问; 过滤链(FilterChain):通过URL匹配动态将所有符合URL规则的过滤器共同组成一个过滤链,顺序有先后,类似 .net core 的管道,不过区别在于过滤链是单向的,管道是双向; 同Servlet,一般Filter的配置方式: web.xml @WebFilter修饰 Filter注册调用流程 新建一个登录验证的Filter: SessionFilter.java package com.reinject.MyFilter; import java.io.IOException; import javax.servlet

聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路

岁酱吖の 提交于 2020-07-24 08:45:16
引言         很尴尬的是,这个类型的文章其实之前笔者就写过,原文章里,笔者自称LZ(也就是楼主,有人说是老子的简写,笔者只想说,这位同学你站出来,保证不打死你,-_-),原文章名称叫做 《回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议》 ,首发于笔者的博客园博客,这里也郑重声明一下,所有内容类似文章均属转载或抄袭。      之前看过的朋友可能会有疑问,为什么要再次捡起这篇文章,还把称谓改成了笔者这么高端的词汇。      简单的解释一下,原因有三个,第一个原因,是说不得的原因,请各位看官自行YY。第二个原因,是两年过去了,笔者在阿里也呆了700+天的时间,所以对这篇文章,又有了一些新的理解和想法,想回过头来,再完善一下。最后一个原因,是因为最近笔者经常刷某音,根据玩某音的经验,发两次会火,哈哈,-_-。      所以,这篇文章,可以说是之前那篇文章的进阶版,为了方便大家观看,本文会引入很多原文章的内容,避免没看过上一篇文章的同学,还需要回过头去翻看。(好吧,我承认是为了偷懒,-_-) 阿里社招面试都问什么?            和之前一样,文章一上来,我们先来谈谈阿里的社招面试都问什么,其实这个话题并不是什么秘密,所有来阿里面试过的同学,都能回答一二。   两年前的时候,笔者在文章里是这么回答的。   这个是让LZ最头疼的一个问题

Servlet的Cookie技术

丶灬走出姿态 提交于 2020-07-24 03:37:50
目录 点睛 Cookie关键点说明 实战 点睛 1 会话 用户打开一个浏览器,点击了很多超链接,访问了多个web资源,关闭浏览器,这个过程可以称之为会话。 2 有状态会话 举个例子,一个同学来过教室,下次再来教室,我们会知道这个同学,曾经来过,称之为有状态会话。 3 一个网站,怎样证明你来过? 服务端给客户端一个信件,客户端下次访问服务端带上信件就可以了,这个信件就是cookie。 服务端登记你来过了,下次你来的时候我来匹配你,这个登记就是session。 4 保存会话的两种技术 cookie:客户端技术,通过响应,请求来实现。 session:服务端技术,利用这个技术,可以保存用户的会话信息。我们可以把信息或者数据放在Session中。 5 常见场景 网站登录之后,你下次不用再登录了,第二次访问直接就上去了。 6 session和cookie的理解 session被称为会话,不同于TCP/IP协议,HTTP协议是一种无状态的协议,也就是说,当一个客户端向服务器发出请求,服务器接收请求,并返回响应,这样一来一回之后,这个连接就结束了,服务器并不保存任何相关信息。 为了弥补这个缺陷,HTTP协议提出了session的概念。通过session,在Web页面进行跳转时,可以保存用户的状态信息,比如,在购物网站的不同商品页面跳转时,网站并不会让用户重复登录,因为用户的会话一致保存着

上传大型视频文件到服务器,解决方案

落花浮王杯 提交于 2020-05-09 20:43:15
第一点:Java代码实现文件上传 FormFile file = manform.getFile(); String newfileName = null; String newpathname = null; String fileAddre = "/numUp"; try { InputStream stream = file.getInputStream();// 把文件读入 String filePath = request.getRealPath(fileAddre);//取系统当前路径 File file1 = new File(filePath);//添加了自动创建目录的功能 ((File)file1).mkdir(); newfileName = System.currentTimeMillis() + file.getFileName().substring( file.getFileName().lastIndexOf('.')); ByteArrayOutputStream baos = new ByteArrayOutputStream(); OutputStream bos = new FileOutputStream(filePath + "/" + newfileName); newpathname = filePath + "/" +

【黑马旅游网】项目完结+未完成功能实现+个人总结+bug记录

情到浓时终转凉″ 提交于 2020-05-09 20:36:53
目录 一、项目配置问题 1、【maven项目目录结构】 2、【修改目录属性】 3、【设置web源目录】 4、【maven低版本和servlet3.0冲突】 5、【控制台输出乱码解决】 二、前台代码 1、【发送异步请求】 2、【校验手机号格式】 3、【校验邮箱格式】 4、【失去焦点事件】 5、【前后端交互】 6、【html的onclick()事件】 7、【jackson】 8、【checkbox】 9、【获取url中拼接的参数】 三、工具类的使用 四、路径分发思想 五、数据库问题 1、【连接问题】 2、【mysql语句】 3、【缓存优化】 五、个人对项目一些细微不足的优化 1、【Alibaba Java Coding Guidelines】 2、【抽取了验证码校验功能】 3、【关于listnull和list.size()0】 六、实现未完成的功能 1、【加载完成时,让大图成为第一张】 2、【增加验证码为空的信息,并且刷新验证码】 3、【增加我的收藏及分页功能】 4、【增加了自动登录功能】 5、【增加了热门推荐功能】 6、【增加了首页三大种类旅游路线的显示功能】 7、【增加了收藏排行榜展示分页以及查询功能】 8、【一点小bug】 七、个人反思 八、后续补充 算是经历了整整四天吧,前两天听课跟着视频敲。后两天自己手动完成剩余的其他若干功能,一路debug过来,收获许多,在此记录

十分钟入门RocketMQ

耗尽温柔 提交于 2020-05-09 20:31:09
本文首先引出消息中间件通常需要解决哪些问题,在解决这些问题当中会遇到什么困难,Apache RocketMQ作为阿里开源的一款高性能、高吞吐量的分布式消息中间件否可以解决,规范中如何定义这些问题。然后本文将介绍RocketMQ的架构设计,以期让读者快速了解RocketMQ。 消息中间件需要解决哪些问题? Publish/Subscribe 发布订阅是消息中间件的最基本功能,也是相对于传统RPC通信而言。在此不再详述。 Message Priority 规范中描述的优先级是指在一个消息队列中,每条消息都有不同的优先级,一般用整数来描述,优先级高的消息先投递,如果消息完全在一个内存队列中,那么在投递前可以按照优先级排序,令优先级高的先投递。 由于RocketMQ所有消息都是持久化的,所以如果按照优先级来排序,开销会非常大,因此RocketMQ没有特意支持消息优先级,但是可以通过变通的方式实现类似功能,即单独配置一个优先级高的队列,和一个普通优先级的队列, 将不同优先级发送到不同队列即可。 对于优先级问题,可以归纳为2类: 只要达到优先级目的即可,不是严格意义上的优先级,通常将优先级划分为高、中、低,或者再多几个级别。每个优先级可以用不同的topic表示,发消息时,指定不同的topic来表示优先级,这种方式可以解决绝大部分的优先级问题,但是对业务的优先级精确性做了妥协。 严格的优先级