- 博客(88)
- 资源 (1)
- 收藏
- 关注

原创 Python学习(一)
文章讲的比较笼统,也算是我的学习笔记,目的只是希望看到此文的读者能大致了解python的基础语法,若想深入学习,建议你找一本python的入门书籍,书上会由浅入深的讲解python的一整套体系,对你的帮助不会比网上的一些博客差。
2016-04-01 20:06:29
592
原创 springboot 缓存 Cacheable 序列化: java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to
springboot 缓存反序列化失败:项目使用 redis 来做缓存,使用 springboot 的 @Cacheable 缓存数据时,可以成功存入 redis, 但是在第二次请求命中缓存时,就会出现一下错误:java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to ...经定位,确定了错误原因:原因:springboot 的缓存使用 jackson 来做数据的序列化与反序列化,如果默认使用 Object 作为
2020-09-04 17:37:51
4971
1
原创 springboot 控制白名单
在正常情况下,可以用 security 的hasIpAddress直接控制http .authorizeRequests() .antMatchers("/", "/home") .hasIpAddress("127.0.0.1")如果有多个ip, 则可以用表达式完成:http .authorizeRequests() .antMatchers("/", "/home") .access("hasIpAddress('127.0.0.1')
2020-08-21 19:23:22
3230
原创 nginx 使用
server { listen 8080 default_server; listen [::]:8080 default_server; ...
2020-08-21 11:06:23
311
原创 Flask+Apache2+Python配置
用Flask来进行python web开发是比较简洁的,它采用装饰器来映射url与方法,可以比较方便的构建简单的web程序一个简单的例子:hello.py:from flask import Flaskapp = Flask('__name__')@app.route('/first')def first_page(): return 'this is the f
2016-12-07 16:22:04
4700
原创 Python Scrapy安装(python 版本手动更新)
Scrapy安装需要python2.7以上若python版本为2.6,则需要更新#下载python2.7#wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2 #解压 #tar -jxvf Python-2.7.3.tar.bz2
2016-12-07 16:20:07
1770
原创 回调与观察者模式
观察者模式是为了满足监听的需求。也就是说当某件事情发生的时候, 一个或多个观察者需要获知此事件的发生, 如果每个观察者都采用轮询的方式判断事件是否发生,则会耗费较多的资源。所以这个任务就应该由被观察者来完成, 即被观察者持有多个观察者对象, 当自身某事件发生的时候, 去通知所有观察者。这样一种机制就是观察者模式。但是这其中会有一些安全问题,比如说被观察者持有观察者对象,这时观察者就完全暴露
2016-10-27 12:00:29
1099
原创 Python3中关于中文编码的问题
在urllib.request使用中传递中文参数的时候,需要对其进行处理:urllib.parse.quote("中文字符串")处理后变为%E6%E3...这样的形式而urllib.request.urlopen的中文返回值为b'\xe6\xac\xa2\xe8\xbf\x8e'这样的格式再进行解码就可以转为中文 result.decode();
2016-10-08 17:36:01
932
原创 小程序
Page({ data: { obj:{a:0,b:1,c:2} }})data = {{...obj}}data = {{a:0,b:1,c:2}}
2016-09-24 23:13:04
401
原创 JS正则表达式替换数字
替换数字为空字符var obj = document.getElementById('_id')obj.value.replace(\[0-9]\g, '');
2016-09-23 15:42:19
8183
原创 MongoDB使用
1.下载安装mongodb-win32-x86_64-2008plus-ssl-3.2.9-signed.msi2.下载安装mongodb-compass-1.3.0-win32-x64.exe在mongodb安装目录下的bin目录下,运行命令行,创建数据库:mongod --dbpath d:/mongodb/db这样就可以用compass来连接管理mongodb数据库了
2016-09-14 12:24:44
922
原创 input输入限制(正则匹配)
限制input只能输入数字且最大为6位:maxlength = "6" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"
2016-08-18 14:23:21
832
原创 Python安装Pip出现的问题
采用Pip安装Python第三方包是比较方便的,下面介绍一下Pip的安装:1.下载地址:https://pypi.python.org/pypi/pip#downloads2.解压后,从命令行进入解压目录,运行:python setup.py install3.在这一步可能会出现“ImportError: No module named setuptools”的错误,是由于pyth
2016-07-05 22:14:54
8132
原创 Git版本控制工具在Android Studio中的使用
之前一直在用SVN,但是最近在写Android,发现很多开源项目都托管在Github上,每次都只能下载源码再导入项目,所以决定开始学习Git,Github是以命令行来进行操作的,这一点和Linux是相似的,所以比较熟悉。它的基本操作主要有以下几个:1.创建新的Git仓库: $mkdir repo $git init2.clone一个项目到本地 $ git clone git@
2016-07-03 19:47:04
744
原创 Mysql修改编码为utf8
默认情况下,mysql的编码格式为latin1,在这种情况下插入中文的时候,会出现UnSupportEncodingException异常。这时就需要我们修改mysql的默认编码,在Linux环境下,mysql的配置文件是放在/etc/mysql/my.cnf文件中的。要修改编码方式,需要做以下修改:1.打开配置文件:vi /etc/mysql/my.cnf2.在[client
2016-06-30 13:50:34
566
原创 Linux环境下,部署web项目
在Linux环境下,采用War文件来部署web项目是比较方便的,在上一篇文章中,我们已经实现了将war文件上传到远程linux中,接下来,就开始在tomcat中部署它。1.安装tomcat:sudo apt-get insatll tomcat72.将war文件复制到tomcat的webapps目录下,具体目录(/)3.启动tomcat服务:
2016-06-28 14:34:44
656
原创 Windows向Linux(ubuntu)传输文件
通过pscp与putty进行传输下载putty:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html下载pscp:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html1.首先通过putty连接远程ubuntu2.安装ssh并开启服务:s
2016-06-28 13:56:11
2106
原创 SpringMVC注入Interceptor失败
有两种方法注入Interceptor1. 2. RequestInterceptor"> 第二种也可以这样写: <bean id="annot
2016-06-05 19:40:11
1836
原创 SpringMVC转发请求RedirectView用法
SpringMVC转发请求RedirectView用法项目实施过程中有这样的需求: 在当前页面提交某项操作后,需要刷新当前页面。 本来以为是比较简单的,直接在window.open的时候加入_self参数,结果却出现空白页。经查阅资料,找到了比较满意的解决方案。: 假设在Controller中有两个方法: @RequestMapping("getAll")
2016-05-31 22:37:27
3062
原创 SpringMVC上传文件错误
the current request is not a miltipart request1.检查form 的属性中是否加入了 enctype = "multipart/data": 2.检查spring.xml中是否加入了id为multipartResolver的bean ,这是用来解析文件的解析器:
2016-03-24 10:43:23
474
原创 Submime Text2 安装
Sublime Text2subime Text 2 是一个轻便的文本编辑器,用来写html很方便,里面也有很多插件可以方便我们写各种标签,比如emmet 。 在subime Text 2中安装插件很简单,只需要几步: 1.View->show Console 将下面这段复制到文本框,然后回车 import urllib2,os,hashlib; h = '2deb499853c43
2016-03-12 17:06:29
925
原创 Submime Text2 安装
Sublime Text2subime Text 2 是一个轻便的文本编辑器,用来写html很方便,里面也有很多插件可以方便我们写各种标签,比如emmet 。 在subime Text 2中安装插件很简单,只需要几步: 1.View->show Console 将下面这段复制到文本框,然后回车 import urllib2,os,hashlib; h = '2deb499853c43
2016-03-12 17:05:19
653
原创 JAVA Swing
最近在写一个桌面应用,本来打算用c#的WinForm,但是考虑到以后可能会较多的接触非可视化界面编程,而且不想再去写那么多的sql语句,Hibernate也很好用,所以就采用swing来做一个简单的界面。 用swing来开发界面完全是由代码来拼装界面,将每一个元控件放入更大的容器中,最后将最外层的容器显示出来,就实现了最终的效果。 这里就不再详写swing的语法格式,而是将我遇到的问题分享给大家。
2016-03-07 19:48:18
1811
原创 Android使用xUtils3上传文件
xUtils3使用HttpUrlConnection来发送http请求,可以实现最大2G的大文件上传。1.首先还是在application中初始化:x.Ext.init(this);2.然后使用org.xutils.http包下的RequestParams来构造参数。params = new RequestParams(url);params.addBodyParameter(
2016-02-11 15:50:51
12601
1
原创 Tomcat的安装与部署
Tomcat是一个开源的web应用服务器,被用来响应web请求。tomcat是免安装的,解压后配置环境变量即可运行。安装步骤:http://tomcat.apache.org/download-70.cgi在此网站下载相应版本的tomcat并解压到相应目录。在环境变量中配置CATALINA_HOME, 值为目录名,如:E:\Tomcat.这样就完成了tomcat的配置在
2016-02-09 21:50:09
431
原创 HttpURLConnetion的使用
HttpURLConnection是用来发送Http请求的类,用法如下: String urlStr = "http://www.xx.com"; URL url = new URL(urlStr); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoInpu
2016-01-28 23:04:05
1609
原创 RecyclerView+SwiptRefreshLayout异常
出现错误如下: java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{43089310 position=5 id=-1, oldPos=4, pLpos:4 scrap [attachedScrap] tmpDetached n
2016-01-26 17:31:04
511
原创 Volley解析中文字符
在使用Volley的时候,一般使用的是继承自Request的StringRequest,而StringRequest中重写了两个方法:praseNetworkResponse和diliverResponse,可能还会有getParams方法,用于获取参数。在praseNetworkResponse(NetworkResponse networkResponse)中,对networkRespon
2016-01-26 16:26:26
847
原创 Hibernate的addEntity
使用Hibernate的时候,一般是使用hql语句来实现查询操作,但有时候由于效率的原因,可能需要直接使用sql语句来进行查询,这时候使用query.list();方法得到的List一般是属于Object类型,需要在createSQLQuery之后添加一个方法addEntity(Type),这样Hibernate会将其转化为Type类型的对象。如Query query = session.cr
2016-01-26 16:09:35
840
原创 drawable文件夹的问题+使用drowable定义动画
1.在Android Studio中,有一个drawable文件夹,但是它里面是又多了一个v21文件夹,这个v21文件夹里存放的是api21以上用到的资源,而api21一下则不会调用这里的资源。今天出现的情况就是这样,将图片复制到项目内的时候,忽略了这个问题,它被放在了v21文件夹内,编译的时候没有任何问题,但是运行之后,出现Resources$NotFoundException的错误。由于是
2016-01-24 23:57:41
1021
原创 Android ActionBar中CustomView的显示
ActionBar中如果需要显示一些用于导航的视图,则可以用setCustomView来设置:actionBar.setCustomView(R.layout.customView);但是使用之前必须显式的将它开启:actionBar.setDisplayShowCustomEnabled(true);否则会出现NullPointerException
2016-01-24 16:16:57
846
原创 Android模拟文件上传---------------找不到错误
上传文件的时候,出现问题,却找不到错误,之前测试的是可以的,但就是有问题。后来把测试类粘贴过来就可以了,但我实在是找不到二者间有什么区别,暂且放在这里,待以后再来分析。出问题的类文件:package com.md.util.request;import android.content.Context;import android.content.SharedPreferences;
2016-01-24 12:03:54
523
原创 SwipeRefreshLayout+RecyclerView实现上拉刷新
点击打开链接这篇文章是接着上篇文章的,上篇文章已经实现了下拉刷新,而要实现RecyclerView的上拉刷新,只要为RecyclerView添加滚动监听事件就可以了,判断RecyclerView的最后一项是否已经显示,并判断用户手势,由这两项决定是否刷新:recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener()
2016-01-22 17:35:00
444
原创 SwipeRefreshLayout+RecyclerView下拉刷新
RecyclerView与SwipeRefreshLayout结合可以实现下拉刷新。布局文件:<android.support.v4.widget.SwipeRefreshLayout android:id="@+id/id_swipe" android:layout_width="wrap_content" android:layout_h
2016-01-22 17:25:13
511
原创 layout_graviry和gravity的区别及需要注意的问题
gravity决定该控件内部元素的位置,如TextView中文字的靠左还是靠右layout_gravity决定该控件相对于父控件的位置,如textview位于layout的左边还是右边。在LinearLayout内使用gravity属性时,好像不起作用,因为LinearLayout内的控件默认是依次排列摆放的。
2016-01-22 17:06:55
577
原创 Android BroadcastReceiver的使用
BroadcastReceiver广播消息接收,被用来在一个应用中传递或监听信息,好处在于它一旦被注册,就可以持续的进行监听,一般被用作异步线程完成后的ui更新操作。用法:声明一个BroadcastReceiverpublic class MyBroadcastReceiver extends BroadcastReceiver { @Override
2016-01-21 21:48:12
328
转载 正则表达式
public static boolean isEmail(String email){ String str="^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\\.([a-zA-Z0-9_-])+)+$"; Pattern p = Pattern.compile(str); Matcher m = p.matcher(ema
2016-01-19 16:59:57
303
原创 Android Support Library学习(一)
1.使用Android Support Library的时候,一般都会用Toolbar将ActionBar替换掉,具体做法如下:Toolbar toolbar = (Toolbar) findViewById(R.id.id_register_toolbar);//绑定控件 toolbar.setTitle("Title");//设置标题 setSupportA
2016-01-19 16:46:50
363
原创 SpringMVC返回文件流
@RequestMapping("message/get") @ResponseBody public ResponseEntity getMessageImage(@RequestParam(ImageRequestParam) String fileName) throws IOException { String filePath = FinalString.ImagePat
2016-01-16 12:25:03
8180
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人