JSP调用标准DLL附全部代码
2008-03-29 21:01
453 查看
今天用Java做了一个引用DLL的小例子。就是在DLL中用MessageBoxW显示一行字,然后用Java调用。
做的DLL名字叫JNI.DLL,放在了Tomcat的bin里(因为在JSP的bean中取当前路径显示就是这里)。然后在index.jsp里写上 <%@ page contentType="html/text ; charset=utf-8" import="Doudya.jni.jc"%>
<%
jc j = new jc();
out.println(Integer.toString(j.msg()));
%>
然后浏览,结果Tomcat果然弹出一个MessageBox……
正如我所预料的,JNI果然可以在JSP上使用。
这样一来就证明JSP可以调用标准DLL了,在服务器上的鼠标位置信息,屏蔽服务器上键盘和鼠标消息,用APi挂接Tomcat监视输入输出就都可以做到了。还可以做个监视服务器流量,在加载下一个网页的时候在当前页上显示真正的页面进度通通可以做到。
我也可以好好学C++了,用C++来做JSP的感觉一定很好啦。
又一个新的开始……
下面是全部代码。
所用到的工具有 Microsoft Vistual Studio 2008,Tomcat 1.6.16,JDK 1.6.04,EditPlus 3.00哈哈。
index.jsp*********************
<%@page contentType="text/html; charset=utf-8" import="Doudya.jni.jc"%>
<%
jc j = new jc();
out.println(Integer.toString(j.msg()));
%>
JNI.cpp***********************
#include <windows.h>
#include "E://website//Doudya_jni_jc.h"
extern "C" JNIEXPORT jint JNICALL Java_Doudya_jni_jc_msg(JNIEnv* env,jobject jo){
wchar_t n[256];
jint k = 1987;
MessageBoxW(NULL,(_itow(k,n,10)),L"Java Native Interface Learnning",0);
return k;
}
jc.java***************************(javac -d E:/website/web/WEB-INF/classes jc.java -Xlint)
package Doudya.jni;
public class jc{
public native int msg();
public jc(){
System.loadLibrary("JNI");
}
public static void main(String[] args){
jc j = new jc();
int k = j.msg();
System.out.println("C++ return " + Integer.toString(k) + "/t you can smile");
}
}
Doudya_jni_jc.h***************************(javah Doudya.jni.jc)
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class Doudya_jni_jc */
#ifndef _Included_Doudya_jni_jc
#define _Included_Doudya_jni_jc
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: Doudya_jni_jc
* Method: msg
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_Doudya_jni_jc_msg
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
做的DLL名字叫JNI.DLL,放在了Tomcat的bin里(因为在JSP的bean中取当前路径显示就是这里)。然后在index.jsp里写上 <%@ page contentType="html/text ; charset=utf-8" import="Doudya.jni.jc"%>
<%
jc j = new jc();
out.println(Integer.toString(j.msg()));
%>
然后浏览,结果Tomcat果然弹出一个MessageBox……
正如我所预料的,JNI果然可以在JSP上使用。
这样一来就证明JSP可以调用标准DLL了,在服务器上的鼠标位置信息,屏蔽服务器上键盘和鼠标消息,用APi挂接Tomcat监视输入输出就都可以做到了。还可以做个监视服务器流量,在加载下一个网页的时候在当前页上显示真正的页面进度通通可以做到。
我也可以好好学C++了,用C++来做JSP的感觉一定很好啦。
又一个新的开始……
下面是全部代码。
所用到的工具有 Microsoft Vistual Studio 2008,Tomcat 1.6.16,JDK 1.6.04,EditPlus 3.00哈哈。
index.jsp*********************
<%@page contentType="text/html; charset=utf-8" import="Doudya.jni.jc"%>
<%
jc j = new jc();
out.println(Integer.toString(j.msg()));
%>
JNI.cpp***********************
#include <windows.h>
#include "E://website//Doudya_jni_jc.h"
extern "C" JNIEXPORT jint JNICALL Java_Doudya_jni_jc_msg(JNIEnv* env,jobject jo){
wchar_t n[256];
jint k = 1987;
MessageBoxW(NULL,(_itow(k,n,10)),L"Java Native Interface Learnning",0);
return k;
}
jc.java***************************(javac -d E:/website/web/WEB-INF/classes jc.java -Xlint)
package Doudya.jni;
public class jc{
public native int msg();
public jc(){
System.loadLibrary("JNI");
}
public static void main(String[] args){
jc j = new jc();
int k = j.msg();
System.out.println("C++ return " + Integer.toString(k) + "/t you can smile");
}
}
Doudya_jni_jc.h***************************(javah Doudya.jni.jc)
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class Doudya_jni_jc */
#ifndef _Included_Doudya_jni_jc
#define _Included_Doudya_jni_jc
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: Doudya_jni_jc
* Method: msg
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_Doudya_jni_jc_msg
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
相关文章推荐
- win7下修改注册表问题 模块"jscript.dll"已加载,但对DllRegisterServer的调用失败,错误代码为0x80004005 我是WIN7
- VS2008 C++ 调用托管C++dll 当前不会命中断点,没有与此关联的代码
- jsp页面:js方法里嵌套java代码(是操作数据库的),如果这个js 方法没被调用,当jsp页面被解析的时候,不管这个js方法有没有被调用这段java代码都会被执行?
- 模块"xxxx.dll"已加载,但对DllRegisterServer的调用失败,错误代码为 XXXXXXXXX
- “对DllRegisterServer的调用失败,错误代码为0×80070005 ”
- 对DllRegisterServer的调用失败,错误代码为0x80070005
- DllRegisterServer的调用失败,错误代码为0x80040200 (vista、Win7手动注册ocx dll问题)
- php调用dll的实例操作动画与代码分享
- vs 2010调用matlab dll显示窗口核心代码
- Jsp中调用DLL(使用JNI)
- Win7/Win8中注册控件失败,提示“DllRegisterServer的调用失败,错误代码为0x******** ” 问题的解决办法
- 但对DllRegisterServer的调用失败,错误代码为0x80004005
- vs2008 C++创建和调用标准DLL
- JSP中如何调用dll
- JNA:JAVA调用DLL 超详细代码实战
- 11 jsp脚本调用java代码
- mini学生管理系统。。。全部代码,4个java文件放在同一个包下面即可。用JDBC调用数据库取出数据。
- c# 代码调用c++生成的dll过程
- vs2012 调用外部代码问题 打开项目一直加载外部dll是程序中断!!