- 博客(127)
- 资源 (1)
- 收藏
- 关注
转载 Tomcat组成与工作原理
原文:https://juejin.im/post/58eb5fdda0bb9f00692a78fcTomcat是什么开源的 Java Web 应用服务器,实现了 Java EE(Java Platform Enterprise Edition)的部 分技术规范,比如 Java Servlet、Java Server Page、JSTL、Java WebSocket...
2018-12-20 15:17:16 779
转载 第一章 Shiro简介——《跟我学Shiro》
1.1 简介Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。对于它俩到底哪个好,这个不必纠结,能更简单的解决项目问题就好了。本教程只介绍基本的Shiro使...
2018-12-18 15:11:28 275
转载 YUM工作原理及使用
YUM(Yellowdog Updater Modified):是一个基于RPM的软件包管理器,能够从指定服务器自动下载RPM包并且安装,可以处理软件之间的依赖关系,一次性安装所有依赖的软件包,无需一个个下载安装。原理包括YUM服务器和客户端两个部分: YUM服务器 Linux客户端 流程 yum的设置文件配置文件所在目录:/etc/yum.repos.d# vim...
2018-12-17 08:49:37 2778
转载 请求转发和重定向
视图解析器 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/view/"/> <property name="suffix"
2018-12-14 09:53:19 406
转载 面试题之JavaScript 的全局变量与局部变量
先看一道面试题问:如下代码结果是?<script type="text/javascript"> var a = 100 ; function test() { alert(a) ; var a = 10 ; alert(a) ; } test() ; alert(a) ;</script>大家猜结果等于多少?是弹出顺序...
2018-12-14 09:49:37 2413
转载 Spring MVC 学习总结(四)——校验与文件上传
Spring MVC不仅是在架构上改变了项目,使代码变得可复用、可维护与可扩展,其实在功能上也加强了不少。 验证与文件上传是许多项目中不可缺少的一部分。在项目中验证非常重要,首先是安全性考虑,如防止注入攻击,XSS等;其次还可以确保数据的完整性,如输入的格式,内容,长度,大小等。Spring MVC可以使用验证器Validator与JSR303完成后台验证功能。一、JSR303验证器JSR...
2018-12-11 00:54:05 400
原创 Spring MVC 学习总结(三)——请求处理方法Action详解
Spring MVC中每个控制器中可以定义多个请求处理方法,我们把这种请求处理方法简称为Action,每个请求处理方法可以有多个不同的参数,以及一个多种类型的返回结果。一、Action参数类型1.1、自动参数映射1.1.1、基本数据类型方法的参数可以是任意基本数据类型,如果方法参数名与http中请求的参数名称相同时会进行自动映射,视图user目录下的index.jsp与示例代码...
2018-12-08 21:33:16 1388
原创 Spring MVC 学习总结(二)——@RequestMapping详解
@RequestMapping详解@RequestMapping注释用于映射url到控制器类或一个特定的处理程序方法。可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。该注解共有8个属性,注解源码如下:package org.springframework.web.bind.annotation;import java.lang.annotation.D...
2018-12-07 23:31:25 422
原创 Spring MVC 学习总结(一)——MVC概要与环境配置
一、MVC概要MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范,用一种将业务逻辑、数据、显示分离的方法组织代码,MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。在web早期的开发中,通常采用的都是Model1。Model1中,如图所示主要分为两层,视图层和模型...
2018-12-06 22:37:46 2220
原创 Spring学习总结(三) ——Spring整合MyBatis (Maven+MySQL)
一、 使用Maven创建一个Web项目使用Maven创建web项目在此不做赘述了。二、使用MyBatis完成MySQL数据库访问2.1、添加依赖要完成使用MyBatis访问MySQL数据库,需要添加一些依赖包,包含MyBatis3,连接驱动,JUnit,Log4j2等。可以去共享资源库中搜索,第一个网站地址是:http://mvnrepository.com/, 这里以搜索连接驱动...
2018-12-05 20:34:32 2748
原创 Spring学习总结(二)——Spring AOP、静态代理、JDK与CGLIB动态代理
AOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。...
2018-12-04 17:23:11 264
原创 Spring学习总结(一)——Spring实现IoC的多种方式
一、Spring框架概述Spring是一个开源免费的框架,为了解决企业应用开发的复杂性而创建。Spring框架是一个轻量级的解决方案,可以一站式地构建企业级应用。Spring是模块化的,所以可以只使用其中需要的部分。可以在任何web框架上使用控制反转(IoC),也可以只使用Hibernate集成代码或JDBC抽象层。它支持声明式事务管理、通过RMI或web服务实现远程访问,并可以使用多种方式持...
2018-12-03 00:28:38 947
转载 MyBatis学习(5) -- 调用存储过程和缓存
一、提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性二、准备数据库表和存储过程 1 create table p_user( 2 id int primary key auto_increment, 3 name varchar(10), 4 sex char(2) 5 ); 6 7 insert into p_use...
2018-12-01 22:23:27 2376 1
转载 MyBatis学习(4) -- 实现关联表查询
一、一对一关联 1.1、提出需求 根据班级id查询班级信息(带老师的信息)1.2、创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系。CREATE TABLE teacher( t_id INT PRIMARY KEY AUTO_INCREMENT, t_name VA...
2018-12-01 19:52:00 236
转载 MyBatis学习(3) -- 数据库配置以及属性名冲突问题
一、连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://...
2018-12-01 18:05:40 658 1
转载 MyBatis学习(2) -- 执行CRUD操作
一、使用MyBatis对表执行CRUD操作——基于XML的实现1、定义sql映射xml文件 userMapper.xml文件的内容如下:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http...
2018-12-01 18:03:08 206
转载 Mybatis学习(1) -- 快速入门
一、Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。二...
2018-12-01 18:01:07 261
转载 JDK源码阅读顺序
很多java开发的小伙伴都会阅读jdk源码,然而确不知道应该从哪读起。以下为小编整理的通常所需阅读的源码范围。标题为包名,后面序号为优先级1-4,优先级递减。 1、java.lang1) Object 12) String 13) AbstractStringBuilder 14) StringBuffer 15) StringBuilder 16) Boolean 27) By...
2018-11-25 12:04:39 135
原创 2.Spark Core
一.Spark编程模型1.术语定义应用程序(Application): 基于Spark的用户程序,包含了一个Driver Program 和集群中多个的Executor。 驱动程序(Driver Program):运行Application的main()函数并且创建SparkContext,通常用SparkContext代表Driver Program。 执行单元(Executor):...
2018-11-14 21:52:50 191
原创 1.Spark介绍
一.Spark简介Spark使用scala语言实现的,它是一种面向对象,函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集,它具有运行速度快、易用性好、通用性强和随处运行等特点。1.Spark与Hadoop差异Spark把中间数据放到内存中,迭代运算效率高。MapReduce中计算结果需要落地,保存到磁盘上,这样势必会影响整体速度,而Spark支持DAG图的分布式并行计算...
2018-11-14 21:52:29 239
原创 15.Scala开发环境搭建
一开始使用了Eclipse开发工具,安装Scala之后,下载Scala Eclipse插件并将压缩包中的feature和plugin拷贝到Eclipse工具的相应目录即可。但是,使用Eclipse Maven开发Scala项目有点不好用。所以,折腾来折腾去果断舍弃,改用Idea搭建Scala开发环境。我们先去官网下载Scala Windows版安装包,版本2.11.12。安装过程就像安装JDK...
2018-11-07 17:26:36 175
原创 14.Scala Case Class与匹配模式
一.匹配模式Scala中匹配模式,类似与Java中的Switch。不过,Scala中匹配模式避免了Java Switch忘记Break时,穿透的问题。演示如下:for(i <- 1 to 100){ i match{ case 10 => println(10) case 50 => println(50) case 100 => ...
2018-11-04 23:41:58 317
原创 13.高阶函数
一.高阶函数介绍高阶函数主要有两种:一种是将一个函数当做另外一个函数的参数(即:函数参数);另外一种是返回值是函数的函数。演示示例:object High { def main(args: Array[String]): Unit = { //1.调用参数为函数的函数 val str = int2Str { x => x + " s" } print...
2018-11-04 01:46:34 213
原创 12.Scala的I/O和正则表达式
一.I/O在Scala中,调用Java中的I/O类或者通过对Java中的I/O类进行相应的封装来实现I/O操作。trait FileLogger extends Logger{ val fileName:String //PrintWriter使用的是java.io.PrintWriter类 val fileOutput=new PrintWriter(fileName:S...
2018-11-04 00:05:01 182
原创 11.Scala特质Triat
一.Trait介绍在Java语言中,只允许继承一个超类,该类可以实现多个接口。 但Java接口有其自身的局限性:接口中只能包括抽象方法,不能包含字段、具体方法。 Scala语言利用Trait解决了该问题,在Scala的Trait中,它不但可以包括抽象方法还可以包含字段和具体方法。示例:trait Test{}trait Dao{ //定义抽象方法不需要加abstract,加了...
2018-11-04 00:04:57 390
原创 10.Scala类的层次结构
类的层次结构// Any类的源码,Any类有5个方法// ==与!=被声明为final,它们不能被子类重写final def ==(that: Any): Booleanfinal def !=(that: Any): Booleandef equals(that: Any): Booleandef hashCode: Intdef toString: String根据以...
2018-11-04 00:04:51 779
原创 10.最后一个单词的长度
题:给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5代码:public static int lengthOfLastWord(String s) { if (s == null || s.trim(...
2018-11-03 00:49:27 115
原创 11.加一
题:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。...
2018-11-03 00:49:20 118
原创 12.删除排序链表中的重复元素
题:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3代码:/** * Definition for singly-linked list. * public class List...
2018-11-03 00:49:12 101
原创 13.合并两个有序数组
题:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums...
2018-11-03 00:49:05 130
原创 14.杨辉三角
题:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]代码:public List<List<Integer>> generat...
2018-11-03 00:48:56 179
原创 15.杨辉三角II
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 3输出: [1,3,3,1]代码:public static List<Integer> getRow(int rowIndex) { List<List<Integer>> list = new Ar...
2018-11-03 00:48:43 179
原创 16.验证回文串
题:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false代码: public static boolean isPali...
2018-11-03 00:48:22 179
原创 17.只出现一次的数字
题:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4代码: public int singleNumber(int[] nums) { ...
2018-11-03 00:48:13 143
原创 9.搜索插入位置
题:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2代码:public static int searchInsert(int[] nums, int target) { int min = target; for (in...
2018-11-03 00:48:04 106
原创 9.Scala继承和多态
一.继承//父类class Person(name:String,age:Int) { println("Person ...") def walk():Unit = println("walk like a normal person")}//子类//继承关系class Student(name:String,age:Int,var stuNo:String) exten...
2018-11-03 00:47:40 777 1
原创 8.实现strStr()
题:给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "bba"输出: -...
2018-11-02 21:55:34 161
原创 7.移除元素
题:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前...
2018-11-02 21:53:10 377
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人