Java代理程序实现web方式管理邮件组成员

简介:

说到java大家并不陌生,java对于开发人员来说基础最早的开发语言之一,也是应用最多的,同时我们也知道,domino跟java是完美结合,domino可以根据自己的需求能优化很多功能级应用,同时我们介绍一下,通过B/S方式管理邮件组成员,添加程序后,如果添加的人员不在domino目录下,在保存的时候会在控制台输出,方便查找邮件投递故障。具体见下:

1.我们首先创建用户

clip_image002

创建邮件组,并且在邮件组内添加人员。

clip_image004

我们将user01、user02添加到group-01组内。

clip_image006


编辑好代理程序后,我们需要创建表单

clip_image008


然后

clip_image010

确认完以上信息后,接下来我们创建代理程序,在此我们通过java程序来实现。

为了保证不影响应用系统,建议创新新的数据库来新建表单及代理程序。

然后用desinger打开该数据库

clip_image012

编辑代理程序

clip_image014

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import lotus.domino.*;
import java.io.PrintWriter;
import java.util.Vector;
import java.lang.StringBuffer;
public  class  JavaAgent extends AgentBase {
public  void  NotesMain() {
try  {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Document note=agentContext.getDocumentContext();
String querystring=note.getItemValueString( "query_string" );
String[] queryArray=querystring.split( "&" );
querystring=queryArray[1].split( "=" )[1];
System.out.println( "请求内容是:" +querystring);
Database db=session.getDatabase(agentContext.getCurrentDatabase().getServer(),  "names.nsf" );
if (db.isOpen()){
}
View personview=db.getView( "_People" );
View groupview=db.getView( "Groups" );
Document doc=groupview.getFirstDocument();
Document tempdoc=null;
Document persondoc=null;
StringBuffer sb= new  StringBuffer();
while (doc!=null){
tempdoc=doc;
if (doc.getItemValueString( "ListName" ).equals(querystring)){
doc.appendItemValue( "CN=Gavin/O=gavi000" );
doc.save();
Vector v=session.evaluate( "@name([ABBREVIATE];members)" ,doc);
/*
for(int i=0;i<v.size();i++){
persondoc=personview.getDocumentByKey(v.get(i),true);
if(persondoc==null){
//MsgBox tempdoc.ListName(0) &"组下的"& key2(1) &"不在domino列表里!"
System.out.println(doc.getItemValueString("ListName")+"组下的"+v.get(i)+"不在domino列表里!");
}else{
}
}*/
if (v.size()>0){
for ( int  i=0;i<v.size()-1;i++){
sb.append(v.get(i)+ "," );
}
sb.append(v.get(v.size()-1));
}
break ;
}
doc=groupview.getNextDocument(doc);
tempdoc.recycle();
}
PrintWriter pw = getAgentOutput();
pw.println( "Content-Type:text/plain;charset=gbk" );
pw.println(sb.toString());
// (Your code goes here)
catch (Exception e) {
e.printStackTrace();
}
}
}

首先我们要通过web去访问的话,先要创建表单及内部自定义的信息

新建名称为web_group的表单

定义显示主题,因为我们主题需要在页面居中,所以应用到了center参数,

<center>显示内容</center>

编辑好,显示内容将在也面的中间显示;

接着定义需要搜索的的邮件组输入框---域值,然后显示邮件组成员的maillist,及搜索键、保存键盘

clip_image016

Maillist定义文本及文本框的大小

clip_image018

文本需要换行来输入信息,可根据自己的需求来定义

clip_image020

定义搜索键的参数

clip_image022


1
2
3
4
5
6
7
8
9
10
11
xmlhttp=createXMLHttpRequest();
if (xmlhttp){
xmlhttp.open( "GET" , "javajson?openagent&query=" +document.forms[0].Mailgroup.value+ "&t=" +Math.random(), true );
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.forms[0].Maillist.value=xmlhttp.responseText.replace(/,/g, "\r\n" );
}
}
xmlhttp.send();
} else
alert( "xmlhttp no found" );


clip_image024


1
2
3
4
5
function  createXMLHttpRequest(){
//var h=new ActiveXObject("Msxml2.XMLHTTP");
var  h =  new  XMLHttpRequest();
return  h;
}

clip_image026

Document forms[0].submit();

接下来我们访问

clip_image028


clip_image030


clip_image032


clip_image034

接下来我们添加用户,然后如果添加的用户不在domino目录下保存,就会在控制台提示

clip_image036

clip_image038



本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1401225,如需转载请自行联系原作者

相关文章
|
3天前
|
Kubernetes Java 持续交付
小团队 CI/CD 实践:无需运维,Java Web应用的自动化部署
本文介绍如何使用GitHub Actions和阿里云Kubernetes(ACK)实现Java Web应用的自动化部署。通过CI/CD流程,开发人员无需手动处理复杂的运维任务,从而提高效率并减少错误。文中详细讲解了Docker与Kubernetes的概念,并演示了从创建Kubernetes集群、配置容器镜像服务到设置GitHub仓库Secrets及编写GitHub Actions工作流的具体步骤。最终实现了代码提交后自动构建、推送镜像并部署到Kubernetes集群的功能。整个过程不仅简化了部署流程,还确保了应用在不同环境中的稳定运行。
31 9
|
1月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
67 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
2月前
|
监控 前端开发 JavaScript
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
34 6
|
2月前
|
JSON Java 程序员
Java|如何用一个统一结构接收成员名称不固定的数据
本文介绍了一种 Java 中如何用一个统一结构接收成员名称不固定的数据的方法。
34 3
|
2月前
|
SQL 安全 Java
Java 异常处理:筑牢程序稳定性的 “安全网”
本文深入探讨Java异常处理,涵盖异常的基础分类、处理机制及最佳实践。从`Error`与`Exception`的区分,到`try-catch-finally`和`throws`的运用,再到自定义异常的设计,全面解析如何有效管理程序中的异常情况,提升代码的健壮性和可维护性。通过实例代码,帮助开发者掌握异常处理技巧,确保程序稳定运行。
53 1
|
2月前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
|
2月前
|
IDE Java 编译器
开发 Java 程序一定要安装 JDK 吗
开发Java程序通常需要安装JDK(Java Development Kit),因为它包含了编译、运行和调试Java程序所需的各种工具和环境。不过,某些集成开发环境(IDE)可能内置了JDK,或可使用在线Java编辑器,无需单独安装。
94 1
|
2月前
|
Java Maven Spring
Java Web 应用中,资源文件的位置和加载方式
在Java Web应用中,资源文件如配置文件、静态文件等通常放置在特定目录下,如WEB-INF或classes。通过类加载器或Servlet上下文路径可实现资源的加载与访问。正确管理资源位置与加载方式对应用的稳定性和可维护性至关重要。
67 6
|
2月前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
91 4
|
2月前
|
数据可视化 数据库 开发者
使用Dash构建交互式Web应用程序
【10月更文挑战第16天】本文介绍了使用Python的Dash框架构建交互式Web应用程序的方法。Dash结合了Flask、React和Plotly等技术,让开发者能够快速创建功能丰富的数据可视化应用。文章从安装Dash开始,逐步介绍了创建简单应用程序、添加交互元素、部署应用程序以及集成更多功能的步骤,并提供了代码示例。通过本文,读者可以掌握使用Dash构建交互式Web应用程序的基本技巧和高级功能。
92 3