- 浏览: 74308 次
- 性别:
- 来自: 北京
最新评论
-
fengqingyebai:
感谢分享谢谢
Mina自定义协议-实现数据交互 -
u010552708:
slf4j老报错,最后直接在浏览器里测的
Mina入门 -
simple1024:
muscle1990 写道呃,import com.marke ...
使用Jsoup抓取百度的android apk -
muscle1990:
呃,import com.market.model.AppTe ...
使用Jsoup抓取百度的android apk -
zxingchao2005:
用jsoup解析html功能相当方便,值得推荐
使用Jsoup抓取百度的android apk
文章列表
http://as.baidu.com/a/asgame?cid=102&s=1
此链接为百度安卓应用的页面
分析页面源码,写出适当的程序来获取想要的内容。(百度的页面写的非常规则,喜欢看这种页面)
把内容入库,再通过编写down方法。。。。后面的就不说了。
主要是对Jsoup的学习。
下面是已经试验过的例子:
准确率90%+
需要导入的包:jsoup-1.7.1.jar
package com.test;
import java.io.IOException;
import java.util.LinkedL ...
本文主要现实mina的自定义协议,并且实现服务器和客户端的简单数据交互。
"mina协议的自定义"可参考本博Mina相关文章。
正题,所需要的基础类:
抽象协议类
请求协议
响应协议
(需要定制自己的协议格式)
协议编码解码工厂
协议编码
协议解码
客户端
客户端Handler
服务器
服务器
请求协议格式
req{
short tag;// 16位,0x0001
int length;// 32位,从下一字节开始至末尾的数据长度即数据区长度(后面会提到数据区)
short channelId;// 16位,频道id
byte channelDes;// 8位,频道信息说明(类似说明信息的长度)
for(i=0;i<challelDes;i++){
byte_data;// 8位
}
}
【说明】
tag:请求的唯一标识符,2字节
length:数据区长度,4字节
channelId:2字节
ch ...
针对某一用户聊天,即针对某一浏览器,某一个ScriptSession发送消息,
而ScriptSession是会随着页面的刷新而不断改变的,HttpSession却不会,HttpSession会在第一次访问的时候创建,然后持续下去。
dwr中发送消息是通过ScriptSession来指定发送给谁,如果是群发,则获得test.jsp页面的所有ScriptSession即可
所以我们要确定发给谁,就要知道“哪个页面对应哪个ScriptSession”
我们可以用这样的一个Map<HtteSessionID,ScriptSession>来对Script ...
解决办法:
哪一个页面弹出了关闭服务器错误,可以在其body中,加入一行js代码:dwr.engine.setErrorHandler(function(){});
如:
<body onLoad="dwr.engine.setActiveReverseAjax(true);dwr.engine.setErrorHandler(function(){});">
1、关于ScriptSession
ScriptSession不会与HttpSession同时创建
当我们访问一个页面的时候,如果是第一次访问,会创建一个新的HttpSession,之后再访问的时候,就会保持当前的HttpSession,即使是刷新,也能保持当前的HttpSession。
ScriptSession则不同,第一次访问,会创建一个新的ScriptSession,但是,如果你刷新,就会再创建一个新的ScriptSession. 跟第一次的ScriptSession完全不一样。
2、如何得到ScriptSession
在DWR中,我们可以通过WebC ...
Hibernate工作原理:
读取并解析配置文件
读取并解析映射文件
创建sessionFactory
打开session
创建事务
持久化操作
提交事务
关闭session
关闭sessionFactory
为什么要用:
对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作
hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。
hibernate的性能非常好,因为它是个轻量级框架。 ...
项目用到这玩意,像样的API都是英文的,英文不好,所以经过各种搜集,flexigrid就整理了这么多用得上的东西,用不上的没有整理进来。
flexigrid参数说明:
height: 200, //flexigrid插件的高度,单位为px
width: 'auto', //宽 ...
spring定时器用Annotation实现
由于项目中需要定时更新一些数据,所以用到了spring的定时器,在使用Quartz过程中,遇到了一些麻烦,最终牵扯的错误太多:
1、我的一个Service类中需要加入定时执行即Service extends QuartzJobBean,但是 ...
由于项目需求,所以近期开始学习HQL。
先介绍一下HQL吧,摘自百科:
Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query
Language)查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖
Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装。
HQL学习笔记:
1、
一次检索多个属性:
List list = session.createQuery("select us ...
package test;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.exception.B ...
在Eclipse中使用调试程序最基本的操作是:
1.首先在一个java文件中设断点,然后debug as-->open debug Dialog,然后在对话框中选类后--> Run 当程序走到断点处就会转到debug视图下。
2.F5键与F6键均为单步调试,F5是step into,也就是进入本行代码中执行,F6是step over,也就是执行本行代码,跳到下一行,
3.F7是跳出函数
4.F8是执行到最后。
快捷键的详细介绍:
1.Step Into (also F5) 跳入
2.S ...
服务器---客户端互相响应
简单的小例子,理解MINA是怎么工作的。
需要导入的包:
mina-core-2.00-M1.jar;
log4j-over-slf4j-1.5.0.jar;
slf4j-nop-1.5.0.jar
MINA服务器端代码
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;
//负责处理连接上来的客户机,即消息处理器
public class MinaServerH ...
Refactor
重构和单元测试是程序员的两大法宝,他们的作用就像空气和水对于人一样,平凡,不起眼,但是意义深重。预善事,必先利器,本文就介绍怎样在Eclipse中进行重构。
本文介绍了Eclipse支持的重构种类,它们的含义,以及怎样重构。本文同时也可以作为学习重构知识的快速手册。
1、什么是重构?
重构是指在保持程序的全部功能的基础上改变程序结构的过程。重构的类型有很多,如更改类名,改变方法名,或者提取代码到方法中。每一次重构,都要执行一系列的步骤,这些步骤要保证代码和原代码相一致。
2、为什么重构很重要?
手工重构时,很容易在代码中引入 ...
《PL/SQL编程》
/*procedural language/sql*/--1、过程、函数、触发器是pl/sql编写的--2、过程、函数、触发器是在oracle中的--3、pl/sql是非常强大的数据库过程语言--4、过程、函数可以在java程序中调用
--提高效率:优化sql语句或写存储过程--pl/sql移植性不好
--IDE(Integration Develop Environment)集成开发环境
--命令规则:--变量(variable) v_--常量(constant) ...