首页
AI
爬虫
爬虫案例
JS逆向技巧
APP逆向
嵌入式开发
C语言入门视频教程
模电数电
51/52单片机
STM32
Linux嵌入式
文学修养
感动和励志文字
生活哲理
随手乱写
IT计算机
QT学习之路
数据库设计
网站搭建
微信开发
Java
计算机知识
NCRE全国计算机等级考试
编程语言
Web程序设计
关于我们
广告招租
表白网页制作
搜索
登录
搜索
RainFly
明确一个目标,这很重要!
累计撰写
215
篇文章
累计收到
4779
条评论
首页
栏目
首页
AI
爬虫
爬虫案例
JS逆向技巧
APP逆向
嵌入式开发
C语言入门视频教程
模电数电
51/52单片机
STM32
Linux嵌入式
文学修养
感动和励志文字
生活哲理
随手乱写
IT计算机
QT学习之路
数据库设计
网站搭建
微信开发
Java
计算机知识
NCRE全国计算机等级考试
编程语言
Web程序设计
关于我们
广告招租
表白网页制作
会声会影X9
会声会影X9
会声会影X9
最新文章
2018-2-2
给你的IntelliJ IDEA PhpStorm WebStorm添加彩色控制台
给编译器打印控制台添加彩色信息 官方文档 --》传送门 由于Intellij idea不支持显示ascii颜色,grep-console插件能很好的解决这个问题,下面就以开发JavaEE项目中,结合Log4j配置多颜色日志输出功能。 下载好上述压缩包,无需解压。 选择好ZIP文件 后会提示重新启动,当重启完成,插件安装成功后,设置log4j输出状态对应的颜色 剩下工作就是配置使用log4J 来提示文档 配置Log4j Maven配置文件pom.xml添加log4j的信赖 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </version> </dependency> 在resource 文件夹添加log.4j的配置文件 log4j.properties 并添加如下内容 ### set log levels ### log4j.rootLogger = debug , stdout ### 输出到控制台 ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### 输出到日志文件 ### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = logs/log.log log4j.appender.D.Append = true log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志 log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n 测试最终效果 应用JUnit写如下测试代码 @Test public void testLoger(){ final Logger logger = Logger.getLogger("TestErrOut"); logger.debug(" This is debug!!!"); logger.info(" This is info!!!"); logger.warn(" This is warn!!!"); logger.error(" This is error!!!"); logger.fatal(" This is fatal!!!"); }
2018年-2月-2日
12103 阅读
1 评论
Java
2018-2-2
Spring IOC原理的实现
Spring框架,IOC 实现原理 可以降低类与类之间的耦合性 解耦 applicationContext.xml 中对been进行配置 <bean id="userService" class="cn.rain.UserService" /> IOC DI工厂 通过 dom4j 对xml文件进行解析 根据id =userService 获得class对象 String classValue = "获得的class属性值" 使用反射创建类对象 ->>>传送门 (介绍反射) 通过class属性值获取类对象 Class clazz = Class.forName(classValue); 通过类对象创建 UerService对象 UserService service = clazz.newInstance(); 返回创建好的对象 return service;
2018年-2月-2日
5421 阅读
2 评论
Java
2018-1-29
maven使用出现的问题
内容代码没有错误 但是项目出现错误, 先找到错误在哪。 Problems选项卡会有详细的错误描述。 如果被关闭了的话,重新打开方法: Eclipse,选Window,Show View,Other,Problems。
2018年-1月-29日
10707 阅读
0 评论
Java
2018-1-25
如何简单的搭建PHP开发调试运行环境
第一步:下载相应的资源 PhpStorm2017.3.3 下载地址:http://www.oyksoft.com/soft/40722.html PhpStudy 下载地址: http://www.phpstudy.net XdebugHleper 是Google浏览器的插件,可以直接去谷歌商店里面下载 安装PhpStudy,该软件一键安装使用很方便 自动安装Windows环境下的Apache +PHP +MySQL (包括Mysql-Front、PhpMyAdmin等软件) 安装XdebugHelper插件 点击Debug会又灰色变成绿色 启动PhpStudy,点击切换版本 php-5.6.27-nts+Apache 二、配置xdebug 1.在phpstudy上打开xdebug选项 2.打开php.ini,并完成配置 简单解释一下:直接在phpstudy上勾选xdebug,会自动配置好上图中的2007-2009三行,这是xdebug的基本配置,需要我们自己配置的就是图中红框里的内容。 xdebug.remote_enable=1 # 开启远程调试 xdebug.idekey='PHPSTORM' # sessionkey xdebug.remote_port=9001 # 远程调试通信端口 idekey不要填写别的,xdebug helper给phpstorm的就这个,没得选。端口默认的是9000,这个和fastcgi端口冲突,所以就改了。xdebug其他的配置项都是默认的就行。 重启nginx,打开phpinfo确认一下配置是否正确。 三、设置phpstorm 1.打开设置对话框FIle->Settings(默认快捷键Ctrl+Alt+S) 2.配置Debug :Languages & Frameworks -> PHP -> Debug,只需要把DebugPort端口改为9001,和xdebug的配置保持一致 3.配置Server(就在Debug下面一个) :Languages & Frameworks -> PHP -> Servers,新建一台本地服务器(绿色加号),填写服务器名字以及host,确认debugger是xdebug 第四步:新建调试项目 添加本地PHP版本和之前选的PhpStudy的php版本一样 选择对应的版本 php.exe文件 目录建立在 PHPStudy目录文件夹下的 WWW中 这样方便直接进行调试! 注意将调试按钮打开! 访问homepage就会自动跳转到调试接口!
2018年-1月-25日
11516 阅读
2 评论
Web程序设计
2018-1-17
EasyUI-ajax提交表单
/* <form id="ff" method="post"> ... </form> */ function submitForm(){ /* form()参数: submit 提交表单 validate 用于验证提交 clear 清除所有表单项 load 记载记录来填充表单 * */ $('#ff').form('submit',{ url: "http://diao:8080/crmnew/customer/add", onSubmit: function(){ //提交前触发 //做一些检查来阻止提交 return $(this).form('validate'); }, //返回的状态需要是success success: function(result){ /* console.info(result); */ var result = eval('('+result+')'); if (result.success){ $('#dlg').dialog('close'); $('#datagrid').datagrid('reload'); } else { mesTitle = '新增用户失败'; } $.messager.show({ title: mesTitle, msg: result.msg }); } }); } function clearForm(){ $('#ff').form('clear'); } </script> http://www.jeasyui.net/plugins/166.html
2018年-1月-17日
9585 阅读
1 评论
Java
2018-1-10
Java反射机制
反射的核心就是加载类,解剖出类的各个组成部分 例如:成员变量 、方法 、构造方法! 加载类的三种方法 /提取当前类的 Class 对象。 方法1 Class claszz1=Class.forName("com.rain.demo.Person"); 方法2 Class claszz2=Person.class; 方法3 Class claszz3=new Hero().getClass(); 解剖类的常用方法 //返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定公共构造方法。 public Constructor<T> getConstructor(Class<?>... parameterTypes) 返回一个 Method 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明方法 public Method getMethod(String name, Class<?>... parameterTypes) //返回一个 Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明字段。 public Field getField(String name) //私有 public Field getDeclaredField(String name) //私有 public Method getDeclaredMethod(String name, Class<?>... parameterTypes) //返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定私有构造方法。 public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes) 反射功能实际作用是用来开发框架如:spring 实例 Person.java package com.rain.demo; public class Person { public String name="123"; public Person(){ System.out.println("person"); } public Person(String name){ System.out.println("person name"); } public Person(String name,int password){ System.out.println("person name password"); } public void getString(){ System.out.println(name); } } Demo1.java package com.rain.demo; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import org.junit.Test; public class Demo1 { //反射新建类的对象 @Test public void test1() throws NoSuchMethodException, SecurityException, ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{ Class claszzClass = Class.forName("com.rain.demo.Person"); Constructor c = claszzClass.getConstructor(null); Person p = (Person)c.newInstance(null); System.out.println(p.name); } @Test public void test2() throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException{ //提取当前类的 Class 对象。 Class claszzClass1=Class.forName("com.rain.demo.Person"); //返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定公共构造方法。 Constructor c =claszzClass1.getConstructor(String.class); //使用此 Constructor 对象表示的构造方法来创建该构造方法的声明类的新实例, Person p = (Person)c.newInstance("xxxx"); System.out.println("test2"); System.out.println(p.name); } @Test public void test3() throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException{ Person p = new Person(); Class claszzClass3=Class.forName("com.rain.demo.Person"); // Method method = claszzClass3.getMethod("getString", null); //方法名 参数 method.invoke(p, null); } }
2018年-1月-10日
7211 阅读
0 评论
Java
2018-1-5
JSP动作元素 :useBean:setProperty ::getProperty学习
JSP动作元素在请求处理阶段实例化一个javaBean,并且提供了设置获取方法 在model中创建javaBean,(其实就是java中的类)关于此概念解释 -> 传送门 创建好Javabean 在jsp中请求调用的方法 在浏览器打开 http://127.0.0.1:8080/Test/person.jsp
2018年-1月-5日
9744 阅读
1 评论
Java
2018-1-4
记录配置SpringMVC开发环境
Spring MVC就是一个MVC框架,个人觉得Spring MVC annotation式的开发比Struts2方便,可以直接代替上面的Struts(当然Struts的做为一个非常成熟的MVC,功能上感觉还是比Spring强一点,不过Spring MVC已经足够用了)。当然spring mvc的执行效率比struts高,是因为struts的值栈影响效率.以下是记录springMVC开发环境配置 首先下载jar包 :下载地址:http://repo.spring.io/release/org/springframework/spring/ spring 项目启动必须的依赖包 commons-logging-1.1.jar 第一步:在lib文件中添加jar包 第二步:修改web.xml 文件:详细介绍:https://www.cnblogs.com/shinejaie/p/5244258.html <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name>SpringMVC</display-name> <!--配置所有请求的拦截器 --> <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 配置DispatcherServlet的一个初始化参数:配置springMVC的配置文件的位置和名称--> <!-- 这里可以省略, 默认的配置文件为: /WEB-INF/<servlet-name>-servlet.xml--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/SpringMVC-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> 第三步:添加spring-servlet.xml
2018年-1月-4日
10782 阅读
1 评论
Java
2018-1-4
内网映射调试详细构建过程
首先需要用内网穿透工具 : 花生壳 .NAT123. ngrok 我使用的是ngrok :https://www.ngrok.cc/ 将Tomcat 端口配置为80 (修改server.xml 配置文件) 可以百度Google方法 重启Tomcat 后发现端口改变 127.0.0.1:80 注册登录ngrok后,添加隧道,在本地运行ngrok 启动脚本设置好 隧道ID,然后访问隧道的域名出现正常的页面 则构建成功 可以配合Eclipse实现联合调试!
2018年-1月-4日
6144 阅读
0 评论
Web程序设计
2018-1-3
微信开发之模板消息发送
第一步:申请公众号测试接口 第二步:添加测试用户 第三步:添加消息模板 代码:获取动态ACCESS_TOKEN (有效期7200) $appid='wxcfd6d103e4d5b35d'; $secret='60504239fe7597a9653b6272ae149369'; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret"; $token = getJson($url); $access = $token["access_token"]; print_r($token); print_r("\n"); 发送模板消息 一定要注意json格式 ,否则会返回POST数据格式不正确 $url ="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$access; $data1 = '{ "touser":"o4f0Wv5nRBQMCzZ1AsDlq_9OsOrU", "template_id":"HMnswJkdFHz_ZcINVzpuYE88PGMH20j4Rybr9BVfcjA", "url":"http://www.rainfly.cn", "data":{"frist":{"value":"提醒事件已经到了!","color":"#ff0000"}} }'; function send_post($url, $post_data) { $postdata = http_build_query($post_data); $options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type:application/x-www-form-urlencoded', 'content' => $post_data, 'timeout' => 15 * 60 // 超时时间(单位:s) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); //file_put_contents('access.json', $result); //print_r($result); //return $result; } send_post($url, $data1); 测试截图
2018年-1月-3日
6447 阅读
0 评论
微信开发
2017-12-22
Servlet学习笔记(一)
当用户调用一个 Servlet 时,就会创建一个 Servlet 实例,每一个用户请求都会产生一个新的线程,适当的时候移交给 doGet 或 doPost 方法。init() 方法简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期。 由于常驻内存继而创建新的进程会出现资源的同步互斥现象; Servlet: 同CGI程序 用来处理当前HTTP server交互数据 测试源码: web.xml 文件中 指明项目访问路径 servlet-pattren 打开Tomcat 通过多开多个浏览器进行访问查看全局变量i的数值 全局变量在多线程访问时不断改变 需要将多个线程访问的资源加上锁,现在这种做法是给Servlet对象加了一把锁,保证任何时候都只有一个线程在访问该Servlet对象里面的资源,这样就不存在线程安全问题了 synchronized (this) { //Java中每个对象都有一把锁,这里的this指的就是servlet对象 response.setContentType("text/html"); i++; String s=i+""; try { Thread.sleep(100); } catch (InterruptedException e) { // TODO: handle exception e.printStackTrace(); } response.getWriter().write(s); }
2017年-12月-22日
10658 阅读
0 评论
Java
2
3
4
5
6