- 博客(78)
- 资源 (3)
- 收藏
- 关注
原创 使用frame框架跳转页面到最外层
iframe或者frameset 中的页面在跳转后显示在最外层,例如登陆校验时跳转到登陆页面,应该在最外层显示,而不是加载在iframe中显示。<script language="javascript"> window.onload=function(){ if(self!=top){ top.location.href="login"...
2019-05-09 18:09:31
2047
原创 org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core
把 IDEA 中的项目部署在tomcat上,浏览器搜索页面时出现了错误没导包是一个原因,导入jstl.jar包就好了。但我的还是不对,intellij idea使用Tomcat部署项目后并不会把编译后的项目复制到tomcat的webapps目录下,但是它会把编译好的项目路径告诉Tomcat,让Tomcat来找到这个项目。在项目路径下面查找错误,在这一步发现没有lib存在?没有jar包肯定错...
2019-01-08 17:34:40
3969
3
原创 myBatis动态sql查询
mybatis提供的各种标签方法可以实现动态拼接sql。使用<if/>标签对字符串类型的数据做不等于空字符串的校验。使用<where/>标签能够省去第一个AND之前的数据。sql代码段可以把常用的sql代码提取出来。使用Mapper开发方式需注意statement的id是sql的idparamenterType表明输入的类型paramenterType表明输入...
2018-12-03 18:35:52
617
原创 MyBatis的两种开发模式
之前简单介绍了 MyBatis 持久层框架对于数据的持久化操作。这一篇是对上篇的补充,介绍几个相关的知识点。MyBatis 架构mybatis配置SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。...
2018-11-13 09:30:55
1190
原创 IDEA搭建MyBatis框架
mybatis官方介绍是持久层的框架,支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。可以使用 XML 或注解来配置映射原生信息,将接口和 Java 的 POJO映射成数据库中的记录。最近开始使用 IDEA 工具,具体操作不太熟悉,学习MyBatis同时也顺便学习IDEA的使用。项目环境搭建创建项目首先创建项...
2018-10-29 15:16:37
5215
原创 通过反射改变final型的String
大家知道String是final型的,是不可变得,但是通过反射却是可以改变String的值。先了解下String类public final class String implements java.io.Serializable, Comparable<String>, CharSequence { private final char value[]; priv...
2018-09-18 16:14:52
906
原创 Redis命令使用事务及特性
本文介绍Redis的常用命令和具体操作,如果对Redis的安装没有明白可以看我的另一篇文章。 https://blog.csdn.net/xiao_ma_CSDN/article/details/81915620Redis的常用命令redis是一种高级的key-value的存储系统 其中的key是字符串类型,尽可能满足如下几点: 1)key不要太长,最好不要操作1024个字节,这...
2018-08-25 22:47:14
469
原创 Redis在linux下安装使用及用Jedis远程连接
Redis属于NoSql(not only sql)数据库,NoSql意思是“不仅仅是sql”,指非关系型数据库。NoSql随着网站访问量的提升,特别是超大规模高并发的网站,传统关系型数据库在处理请求时暴露出了很多问题,其中包括对于数据库高并发读写的需求,对海量数据高效存储和访问的需求,对数据库可扩展性的需求,这些问题对于关系型数据库是无法解决的。NoSql型数据库的产生就是为了解决大...
2018-08-22 14:24:36
496
3
转载 centos配置防火墙开放端口
CentOS 7 之前的版本使用iptables 1.开放80,22,8080 端口 /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 2.保存 /etc/rc.d/init.d/iptables save3.查看打开的端口 /etc/init.d/iptables status 4.关闭防火墙 1) 永久性生效,重启后不会...
2018-08-21 22:35:28
1006
原创 高并发情况处理(乐观锁悲观锁)
当网站到达一定规模时,并发问题也就随之而来,如何高效正确的处理并发问题是每个服务端开发人员所必须掌握的。处理并发和同步问题处理并发和同步主要通过锁实现。一种是代码层次上的,如java中的同步锁,典型的就是同步关键字synchronized。另外一种是数据库层次上的,比较典型的就是悲观锁和乐观锁。什么是悲观锁?悲观锁很悲观,总是认为会发生其他线程修改的情况,在操作之前加锁,...
2018-08-19 22:05:26
2192
原创 《剑指Offer》之二叉树系列(1)
1.输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)分析: 判断root1和root2的根结点是否相同,相同则进一步判断root1的子树和root2的子树是否相同。 root1和root2的根结点不同,则用roo1的左右子树跟root2比较,直到root1为空时结束。当root1为null 且root2不为null,返回false; 当roo...
2018-08-19 20:45:36
249
原创 Maven简单使用
Maven是对Java项目构建依赖管理的工具。下载地址 http://maven.apache.org/download.cgi 下载后解压即可。Maven环境变量配置1、要配置jdk, maven3.3.9这个版本所需的jdk版本必须要1.7以上2、在系统变量添加 名称:MAVEN_HOME 值:就是maven解压的目录F:\class32\apache-maven-...
2018-08-06 16:30:33
220
原创 AOP原理之动态代理
Aop是将横向重复代码,纵向抽取出来,spring能够为容器中管理的对象生成动态代理对象。例如在service层中实现事务管理,在servlet中解决乱码,在Action中用拦截器进行参数赋值。AOP实现原理有动态代理和cglib代理。 动态代理对象必须实现接口,才能产生代理对象。 Cglib代理原理是对目标对象进行继承代理,如果目标对象呗final修饰,该类无法被cglib代理。 ...
2018-08-02 14:36:49
271
原创 Session和Cookie的区别
什么是Cookie?Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。 web应用是...
2018-07-12 23:59:57
258
原创 tomcat启动闪退
在网上找了好多的东西,也都尝试了,都不行,拖了很久一直都是用eclipse启动,今天又找了好久,终于发现我的问题所在。我的问题是版本不一致导致的, 因为装过好多次java的环境,知识的欠缺和操作不严谨导致我的JDK是1.9版本,JRE是1.8版本,而且两个出现在不同的路径下,这样就出现了在环境变量里面我不能用jdk的路径去配置jre的路径,发现问题后重新下载安装,最终通过tomcat的sta...
2018-07-11 13:24:35
256
原创 数据库索引以及索引的实现(B+树介绍,和B树,区别)
索引索引是提高数据库表访问速度的方法。分为聚集索引和非聚集索引。聚集索引:对正文内容按照一定规则排序的目录。非聚集索引:目录按照一定的顺序排列,正文按照另一种顺序排列,目录与正文之间保持一种映射关系。把数据库索引比作字典查询索引,聚集索引就是按照拼音查找,拼音栏中字的顺序就是查找得到的字的顺序。非聚集索引就像按照偏旁部首查找,同是单人旁查到的字所在的页码可能是杂乱的,没...
2018-06-22 14:51:08
1975
1
原创 mysql数据库创建查询修改表
基本操作1、在Windows命令提示符下运行: 启动MySql服务:net start mysql 停止MySql服务:net stop mysql 卸载:sc delete mysql 一般要先启动MySQL服务器 注意:运行如上命令时,有时会出现“发生系统错误5 拒绝访问”,这是因为当前用户的操作权限太低了,需要我们要以管理员身份来运行cmd程序。同时还...
2018-06-22 14:05:34
600
原创 Java线程中currentThread和this的区别
总结:this指正在被调用的线程对象currentThread是返回该代码段被哪个线程调用看个例子:public class CountOperate extends Thread { public CountOperate() { System.out.println("CountOperate---begin"); System.ou...
2018-06-12 11:15:13
1454
原创 常见数据结构及复杂度Java实现
选择数据结构Array (T[])当元素的数量是固定的,并且需要使用下标时。Linked list (LinkedList)当元素需要能够在列表的两端添加时。否则使用 List。Resizable array list (List)当元素的数量不是固定的,并且需要使用下标时。Stack (Stack)当需要实现 LIFO(Last In First Out...
2018-06-03 22:04:08
2977
原创 【算法题】Java单链表的逆序(递归和非递归方式)
循环方式在不使用额外存储节点的情况下使一个单链表的所有节点逆序?我们先用迭代循环的思想来分析这个问题,链表的初始状态如下 初始状态,prev是NULL,head指向当前的头节点A,next指向A节点的下一个节点B。首先从A节点开始逆序,将A节点的next指针指向prev,因为prev的当前值是NULL,所以A节点就从链表中脱离出来了,然后移动head和next指针,使它们分别指向B节...
2018-06-02 18:04:33
2386
原创 MD5加密
MD5加密是不可逆的。import java.math.BigInteger;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class MD5Utils { public static String md5(String plainText)...
2018-05-30 20:45:58
403
原创 页面遍历输出
在 struts2 的Action中将page属性存放在request域,然后转发到页面。从request域中拿到pageBean ,在页面循环输出遍历到的值第一种: 用Struts标签,遍历每次把遍历到的值放入ActionContext的键 <s:iterator value="#pageBean.list" var="cust"><TR <td&g...
2018-05-21 11:01:22
1061
原创 SSH三大框架整合
整合原理web开发分三层 spring为Struts2创建Action对象,对其实现 DI (依赖注入) 和 IOC (控制反转)。spring与hibernate整合,使用spring管理SessionFactory,spring负责session维护和AOP事务。.导包(39个)hibernatehibernate/lib/required hibernat...
2018-05-20 01:50:02
477
原创 文本文件.txt输出成Excel的.xls格式用exe4j包打包成.exe文件含注册码
问题:考虑到有这样一个文本 需要将文本格式 .txt,输出成 Excel 表能打开的 .xls 格式.展示 点击转换到桌面或者转换到原文件夹,而后生成同名的.xls文件。过程核心代码是处理将文本拿到的数据转换成Excel认识的格式。我们需要用到apache的 com.springsource.org.apache.poi-3.0.2....
2018-05-15 18:47:56
492
原创 云服务器Ecs镜像迁移到新服务器
准备工作选择是同地区的服务器且配置也是一样的基础40GB硬盘配置,没有额外的挂载盘。对于我们原有的服务器数据备份也是重要的,我们可以选择快照备份或者定期的本地备份,确保已有数据和系统文件的安全。一般我们创建镜像的时候需要对原有服务器关机操作。自定义创建镜像将当前原有服务器关机,在当前服务器列表后面,点击”更多”后看到上图,点击”创建自定义镜像”。 创建镜像是免费的,但...
2018-05-15 18:05:03
5236
原创 将spring容器应用到struts-crm项目
主要是在spring容器中管理Dao和Service对象。 步骤导包(4+2+1) com.springsource.org.apache.commons.logging-1.1.1.jar com.springsource.org.apache.log4j-1.2.15.jar spring-web-4.2.4.RELEASE.jar将service和dao对象配置到spri...
2018-05-13 15:41:18
256
原创 spring属性注入
注入方式User实例public class User { private String name; private Integer age; private Car car; }set方法注入 引用类型 name=”User中的引用类型名” ref=”配置的对象名”构造方法注入 index代表型参序号复杂类型注入Co...
2018-05-12 23:00:45
286
原创 spring项目搭建
导包包的分类 在 spring-framework-4.0.0.RELEASE 包内 日志文件 书写配置文件位置命名随意,最好放在src下,最好叫applicationContext.xml。<?xml version="1.0" encoding="UTF-8"?><beans xmlns:xsi="http://www.w3.org/2...
2018-05-12 14:08:33
277
原创 开机引导界面grub找不到
问题:我的电脑有一个windows10和一个ubuntu,在ubuntu里设置了个grub用于开机时选择用哪个系统。昨天我在磁盘里添加了个分区后,开机不见grub引导界面,就出现了这个。解决:grub放在Ubuntu里的/boot/grub下,由于我多分了个区,导致grub找不到原先的Ubuntu所在的分区,自然就找不到/boot/grub了,解决问题只需要把grub和/boo...
2018-05-12 11:39:42
11326
1
原创 Struts2架构和访问流程
Struts2架构 所有的请求先经过strutsPrepareAndExecuteFilter核心过滤器,核心过滤器把请求交给ActionMapper。ActionMapper判断每次请求的目的地,请求要到达的Action和Method等信息,然后把这些信息封装到ActionMapping对象,返回给核心过滤器Filter。Filter根据Actionmapping对象,判断本次请求...
2018-05-11 17:37:17
350
原创 Struts2拦截器
拦截器的实现原理Struts2的拦截器实现相对简单。当请求到达Struts2的ServletDispatcher时,Struts2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表,最后一个一个的调用列表的拦截器。Struts2的执行流程 自定义拦截器生命周期:随项目的启动创建,随项目关闭销毁。创建方式一实现Interceptor接口publ...
2018-05-11 15:26:36
396
原创 OGNL与Struts2结合
结合原理 ValueStack唯一的实现类OgnlValueStack中有 root 和 context 两个参数,值栈由这两部分组成。 栈原理 栈由ArrayList模拟public class CompoundRoot extends ArrayList { public Object pop() { return remove(0); ...
2018-05-09 19:53:15
499
3
原创 Git常见命令
git 是分布式版本控制git status 查看当前仓库信息git init 初始化当前目录,之后当前目录出现 .git 目录,包含我们提交的所有信息。 git add 添加文件内容到暂存区(同时文件被跟踪).gitignore 在添加时忽略匹配的文件,仅作用于未追踪的文件git rm –cached 仅从暂存区删除git rm 从暂存区与工作目录删除...
2018-05-07 12:34:12
246
原创 JVM垃圾收集器
Java 与 C++ 之间有一堵由内存分配和垃圾收集技术所围成的墙,墙外面的人想进去,墙里面的人却想出来. —-《深入理解Java虚拟机》我们思考三件事情:哪些内存需要回收?什么时候回收?如何回收? 在java内存运行时区域中,程序计数器,虚拟机栈,本地方法栈三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊的...
2018-04-27 18:00:45
201
原创 希尔排序
希尔排序实质上是一种分组插入方法。 它的基本思想是: 对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组子序列,所有距离为gap的倍数的记录放在同一个组中; 然后,对各组内的元素进行直接插入排序。 这一趟排序完成之后,每一个组的元素都是有序的。 然后减小gap的值,并重复执行上述的分组和排序。重复这样的操作,当gap=1时,整个数列就是有序的。由...
2018-04-26 21:30:34
204
原创 冒泡排序快速排序直接插入排序
冒泡排序遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就在数列的末尾! 采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操作,直到整个数列都有序为止!冒泡排序时间复杂度冒泡排序的时间复杂度是O(N2)。 假设被排序的数列中有N个数。遍历一趟的时间复杂度是O(N),需要...
2018-04-24 17:38:13
376
原创 链表生成栈和队列
结点类class Node { int val; Node next; public Node(int x) { val = x; next = null; } }栈class Stack { Node top; publi...
2018-04-24 11:35:01
235
原创 两个栈实现队列,两个队列实现栈
两个栈实现队列队列每次只能删除头,只能在末尾添加,“先进先出”原则 栈“先进后出”package queue;import java.util.Stack;//用“栈”实现队列public class QueueTest<T> { // 向队列添加数据时:(01) 将“已有的全部数据”都移到mIn中。 (02) 将“新添加的数据”添加到mIn中。 p...
2018-04-23 14:43:55
193
原创 Tomcat部署多个项目在云服务器访问
这里讲在同一个 tomcat 上部署多个项目放在服务器,通过浏览器访问。 如果有 tomcat 架构不熟悉,可以浏览我的另一篇文章 https://blog.csdn.net/xiao_ma_csdn/article/details/79430363进入正题我们知道 Host 代表一个虚拟主机,每个虚拟主机和某个网络域名相匹配 每个虚拟主机下都可以部署(deploy)一个或者多个...
2018-04-21 00:52:36
747
原创 JSTL标签循环遍历
我有一个后台servlet过来的集合,不是某一个具体对象的,而且还是一个双重循环。 <% List list = (List) request.getParameter("list");所以在JSP页面就不能再这样了for(int i=0;i<list.size();i++)因为.size()是不能用的。用JSTL标签c:forEach标签的ite...
2018-04-17 14:50:49
3538
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人