㈠ java中如何在类中判断客户端操作系统是32位的还是64位的操作系统
System.getProperty("os.arch");
可以通过数值判断
我的是64位的操作系统,返回值是:amd64
㈡ java判断设备是android还是ios
1、通常一个http请求会带上用户设备信息,这个信息被存储在请求头的use-agent里
2、可通过类似
StringuserAgent=request.getHeader("user-agent");
这样的方法获取到这个use-agent
use-agent字符串中的内容类似:
Mozilla/5.0(Linux;U;Android3.0;en-us;XoomBuild/HRI39)
AppleWebKit/534.13(KHTML,likeGecko)Version/4.0Safari/534.13
这些信息“足以”判断是安卓还是IOS。
㈢ java 导出文件并获取文件路径的问题
在ie6中对于<input type="file" />通过obj.value是可以获取客户端选择文件的全路径的,但是到ie7就只能获取文件名,这对于onchange事件立即显示图片会有问题,可以用js方法解决
具体代码如下:
<html>
<head>
<title>get file input full path</title>
<script language='javascript'>
function getFullPath(obj)
{
if(obj)
{
//ie
if (window.navigator.userAgent.indexOf("MSIE")>=1)
{
obj.select();
return document.selection.createRange().text;
}
//firefox
else if(window.navigator.userAgent.indexOf("Firefox")>=1)
{
if(obj.files)
{
return obj.files.item(0).getAsDataURL();
}
return obj.value;
}
return obj.value;
}
}
</script>
</head>
<body>
<input type="file" onchange="document.getElementById('img').src=getFullPath(this);" />
<img id="img" />
</body>
</html>
㈣ 如何用JAVA爬取AJAX加载后的页面
普通的爬取是抓不了js的之后的数据的 可以用phantomjs或者htmlUnit实现
附上phantomjs示列代码
package cn.wang.utils;
import java.util.Random;
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.CookieManager;
import com.gargoylesoftware.htmlunit.;
import com.gargoylesoftware.htmlunit.WebClient;
public class htmlUnitUtils {
static WebClient webClient = null;
static Random random = new Random();
static{
//1.创建对象
webClient = new WebClient(BrowserVersion.CHROME);
//2.设置参数
//启动js
webClient.getOptions().setJavaScriptEnabled(true);
//关闭css渲染
webClient.getOptions().setCssEnabled(false);
//启动重定向
webClient.getOptions().setRedirectEnabled(true);
//设置连接超时时间 ,这里是10S。如果为0,则无限期等待
webClient.getOptions().setTimeout(1000 * 15);
//启动cookie管理
webClient.setCookieManager(new CookieManager());
//启动ajax代理
webClient.setAjaxController(new ());
//js运行时错误,是否抛出异常
webClient.getOptions().(false);
//设置浏览器请求信息
webClient.addRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
webClient.addRequestHeader("Accept-Encoding", "gzip, deflate");
webClient.addRequestHeader("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");
webClient.addRequestHeader("Connection", "keep-alive");
webClient.addRequestHeader("Upgrade-Insecure-Requests", "1");
}
public static void runJs(String url){
try {
webClient.addRequestHeader("User-Agent", Constant.useragents[random.nextInt(Constant.useragents.length)]);
//等待js渲染执行 waitime等待时间(ms)
webClient.waitForBackgroundJavaScript(1000 * 10);
//3.获取页面
webClient.getPage(url);
} catch (Exception e) {
e.printStackTrace();
} finally {
if(webClient != null){
webClient.close();
}
}
}
public static void main(String[] args) {
runJs("http://www.gou.hk/");
System.setProperty("phantomjs.binary.path", "D:\\works\\tool\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe");
}
}
㈤ java 判断访问是pc还是移动端
以前收集的:
//js判断当前使用的系统
functiongetSystem(){
varos=(function(){
varUserAgent=navigator.userAgent.toLowerCase();
return{
isIpad:/ipad/.test(UserAgent),
isiphone:/iphoneos/.test(UserAgent),
isAndroid:/android/.test(UserAgent),
isWindowsCe:/windowsce/.test(UserAgent),
isWindowsMobile:/windowsmobile/.test(UserAgent),
isWin2K:/windowsnt5.0/.test(UserAgent),
isXP:/windowsnt5.1/.test(UserAgent),
isVista:/windowsnt6.0/.test(UserAgent),
isWin7:/windowsnt6.1/.test(UserAgent),
isWin8:/windowsnt6.2/.test(UserAgent),
isWin81:/windowsnt6.3/.test(UserAgent)
};
}());
if(os.isXP==true){
alert('您当前使用的是XP系统,为避免影响正常使用,建议更换谷歌浏览器访问。');
}
}
㈥ java web 如何防止 用户绕过js验证,直接地址栏提交表单或自己编写html页面,提交数据到服务器
一个简单的方法是,在用户获取html页面的时候,后台生成一个(MD5)字串(假设为k),并且返回给前专端。属
提交表单的时候,顺带也把这个k一起提交。
在处理提交的地方(后台),去校验这个k,看看是不是自己生成的。
如果用户伪造http请求,那么自然是不带k的,或者k是错误的。
还可以判断http请求头,比如UserAgent之类的,用于 辅 助 判断请求的合法性。
㈦ java 分析ua获取浏览器信息吗
1,从request里可以获取用抄户浏览器类型,
具体操作见例子:
Enumeration e = request.getHeaderNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = request.getHeader(name);
System.out.println(name + " = " + value);
}
这样可以遍历从客户端传来的所有头信息:
request.getHeaders("User-Agent");
获取User-Agent (客户端的类型,一般用来区分不同的浏览器)。
2,获取操作系统信息
操作系统信息 String osName = System.getProperty("os.name" );
操作系统版本 String osVersion=System.getProperty("os.version");