java如何在jframe窗口上加一个链接,打开一个网页
直接定义一个Desktop 对象即可。
举例:
Desktop desk=Desktop.getDesktop();
URI path=new URI(“”);
desk.browse(path);
以上代码只要被调用就会出现一个窗口打开搜狗首页。
java程序模拟网页点击某个按钮
如果要登录的话直接post数据就行,具体可以百度 java模拟登录。
JAVA语句中怎么实现电脑开机时自动打开浏览器的网站?
我来梳理思路并给你讲下逻辑和流程
Java想要实现电脑开机自动打开浏览器网站需要借助的是开机自启的EXE,Java自身是不可能绕开系统这一关的,Windows下的话必须要借助注册表一类的,实现开机自启EXE,然后通过EXE执行打开浏览器访问指定地址的网站。
思路明确后,我们需要的是一个成品的EXE
代码上我就不过多解释了,直接用下面的代码
Runtime.getRuntime().exec(“rundll32 url.dll,FileProtocolHandler “+url);
(就是通过默认浏览器直接打开指定网页)
编写好代码后开始减小体积,也就是删除不使用的类以及不使用的字符集编码
确认瘦身后依旧运行正常后,开始进行压缩,建议是用pack200,效果贼好
然后把程序打成jar包,然后在上层目录编写启动批处理
编写完成后测试程序能否正常启动,如果不行就检查下是不是少类了
然后把批处理编成EXE,QBFC比较好用,如果做安装包的话记得挂G模式,InnoSetup这里也可以耍一下
这个时候我们就获取到了一个安装脚本,然后我们要做的就是修改安装脚本的代码
在脚本中加上下面的一段
[Registry]
Root: HKLM; Subkey: “SOFTWARE/Microsoft/Windows/CurrentVersion/Run”; ValueType: string; ValueName: “程序名”; ValueData: “””{app}/main.exe”” “”{app}/jre/bin”””
直接使用这个时候的安装脚本和安装包就可以实现了
开机自动启动这个编写好的EXE,然后这个EXE就自动打开默认浏览器并访问指定网页了
如何用java模拟网页登入提交
我不得不使用好几个系统,都是B/S结构的,每次登录都需要输入用户名和密码,觉得非常麻烦,考虑到其他同事也会有这样的需求,不妨就写个自动登录的程序吧。之前,也考虑过使用单点登录,几经尝试之后还是放弃了。
我习惯使用Java,本能地开始寻找Java的解决方法,在Google中输入“Java自动登录”、“Java网页模拟登录”、“Java Post 登录”,结果倒是不少,内容也差不多,我尝试很多次终究也没有达到我预期的目标。后来,我都不知道这些代码应该在jsp页面中执行还是在c/s结构的程序中执行。但这些代码确实管用。
我们先分析一下代码,
%@ page import=”java.util.*” %
%@ page import=”java.io.*” %
%@ page import=”java.net.*” %
String surl = “”;
URL url = new URL(surl);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter out=new OutputStreamWriter(conn.getOutputStream());
String str = “username=yournamepassword=123456”;
out.write(str);
out.flush();
out.close();
到这里,如果在C/S结构中,且参数正确,程序能够成功登录到这个oa系统,要看到结果,你可以通过下面的代码将系统服务器返回的结果System.out.println()出来。
String sling = “”;
String scontent = “”;
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(),”UTF-8″));
while ((sling = in.readLine()) != null)
scontent += in + “\r\n”;
System.out.println(scontent);
在C/S结构下,可以到得到控制台输出了返回值,从返回内容里可以看出程序已经成功登录,但要是把这个网址浏览器打开,还是得重新登录,问题没有得到根本解决。如果只是恶意注册,到这里应该就达到目的了。
看样子C/S结构下不容易实现网页程序自动登录,除非你在C/S程序中内嵌一个浏览器,直接在这个浏览器中自动访问系统,应该没有别的方法,主要问题在于我们没有办法共享Session。
为了便于共享Session,我们只能在浏览器中实现网页自动登录,通过上面的代码在jsp页面中测试,达不到预期目标。
网页自动登录,就是希望程序自动填充用户名和密码,然后以Post方式提交给登录页面的Form所指向的action页面或方法。我将系统的登录页面的源代码保存成一个网页,然后在username和password文本框中设置默认值,然后通过这网页登录系统,测试后,发现可行。接下来,你可能已经想到了解决方法。
我们可以通过url.openConnection()建立连接,将返回的scontent打印出来,然后接着打印以下代码:
out.println(“script type=”text/javascript”\r\n”);
out.println(“document.getElementsByName(“username”)[0].value=yourname;\r\n”);
out.println(“document.getElementsByName(“password”)[0].value=123456;\r\n”);
out.println(“document.forms[0].submit();\r\n”);
out.println(“/script\r\n”);
原理很简单,通过login.jsp将登录页面的全部源代码写在当前页面,然后使用javascript脚本将用户名和密码的值填充上,最后提交表单。这样中,终于实现了自动登录的目标。现在我通过一个特殊的网址,例如,就可以自动访问这个oa了。
你可能注意到参数url,他的值是经过加密的,内容是用户名和密码。当然,你也可以加上有效期,即在有效期内这个链接才是有效的,才可以实现自动登录。