蜘蛛网络爬虫
网络爬虫,百度,Google的网络爬虫技术,搜索域名时不再重复搜索
Lotus.Domino.Web编程资料大全,有demo
Lotus.Domino.Web编程资料大全,有demo
第1章 Domino Web开发综述 1
1.1 为什么使用Domino 1
1.2 Domino是怎样运行的 1
1.2.1 Domino与传统数据库的区别 1
1.2.2 Domino和Web 2
1.3 开发部件 2
1.4 其他工具 3
1.5 简单的Domino Web软件例子 10
参考信息 14
本章小结 14
第2章 使用表单 16
2.1 关于表单 16
2.2 在表单中使用公式 17
2.2.1 数组和多值域 18
2.2.2 公式的类型 18
2.2.3 例子:一个组合框域 20
2.2.4 例子:$$Return域的公式 22
2.3 在表单中使用Web元素 22
2.3.1 嵌入Web元素 22
2.3.2 创建特殊用途的模板表单 22
2.3.3 例子:在$$View Template Default
表单中嵌入导航器 23
2.3.4 例子:动态嵌入式导航器 24
2.4 在表单和表单对象中使用HTML属性 25
2.4.1 <META>标记的例子 26
2.4.2 例子:RTF文本域的属性 27
2.4.3 例子:cookie 27
2.5 使用表单操作按钮 28
2.6 使用热点 30
2.7 在表单内使用HTML 31
2.7.1 例子:单个类视图 31
2.7.2 例子:显示附属图形文件 36
2.7.3 例子:把文本域显示为文本区域 39
2.8 在表单中使用CGI变量 40
2.9 表单和搜索 42
2.9.1 定制视图搜索表单 43
2.9.2 例子:定制搜索界面 44
2.9.3 定制Site Search表单 47
2.9.4 定制Search Results表单 47
2.9.5 例子:对搜索结果表单的定制 48
2.10 定制表单提交按钮 49
2.11 使用隐藏域 49
2.12 把RTF文本显示为一个小应用程序 50
参考信息 51
本章小结 51
第3章 使用视图进行工作 54
3.1 关于视图 54
3.2 视图和Web 55
3.3 使用选择公式 56
3.4 使用视图列公式 57
3.5 使用表单公式 57
3.6 使用视图图标 58
3.7 创建视图操作按钮 59
3.8 使用单个类视图 60
3.9 在视图中使用HTML通用文本 62
3.9.1 改变行的格式 63
3.9.2 在视图中显示Java小应用程序和图像 63
3.9.3 HTML通用文本 64
3.9.4 改变视图连接的动作 66
3.9.5 控制视图连接的另外一种方式 68
3.9.6 例子:在视图中使用javaScript 68
3.10 在表单中使用视图 70
3.10.1 在表单中嵌入视图 70
3.10.2 创建视图模板 70
3.10.3 例子:使用表单在视图中添加
功能 71
3.10.4 例子:使用视图在表单中添加
功能 73
3.10.5 例子:创建多个类的视图 76
3.11 在小应用程序表单中显示一个视图 79
参考信息 80
本章小结 80
第4章 使用帧结构、大纲和其他设计
元素 82
4.1 简介 82
4.2 在帧结构中设计 82
4.2.1 帧的不利之处 83
4.2.2 使用帧结构集设计元素 84
4.2.3 使用<FRAMESET>标签 88
4.3 使用大纲 94
4.3.1 同时使用帧和大纲 95
4.3.2 显示大纲小程序 97
4.4 使用其他的设计元素 97
参考信息 101
本章小结 101
第5章 编写JavaScript 103
5.1 简介 103
5.2 开始编写JavaScript 104
5.3 把JavaScript添加到Domino的表单中 106
5.4 验证域:Expense Report表单 107
5.5 计算域的值:Expense Report表单(续) 109
5.6 显示域相关的帮助 110
5.7 控制帧的使用 112
5.8 填充动态列表框 114
5.9 例子:动态下载图像 117
5.10 例子:在一个滚动按钮中预先下载
图片 119
5.11 例子:显示对话框 121
5.11.1 Order Form表单 123
5.11.2 Select Parts表单 124
5.11.3 Read-Only Order Form表单 127
5.11.4 Orders视图 127
5.12 例子:操纵cookie 127
5.13 例子:ActiveX对象脚本 128
5.14 例子:Domino产生的JavaScript 133
参考信息 137
本章小结 138
第6章 编写LotusScript 139
6.1 简介 139
6.2 关于LotusScript Web代理 140
6.3 激活一个代理的URL 141
6.4 在LotusScript中编写WebQueryOpen
代理 142
6.4.1 简单的LotusScript WebQueryOpen
代理 142
6.4.2 查询数据库 144
6.5 在LotusScript中编写WebQuerySave
代理 146
6.5.1 简单的LotusScript WebQuerySave
代理 146
6.5.2 在表中显示ODBC搜索结果 147
6.6 在LotusScript代理中使用CGI变量 150
6.6.1 QUERY_STRING代理 150
6.6.2 HTTP_COOKIE代理 154
6.7 在基于Web的工作流中使用LotusScript 157
6.8 在LotusScript代理中使用小应用程序 161
参考信息 170
本章小结 170
第7章 Java应用程序 171
7.1 使用Java语言 171
7.2 Domino 4.6及以上版本的Java应用程序 172
7.2.1 例子:SendMemo.java 173
7.2.2 例子:SendMemo2.java 175
7.2.3 Java接口 175
7.2.4 例子:SendMemo3.java 176
7.2.5 使用GUI组件 177
7.2.6 例子:Send Memo4.java 177
7.2.7 多线程的例子:ListGroups应用
程序 179
7.3 Domino 5的Java应用程序 185
7.3.1 简单例子:CorbaApplication.java 186
7.3.2 GUI例子:CorbaApplication2.java 186
参考信息 189
本章小结 189
第8章 Java代理 190
8.1 简介 190
8.2 关于Java Agents 190
8.3 编写4.6版的Java代理程序 191
8.3.1 简单Java代理:Simple Agent.Java 191
8.3.2 多线程代理程序:NotesGuiAgent.
java 196
8.3.3 Java Web代理程序 199
8.4 在R5中编写Java代理 226
参考信息 230
本章小结 231
第9章 使用Java小应用程序 232
9.1 简介 232
9.2 Java小应用程序和Domino 233
9.3 简单例子:HelloUser.java 234
9.4 声音例子:AudioApplet.java 236
9.5 使用 LiveConnect:Java_JS.java 241
9.6 LiveConnect和标准的Domino小应用
程序 244
9.7 编写小应用程序更容易的方法:
Lotus BeanMachine 245
9.8 使用eSuite 247
9.8.1 什么是eSuite 247
9.8.2 eSuite和Domino 248
9.8.3 eSuite Workplace Desktop 248
9.8.4 eSuite小应用程序 249
9.8.5 应用功能的局限性 251
9.8.6 eSuite InfoCenter简介 252
9.8.7 eSuite Devpak 252
9.8.8 DevPak组件 253
9.9 InfoBus技术介绍 253
9.9.1 InfoBus例子 254
9.9.2 eSuite/InfoBus例子 255
参考信息 257
本章小结 258
第10章 编写CORBA小应用程序 259
10.1 简介 259
10.2 什么是CORBA 259
10.3 关于lotus.domino软件包 259
10.4 例子:Corba Text 1.java 260
10.5 例子:ResumeApplet.java 264
10.6 显示数据图表:SalesChartApplet.java 270
10.7 使用两种方式发送数据:
AgentControlPanel.java 274
10.8 CORBA小应用程序还不能实现的
功能 279
参考信息 280
本章小结 280
第11章 编写Java小服务程序 281
11.1 什么是小服务程序 281
11.2 为什么在Domino中使用小服务程序 281
11.3 启用小服务程序支持 282
11.4 编写小服务程序 283
11.4.1 简单的HTTP GET小服务程序:
StupidServlet 283
11.4.2 简单的HTTP POST小服务程序:
JDBCQueryServlet 284
11.4.3 使用链接缓冲区的JDBC小服务
程序 289
11.4.4 Cookie-Setting Servlet 293
11.4.5 小服务程序和Netes Java类 298
11.4.6 最后一点说明 299
参考信息 300
本章小结 300
常用后台管理模板,项目中常用的
后台模板 系统后台模板 常用后台
常用后台管理模板,项目中常用的
超级炫的图片浏览方式,js
超级炫的图片浏览方式,很炫的js
项目中常用的提示页,404、500等
项目中常用的提示页面大全,404、500等
javaweb数据写入到excel
部分代码的解读,domo里面包含jar
package excelManager;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
/**
* Jxl 的 Excel写数据器.
* @author chenlb 2007-10-29 上午10:39:31
*/
public class JxlExcelWriter {
/**
* @param datas 封装着Object[]的列表, 一般是String内容.
* @param title 每个sheet里的标题.
*/
public void writeExcel(OutputStream out, List datas, String[] title) {
if(datas == null) {
throw new IllegalArgumentException("写excel流需要List参数!");
}
try {
WritableWorkbook workbook = Workbook.createWorkbook(out);
WritableSheet ws = workbook.createSheet("sheet 1", 0);
int rowNum = 0; //要写的行
if(title != null) {
putRow(ws, 0, title);//压入标题
rowNum = 1;
}
for(int i=0; i<datas.size(); i++, rowNum++) {//写sheet
Object[] cells = (Object[]) datas.get(i);
putRow(ws, rowNum, cells); //压一行到sheet
}
workbook.write();
workbook.close(); //一定要关闭, 否则没有保存Excel
} catch (RowsExceededException e) {
System.out.println("jxl write RowsExceededException: "+e.getMessage());
} catch (WriteException e) {
System.out.println("jxl write WriteException: "+e.getMessage());
} catch (IOException e) {
System.out.println("jxl write file i/o exception!, cause by: "+e.getMessage());
}
}
private void putRow(WritableSheet ws, int rowNum, Object[] cells) throws RowsExceededException, WriteException {
for(int j=0; j<cells.length; j++) {//写一行
Label cell = new Label(j, rowNum, ""+cells[j]);
ws.addCell(cell);
}
}
public static void main(String[] args) {
List datas = new ArrayList();
String[] data = {"1", "chenlb"};
datas.add(data);
try {
OutputStream out = new FileOutputStream(new File("e://a.xls"));
JxlExcelWriter jxlExcelWriter = new JxlExcelWriter();
jxlExcelWriter.writeExcel(out, datas, new String[] {"Id", "name"});
out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
jbpm流程控制初学者容易接触的domo
jbpm流程控制初学者容易接触的domo
package com.sxdx.jbpm;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.zip.ZipInputStream;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
import junit.framework.TestCase;
public class JbpmTest extends TestCase{
public void testbushu() throws Exception{
//1.获取sessionFactory
JbpmConfiguration jbpmConfiguration=JbpmConfiguration.getInstance();
//2.获取session
JbpmContext jc=jbpmConfiguration.createJbpmContext();
//要把流程图转换成java对象
InputStream is=new FileInputStream("D://java_dianli//jbpm//src//leave//leave.zip");
ZipInputStream zis=new ZipInputStream(is);
ProcessDefinition pd=ProcessDefinition.parseParZipInputStream(zis);
//需要使用jc的方法吧pd持久到数据库中
jc.deployProcessDefinition(pd);
jc.close();
}
public void testgetinstance(){
//得到流程定义(在数据库)
JbpmConfiguration jbpmConfiguration=JbpmConfiguration.getInstance();
JbpmContext jc=jbpmConfiguration.createJbpmContext();
ProcessDefinition pd=jc.getGraphSession().findLatestProcessDefinition("qingjia");
//根据流程定义创建流程实例
ProcessInstance pi=pd.createProcessInstance();
jc.close();
}
public void testrun(){
//得到流程定义(在数据库)
JbpmConfiguration jbpmConfiguration=JbpmConfiguration.getInstance();
JbpmContext jc=jbpmConfiguration.createJbpmContext();
//还没开始走,看看我的令牌在哪里
ProcessInstance pi=jc.getProcessInstance(1);
Token token=pi.getRootToken();
String n1=token.getNode().getName();
System.out.println("当前走到了"+n1+"节点");
//令牌开始往下走
token.signal();
System.out.println("当前走到了"+token.getNode().getName()+"节点");
token.signal();
System.out.println("当前走到了"+token.getNode().getName()+"节点");
}
}
网页开发很炫的分页显示
网页开发很炫的分页显示,分页显示的常用方式
图片上传的几个domo,很适用与项目开发
里面是几个domo,单个文件上传的domo,还有多文件上传,多线程的上传,离线上传。 很适用
针对上传图片的属性操作(添加或修改属性图片)
针对上传图片的属性操作(添加或修改属性图片)
demo说明文档
一、功能简介
这是一个基于调用商品api中的taobao.item.propimg.upload(添加或修改属性图片)而做的一个demo,实现添加一张商品属性图片到iid指定的商品中的功能,要求有以下两点:
1.传入的iid所对应的商品必须属于当前会话的用户
2.图片的属性必须要是颜色的属性,这个在前台显示的时候需要和sku进行关联的
二、调用的api
1.taobao.item.get :得到单个商品信息
根据传入的商品iid,获得该商品的信息,demo里主要是为了获得该商品的颜色属性图片prop_img
2. taobao.item.update:更新商品信息
在给颜色属性图片定义别名,需对商品进行更新,使得别名定义有效
3.taobao.item.propimg.upload :添加或修改属性图片
对商品的属性图片进行修改或增加
4.taobao.itempropvalues.get:获取标准类目属性值
取得颜色类目的属性值以及对应的名称和别名,在显示属性图片的时候进行对应,demo只对颜色属性进行操作,故pid是1627207
5.taobao.item.sku.add :添加SKU
在增加属性图片时,为了使前台可以显示,所以需要添加sku
三、部署测试
1.将工程目录下的demo/webroot/demo.war放到tomcat的webapps目录下
2.启动tomcat
3.地址栏输入:http://localhost:8888/demo/index.jsp,出现主界面
4.测试账号:alipublic22
回调地址:http://localhost:8888/demo/getInfoServlet
商品iid:be6e0e66d4bf3ef8c324f725bd5ea25e
5.在沙箱环境,使用账号:alipublic22/taobao1234登录,找到商品名为诺基亚的商品,可以看到修改后的销售属性图片的显示。
20个开发人员非常有用的Java功能代码
向Java文件中添加文本
Updated: Thanks Simone for pointing to exception. I have
changed the code. BufferedWriter out = null; try
{ out = new BufferedWriter(new FileWriter(”
filename”, true)); out.write(”
aString”); } catch (IOException e) {
// error processing code } finally
{ if (out != null) {
out.close();
} }
BufferedWriter out = null;try {out = new BufferedWriter(new
FileWriter(”filename”, true));out.write(”aString”);} catch
(IOException e) {// error processing code} finally {if (out
!= null) {out.close();}}
3. 获取Java现在正调用的方法名
String methodName =
Thread.currentThread().getStackTrace()[1].getMethodName(); String methodName = Thread.currentThread().getStackTrace()[1].getMethodName
();
4. 在Java中将String型转换成Date型
java.util.Date =
java.text.DateFormat.getDateInstance().parse(date String); java.util.Date = java.text.DateFormat.getDateInstance().parse(date
String);or SimpleDateFormat format = new SimpleDateFormat( "dd.MM.yyyy"
); Date date = format.parse( myString ); SimpleDateFormat format = new SimpleDateFormat( "dd.MM.yyyy" );Date date
= format.parse( myString );
5. 通过Java JDBC链接Oracle数据库
public class OracleJdbcTest { String driverClass =
"oracle.jdbc.driver.OracleDriver"; Connection con; public void init
(FileInputStream fs) throws ClassNotFoundException,
SQLException, FileNotFoundException, IOException
{ Properties props = new Properties();
props.load(fs);
String url = props.getProperty
("db.url"); String
userName = props.getProperty("db.user");
String password = props.getProperty
("db.password"); Class.forName(driverClass); con=DriverManager.getConnection(url,
userName, password); } public void fetch() throws SQLException,
IOException {
PreparedStatement ps =
con.prepareStatement("select SYSDATE from dual");
ResultSet rs = ps.executeQuery
(); while
(rs.next()) {
// do the
thing you do }
rs.close();
ps.close();
} public
static void main(String[] args) {
OracleJdbcTest test = new
OracleJdbcTest(); test.init(); test.fetch
(); } }
B2C,电子商务网站,很有参考意义
B2C,电子商务网站,很有参考意义
B2C,电子商务网站,很有参考意义E-busi购物网项目说明书
1.运行环境
1.1数据库: mysql
1.2 服务器:tomcat
2.配置说明
2.1在mysql导入数据库ebusi,将数据库编码以及数据表编码设置为UTF-8。
2.2 将ebusi文件夹复制到系统任意位置。src为项目源码包。
2.3 打开tomcat 中 conf 文件夹下的 server.xml , 将项目包路径添加到到里面。
(例:<Context path="/ebusi" doBase="*\\ebusi\\webpage" reloadable="true"></Context>)
2.4 打开项目配置文件dbconn.properties,修改mysql用户名和密码。
2.5 启动tomcat。主页地址 http://localhost:8080/ebusi/index.jsp
管理入口: http://localhost:8080/ebusi/admin/adminlogin.jsp
超级管理员:【帐号】:admin 【密码】:admin
时间控件,个人喜欢用的js时间控件
js时间控件,用起来很方便!
Calendar = function (mondayFirst, dateStr, onSelected, onClose) {
// member variables
this.activeDiv = null;
this.currentDateEl = null;
this.checkDisabled = null;
this.timeout = null;
this.onSelected = onSelected || null;
this.onClose = onClose || null;
this.dragging = false;
this.hidden = false;
this.minYear = 1970;
this.maxYear = 2050;
this.dateFormat = Calendar._TT["DEF_DATE_FORMAT"];
this.ttDateFormat = Calendar._TT["TT_DATE_FORMAT"];
this.isPopup = true;
this.weekNumbers = false;//true;//不要当前周日期
this.mondayFirst = mondayFirst;
this.dateStr = dateStr;
this.ar_days = null;
// HTML elements
this.table = null;
this.element = null;
this.tbody = null;
this.firstdayname = null;
// Combo boxes
this.monthsCombo = null;
this.yearsCombo = null;
this.hilitedMonth = null;
this.activeMonth = null;
this.hilitedYear = null;
this.activeYear = null;
// Information
this.dateClicked = false;
// one-time initializations
if (!Calendar._DN3) {
// table of short day names
var ar = new Array();
for (var i = 8; i > 0;) {
ar[--i] = Calendar._DN[i].substr(0, 3);
}
Calendar._DN3 = ar;
// table of short month names
ar = new Array();
for (var i = 12; i > 0;) {
ar[--i] = Calendar._MN[i].substr(0, 3);
}
Calendar._MN3 = ar;
}
};
// ** constants
/// "static", needed for event handlers.
Calendar._C = null;
/// detect a special case of "web browser"
Calendar.is_ie = ( /msie/i.test(navigator.userAgent) &&
!/opera/i.test(navigator.userAgent) );
// short day names array (initialized at first constructor call)
Calendar._DN3 = null;
// short month names array (initialized at first constructor call)
Calendar._MN3 = null;
// BEGIN: UTILITY FUNCTIONS; beware that these might be moved into a separate
// library, at some point.
一个华丽的jquery图片轮播(可做广告的轮换)
一个华丽的jquery图片轮播! 切换时较快, 页面显示比较美观 ! 适用也web开发做动态的图片轮换效果。
javaweb做广告弹出窗口
做广告显示,弹出广告! 很适用的js块!
java程序员的取色器
简易版取色器 java程序员的取色器
仿百度输入框仿百度输入框
仿百度输入框仿百度输入框
javaweb转做Google地图开发,技术很简单
任何 Google 地图 API 应用程序中的基础元素都是“地图”本身。
大量应用js,访问Google 的API。
在此之前较为麻烦的事申请Google 的key,相比都知道,Google 在中国市场的地位,因此Google 的key较难申请,
.Google Maps API 申请方式变更在Google Maps API 的部份,官方网站目前是建议使用新版本(v3)的API 进行开发,若您仍希望继续使用v2 的版本进行开发,您可能需要进行部份设定的修改,底下是设定的流程:
1.使用Google帐号登入APIs Console (https://code.google.com/apis/console),并将Google Maps API v2的选项打开,如下图所示:
Google Maps API v2设置
2.依据您的需求产生对应的Google Maps API Key ,若您是要继续采用v2 版本的方式使用Google Maps API ,请选择「Create new Browser Key」,之后将产生的Key 依据过去的方式填入对应的位置即可
注意V2版本对应的选项
需要注意的是:
1.依目前观察,已经在使用中的Google Maps API Key 是可以继续使用,并不会因为产生Key 的方式改变而有所变更。
2.新的方式会统计并限制使用量(目前是限制每天25,000 次查询),若超过用量则需给付相关费用才可继续使用。
最近发现好多google的域名不能访问了!包括Android开发SDK都不能更新了!解决方法:
修改hosts文件
添加:
74.125.71.99 code.google.com
74.125.71.99 encrypted.google.com
74.125.71.99 suggestqueries.google.com
74.125.71.99 mail.google.com
74.125.71.99 groups.google.com
74.125.71.99 groups.google.com.hk
74.125.71.99 docs.google.com
74.125.71.99 docs0.google.com
74.125.71.99 docs1.google.com
74.125.71.99 spreadsheets.google.com
74.125.71.99 spreadsheets0.google.com
74.125.71.99 webcache.googleusercontent.com
74.125.71.99 sites.google.com
74.125.71.99 talkgadget.google.com
74.125.71.99 clients1.google.com
74.125.71.99 clients2.google.com
74.125.71.99 clients3.google.com
74.125.71.99 clients4.google.com
整个开发有些事情较做只可意会,不可言传,当然纯属的代码并不是最大的效益,需要文档的可以找我,工程部署不了的可以联系我。
email:lcyangmi@163.com
MSN:yummy@chinaclick.com.cn
javaweb 做图片水印,水印图片到目录图片上去
添加水印方法(水印图片,目标图片),添加在右下角(根据坐标显示)
针对网页图片添加水印,用java语言编写,很简单。
// 获取水印图片的路径
String planeImage = request.getSession().getServletContext().getRealPath("/image").replace("\\", "/")+"/"+"symark.png";
//获取目标图片的路径String targetPic = request.getSession().getServletContext().getRealPath("/image").replace("\\", "/")+"/"+ad.getId()+"."+ad.getExttype();
//给目标图片加水印,name为水印图片,targetPic为目标图片addWaterImg(planeImage,targetPic);
不清楚邮件至:lcyangmi@163.com
新浪应用开发:使用新浪微博API发一条微博
使用新浪微博API发一条微博
第一步:先下载安装配置了JAVA环境,然后下载myecplise10。
第二步:在新浪微博API网页找到并下载针对JAVA的SDK, http://code.google.com/p/weibo4j/
第三步:申请成为开发者,新建应用得到到APP_KEY。
第 四步:按照说明配置:在Config.properties里 client_ID :appkey 创建应用获取到的appkey client_SERCRET :app_secret 创建应用获取到的appsecret redirect_URI : 回调地址 OAuth2的回调地址
第五步:运行遇错(我没有配置回调地址):
报错如下:第三方错误
访问出错了!你所访问的站点在新浪微博的认证失败,请你联系开发者助手或者稍后再试。
(error:invalid_request)
问:这个回调地址,是不是需要独立的域名和空间呢?
答:不需要独立域名和空间,在本地可以用 http://127.0.0.1,但是必须配置好INTERNET信息服务
第六步:运行OAuth4Code.java得到code,输入code得到access token。
第七步:编写代码发微博。代码如下: