首先先写一个简单的web程序。学过一点javaweb的童鞋应该都接触过监听器一些基础知识。在ServletAPI中有一个ServletContextListener接口,它能够监听ServletContext对象的生命周期,实际上就是监听Web应用的生命周期。当Servlet容器启动或终止Web应用时,会触发ServletContextEvent事件,该事件由ServletContextListener来处理。在ServletContextListener接口中定义了处理ServletContextEvent事件的两个方法。一个是contextInitialized方法,一个是contextDestroyed方法。这里我们用到的就是contextInitialized的方法。这个方法即为在web容器,这里我使用的是tomcat。也就说,当tomcat启动的时候。这个方法就会给执行。在这个方法里我们就可以写上发邮件的相关内容。具体代码如下:
- publicvoidcontextInitialized(ServletContextEventarg0){
- System.out.println("init");
- SimpleMailsm=newSimpleMail();
- sm.setSubject("报告电脑所在位置");
- InetAddressinet=null;
- try{
- inet=InetAddress.getLocalHost();
- }catch(UnknownHostExceptione1){
- //TODOAuto-generatedcatchblock
- e1.printStackTrace();
- }
- Stringstr="当前登陆主机的ip="+inet.getHostAddress();
- //Stringstr=ReadHtmlFile.readFile("这里填写你需要发送的本地文件路径");
- sm.setContent(str);
- SimpleMailSendersms=newSimpleMailSender("xxx@qq.com",
- "csh8338281110");
- try{
- Thread.currentThread().sleep(1000);
- sms.send("xxx@163.com",sm);
- System.out.println("执行完成11!!");
- }catch(Exceptione){
- //e.printStackTrace();
- try{
- Thread.currentThread().sleep(1000*5);
- sms.send("bzu901@163.com",sm);
- }catch(Exceptione1){
- //TODOAuto-generatedcatchblock
- e1.printStackTrace();
- }
- }
- }
public void contextInitialized(ServletContextEvent arg0) {
System.out.println("init");
SimpleMail sm = new SimpleMail();
sm.setSubject("报告电脑所在位置");
InetAddress inet = null;
try {
inet = InetAddress.getLocalHost();
} catch (UnknownHostException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String str = "当前登陆主机的ip=" + inet.getHostAddress();
// String str = ReadHtmlFile.readFile("这里填写你需要发送的本地文件路径");
sm.setContent(str);
SimpleMailSender sms = new SimpleMailSender("xxx@qq.com",
"csh8338281110");
try {
Thread.currentThread().sleep(1000);
sms.send("xxx@163.com", sm);
System.out.println("执行完成11!!");
} catch (Exception e) {
// e.printStackTrace();
try {
Thread.currentThread().sleep(1000 * 5);
sms.send("bzu901@163.com", sm);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
写到这里并没有完事大吉,因为你这只是写好了程序,但是并没有设置好开机自动启动服务啊。因为我们这个程序只有在tomcat启动的时候才会被执行。所以,下一步我们还有设置tomcat开机自动启动。这里我主要说一下免安装版的tomcat自动启动设置,因为安装版的直接在服务程序中设置就可以了。
1、设置环境变量CATALINA_HOME,值为Tomcat安装目录:
![](https://img-my.csdn.net/uploads/201301/08/1357607496_9435.png)
2.找到tomcat中bin目录下的service.bat文件
打开此文件,在倒数第三行左右的那句输出
echoTheservice'%SERVICE_NAME%'hasbeeninstalled.
这句是输出服务安装成功,在这之前加一句
scconfig%SERVICE_NAME%start=auto
3、在Tomcat的bin目录下,打开cmd执行以下对应的命令:
service.batinstall
如果没有什么问题的话,你会看到如下界面
Ps:有的tomcat是阉割版的,没有service.bat这个文件。比如我的就是,那么你可以到网上去下载一个这个文件,或者直接在重新下载一个tomcat也行。
开机启动,查看邮箱:
![](https://img-my.csdn.net/uploads/201301/08/1357607528_3427.jpg)
这样,你把刚才写的那个简单的web程序发布到tomcat中。然后tomcat在开机自动启动的时候就会运行对应的程序代码,这样就可以给你的邮箱发送当前你的电脑的ip了。有了ip地址对于警方来说,抓小偷就是很轻松的事了。这里你还可以获得更多的相关信息。其他的信息你就可以随便添加了。
小小的ps:这种方法有很多的不足和未考虑的因素,仅供参考
大大大的ps:小偷不是苦逼的程序员的情况下有效