
1.Java如何实现网页程序自动登录
之前,也考虑过使用单点登录,几经尝试之后还是放弃了。
我习惯使用Java,本能地开始寻找Java的解决方法,在Google中输入"Java自动登录"、"Java网页模拟登录"、"JavaPost登录",结果倒是不少,内容也差不多,我尝试很多次终究也没有达到我预期的目标。后来,我都不知道这些代码应该在jsp页面中执行还是在c/s结构的程序中执行。但这些代码确实管用。 我们先分析一下代码: URLurl=newURL(surl); URLConnectionconn=url.openConnection(); conn.setDoOutput(true); OutputStreamWriterout=newOutputStreamWriter(conn.getOutputStream()); Stringstr="username=yourname&password=123456"; out.write(str); out.flush(); out.close(); 到这里,如果在C/S结构中,且参数正确,程序能够成功登录到这个oa系统,要看到结果,你可以通过下面的代码将系统服务器返回的结果System.out.println()出来。 Stringsling=""; Stringscontent=""; BufferedReaderin=newBufferedReader(newInputStreamReader(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("\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("\r\n"); 原理很简单,通过login.jsp将登录页面的全部源代码写在当前页面,然后使用javascript脚本将用户名和密码的值填充上,最后提交表单。这样中,终于实现了自动登录的目标。现在我通过一个特殊的网址,就可以自动访问这个oa了。 你可能注意到参数url,他的值是经过加密的,内容是用户名和密码。当然,你也可以加上有效期,即在有效期内这个链接才是有效的,才可以实现自动登录。
2.java web后台开发跟手机APP后台开发有什么不同
基本上一样的,ssh也可以为手机APP开发后台。其实对于后台开发来说原理都差不多。只不过app的后台开发和web不一样的地方在于传输数据格式不一样,一般来说web访问后返回的是一个html页面,少部分是json格式;而一般app的后台开发大部分直接传json格式数据(也有不是json格式的,看项目的选择,但一般来说都是json),少部分会直接返回html5的页面。
还有一个不同点在于登录验证和数据加密,一般web是使用session验证登录状态,而app则使用token来验证登录状态(token是自己定义的一个和用户ID相关的加密字符串,传入后台后从数据库查询用户信息)。还有如果对安全性要求较高,app传输数据时可能会对数据进行加密,而web一般没有这一步,web的加密一般是使用https。
至于说android和ios的开发环境不一样那是指的app开发,和后台无关。app的后台和java web的后台没有本质区别。app的一个后台可以即提供给android,也可以同时提供给iOS,它就是把app提交的数据处理后插入数据库和从数据库查出数据处理后传给app
3.java WEB前台和后台一般怎么交互
如果用框架,比如struts2,springmvc的话,你不用担心,框架会提供方法或是其他的什么帮你获取页面中传过来的数据,比如Struts2可以通过在action中声明属性的方式,框架会自动将页面中相同属性的值通过反射设置进属性中,如果是springmvc,可在你的方法上声明一个变量当然要和页面中的名称一致,帮你注入,或是通过HttpServletRequest的getParameter(String)方法获取请求中传入的属性名称的值.如果是通过Ajax的方式他只负责传值,而具体怎么取值还得看你用的什么框架或是直接用的servlet.这个就视情况而定了.。
转载请注明出处51数据库 » javaweb输入mobile后台自动
小狐仙Bobi