Java EE

Spring MVC【入门】就这一篇

笑着哭i 提交于 2020-07-27 01:30:55
MVC 设计概述 在早期 Java Web 的开发中,统一把显示层、控制层、数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1: 出现的弊端: JSP 和 Java Bean 之间严重耦合,Java 代码和 HTML 代码也耦合在了一起 要求开发者不仅要掌握 Java ,还要有高超的前端水平 前端和后端相互依赖,前端需要等待后端完成,后端也依赖前端完成,才能进行有效的测试 代码难以复用 正因为上面的种种弊端,所以很快这种方式就被 Servlet + JSP + Java Bean 所替代了,早期的 MVC 模型 (Model2) 就像下图这样: 首先用户的请求会到达 Servlet,然后根据请求调用相应的 Java Bean,并把所有的显示结果交给 JSP 去完成,这样的模式我们就称为 MVC 模式。 M 代表 模型(Model) 模型是什么呢? 模型就是数据,就是 dao,bean V 代表 视图(View) 视图是什么呢? 就是网页, JSP,用来展示模型中的数据 C 代表 控制器(controller) 控制器是什么? 控制器的作用就是把不同的数据(Model),显示在不同的视图(View)上,Servlet 扮演的就是这样的角色。 扩展阅读: Web开发模式 Spring MVC 的架构 为解决持久层中一直未处理好的数据库事务的编程

使用 ZoomEye 寻找 APT 攻击的蛛丝马迹

℡╲_俬逩灬. 提交于 2020-07-27 01:24:35
作者:Heige(a.k.a Superhei) of KnownSec 404 Team 时间:2020年5月25日 英文链接: https://paper.seebug.org/1220/ 今年一月发布的ZoomEye 2020里上线了ZoomEye的历史数据查询API接口,这个历史数据接口还是非常有价值的,这里就介绍我这几天做的一些尝试追踪APT的几个案例。 在开始之前首先你需要了解ZoomEye历史api接口的使用,参考文档: https://www.zoomeye.org/doc#history-ip-search 这里可以使用的是ZoomEye SDK https://github.com/knownsec/ZoomEye 另外需要强调说明下的是: ZoomEye线上的数据是覆盖更新的模式, 也就是说第2次扫描如果没有扫描到数据就不会覆盖更新数据,ZoomEye上的数据会保留第1次扫描获取到的banner数据,这个机制在这种恶意攻击溯源里其实有着很好的场景契合点:恶意攻击比如Botnet、APT等攻击使用的下载服务器被发现后一般都是直接停用抛弃,当然也有一些是被黑的目标,也是很暴力的直接下线!所以很多的攻击现场很可能就被ZoomEye线上缓存。 当然在ZoomEye历史api里提供的数据,不管你覆盖不覆盖都可以查询出每次扫描得到的banner数据

【47】kotlin 与java的互相调用

回眸只為那壹抹淺笑 提交于 2020-07-26 23:43:05
Get/Set Kotlin自动识别java的Getter/Setter Java操作kt属性通过Getter/Setter 空安全类型 Kotlin 空安全类型的原理 java 中没有 平台类型Platform Type @Nullable 和@NotNull 几类函数的调用 kt:包级函数:静态方法 扩展方法:带Receiver的静态方法 运算符重载:带Receiver的对应名称的静态方法 几个常用注解的使用 @JvmField:将属性编译为java变量 @JvmStatic:将对象的方法编译成Java静态方法 @JvmOverloads:默认参数生成重载方法 @file:JvmName:指定Kotlin文件编译后的类名 NoArg 与AllOpen NoArg为标注的类生成无参构造 -支持 Jpa注解,如@Entity AllOpen为标注的类 去掉final,允许被继承 -支持Spriing注解,如@Component 支持定义注解类型,列入@Poke 泛型 通配符Kotlin的 [*]对应于java的[?] 协变和逆变 out/in -ArrayList<out String> 没有Raw类型 -Java的List->Kotlin 的List<*> 来源: oschina 链接: https://my.oschina.net/u/4365009/blog/4319982

Servlet 简介

╄→尐↘猪︶ㄣ 提交于 2020-07-26 23:42:37
Servlet 简介 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 简介 Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。 Servlet的位置 Servlet的工作 读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。 读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。 处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。 发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。 发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。 感谢 菜鸟教程 万能的网络 以及勤劳的自己 关注公众号: 归子莫,获取更多的资料,还有更长的学习计划

java书籍推荐[转]

心不动则不痛 提交于 2020-07-26 23:26:16
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。下面就按照学习顺序,给大家推荐下面这些JAVA书籍。 一、Java编程入门类,选择大于努力,入门太重要。 对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞枣不求甚解”,先对 Java熟悉起来再说。用很短的时间快速过一遍Java语法,连懵带猜多写写代码,要“知其然”。 1.《JAVA编程思想》在有了一定的Java编程经验之后,你需要“知其所以然”了。这个时候《Java编程思想》是一本让你知其所以然的好书,它 对于基本的面向对象知识有比较清楚的交待,对Java基本语法,基本类库有比较清楚的讲解,可以帮你打一个良好的Java编程基础。这本书的缺点是实在太 厚,也比较罗嗦,不适合现代人快节奏学习,因此看这本书要懂得取舍,不是每章每节都值得一看的,挑重点的深入看就可以了。推荐一个java群,名字是java从入门到精通,第一组是二二零,第二组是一四二,第三组是九零六,里面有大量视频资料,欢迎java爱好者加入学习。 2.《Agile Java》中文版,这本书一大特点是以单元测试和TDD来贯穿全书的,在教你Java各种重要的基础知识的 过程中,潜移默化的影响你的编程思维走向敏捷,走向TDD。另外这本书成书很新

spring mvc原理分析

混江龙づ霸主 提交于 2020-07-26 23:25:29
SpringMVC的运行流程 1、用户发送请求至前端控制器DispatcherServlet 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器 5、执行处理器(Controller,也叫后端控制器)。 6、Controller执行完成返回ModelAndView 7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet 8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器 9、ViewReslover解析后返回具体View 10、DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。 11、DispatcherServlet响应用户。 Servlet 生命周期 :Servlet 加载—>实例化—>服务—>销毁。 init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象

SpringMVC中如何获取请求参数总结整理【重点】

北战南征 提交于 2020-07-26 23:21:29
一. 简述&案例:获取简单的请求参数 之前WEB核心的获取参数方法: 针对性获取:request.getParameter() (能用,不建议,被替换) 获取整个表单数据,封装到JavaBean:toBean() (不能用了) 代码实现 Demo 1Controller 类: @Controller @RequestMapping ( "/d1" ) public class Demo1Controller { @RequestMapping ( "/run3" ) public String run3( @RequestParam (name= "pageNum" ) Integer pageNum, @RequestParam (name= "id" ) String id, @RequestParam (name= "money" ) Double money, @RequestParam (name= "flag" ) Boolean flag){ // RequestParam注解用来替代 request.getParamter() // RequestParam注解帮我们进行了自动强转 System. out .println(pageNum); System. out .println(id); System. out .println(money); System.

SpringMVC中如何获取请求参数总结整理【重点】

 ̄綄美尐妖づ 提交于 2020-07-26 23:10:45
一. 简述&案例:获取简单的请求参数 之前WEB核心的获取参数方法: 针对性获取:request.getParameter() (能用,不建议,被替换) 获取整个表单数据,封装到JavaBean:toBean() (不能用了) 代码实现 Demo 1Controller 类: @Controller @RequestMapping ( "/d1" ) public class Demo1Controller { @RequestMapping ( "/run3" ) public String run3( @RequestParam (name= "pageNum" ) Integer pageNum, @RequestParam (name= "id" ) String id, @RequestParam (name= "money" ) Double money, @RequestParam (name= "flag" ) Boolean flag){ // RequestParam注解用来替代 request.getParamter() // RequestParam注解帮我们进行了自动强转 System. out .println(pageNum); System. out .println(id); System. out .println(money); System.

JSP+Servlet+JDBC+mysql实现的个人日记本系统

那年仲夏 提交于 2020-07-26 22:19:17
项目简介 项目来源于: https://gitee.com/wishwzp/Diary 本系统基于 JSP+Servlet+Mysql 一个基于JSP+Servlet+Jdbc的个人日记本系统。涉及技术少,易于理解,适合 JavaWeb初学者 学习使用。 难度等级:入门 技术栈 编辑器 Eclipse Version: 2019-12 (4.14.0) 前端技术 基础:html+css+JavaScript 框架: JQuery + BootStrap 后端技术 Jsp+Servlet 数据库:mysql 5.7.27(个人测试使用) jdk版本:1.8.0_181(个人测试使用) tomcat版本:8.5.34(个人测试使用) 本地运行 Eclipse环境准备 1. eclipse新增jdk 2. eclipse新增tomcat 导入项目 若有疑惑可查看 视频版本 。 1.下载zip直接解压或安装git后执行克隆命令 git clone https://gitee.com/wishwzp/Diary.git 2.使用eclipse导入项目,配置jdk、tomcat和所需jar包。 项目所依赖jar包在 WebContent/WEB-INF/lib 文件夹下。 3.打开Navicat For Mysql,运行 WebContent/mysql/db_diary.sql 。 4.修改

Spring Boot【快速入门】

天大地大妈咪最大 提交于 2020-07-26 16:29:46
Spring Boot 概述 Build Anything with Spring Boot: Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and running as quickly as possible, with minimal upfront configuration of Spring. 上面是引自官网的一段话,大概是说: Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。 什么是 Spring Boot 它使用 “习惯优于配置” (项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须)的理念让你的项目快速运行起来。 它并不是什么新的框架,而是默认配置了很多框架的使用方式,就像 Maven 整合了所有的 jar 包一样,Spring Boot 整合了所有框架(引自: springboot(一):入门篇——纯洁的微笑 ) 使用 Spring Boot 有什么好处 回顾我们之前的 SSM 项目,搭建过程还是比较繁琐的,需要: 1)配置 web.xml,加载