当前位置:首页 > 域名知识

java获取当前域名(java获取请求域名)

8678008682年前 (2024-04-28)域名知识

大家好,今天给各位分享java获取当前域名的一些知识,其中也会对java获取请求域名进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

java获取当前域名(java获取请求域名)java为什么会有跨域问题

前言

相信大家在写前端脚本的时候经常会遇到发送数据到后台的情况,但是由于浏览器的限制,不同域名之间的数据是不能互相访问的,那前端怎么和后端如何进行数据之间的交换呢?

JavaScript由于安全性方面的考虑,不允许页面跨域调用其他页面的对象,那么问题来了,什么是跨域问题?

答:这是由于浏览器同源策略的限制,现在所有支持JavaScript的浏览器都使用了这个策略。那么什么是同源呢?所谓的同源是指三个方面“相同”:

域名相同

协议相同

java获取当前域名(java获取请求域名)

端口相同

下面就举几个例子来帮助更好的理解同源策略。

URL

说明

是否允许通信

http://www.a.com/a.js

java获取当前域名(java获取请求域名)

http://www.a.com/b.js同一域名允许

http://www.a.com/a.js

http://www.b.com/a.js不同域名不允许

http://www.a.com:8000/a.js

http://www.a.com/b.js同一域名不同端口不允许

https://www.a.com/a.js

http://www.a.com/b.js同一域名不同协议不允许

在JAVA中处理跨域问题,通常有以下两种常用的解决方法。

第一种解决方法

后台代码在被请求的Servlet中添加Header设置:

response.setHeader("Access-Control-Allow-Origin","*");

PrintWriter out=null;

try

{

out= response.getWriter();

} catch(IOException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

out.print("{status:ok}");

out.flush();

out.close();

Access-Control-Allow-Origin这个Header在W3C标准里用来检查该跨域请求是否可以被通过,如果值为*则表明当前页面可以跨域访问。默认的情况下是不允许的。

在前端JS中需要向Servlet发出请求,请求代码如下所示:

$.ajax({

url:"your url",

type:"get or post",

dataType:"json",

data:{

....

},

success:function(data){

...

}

第二种解决方法

通过jsonp跨域请求的方式。JSONP和JSON虽然只有一个字母的区别,但是他们完全就是两回事,很多人很容易把他们搞混。JSON是一种数据交换的格式,而JSONP则是一种非官方跨域数据交互协议。

首先来说一下前端JS是怎么发送请求。代码如下所示:

$.ajax({

url:"your url",

type:"get or post",

async:false,

dataType:"jsonp",

//服务端用于接收callback调用的function名的参数

jsonp:"callbackparam",

//callback的function名称

jsonpCallback:"success_jsonpCallback",

success:function(data){

console.log(data);

},

error:function(data){

console.log(data);

}

});

这里的callbackparam和success_jsonpCallback可以理解为发送的data数据的键值对,可以自定义,但是callbackparam需要和后台约定好参数名称,因为后台需要获取到这个参数里面的值(即success_jsonpCallback)。

下面,最重要的来了,后台怎么样获取和返回数据呢。代码如下所示:

PrintWriter out=null;

String callback=req.getParameter("callbackparam");

String json=callback+"({status:ok})";

try

{

out= resp.getWriter();

} catch(IOException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

out.print(json);

out.flush();

out.close();

首先需要获取参数名为callbackparam的值,这里获取到的值就是“success_jsonpCallback”。然后将这个值加上一对小括号。小括号里放入你需要返回的数据内容,比如这里我返回一个JSON对象。当然你也可以返回其他对象,比如只返回一个字符串类型数据也可以。最后前端JS返回的数据就是这样的:

success_jsonpCallback({status:ok})

浏览器会自动解析为json对象,这时候你只需要在success回调函数中直接用data.status就可以了。

java获取请求域名

很多朋友都想知道java如何获取请求域名?下面就一起来了解一下吧~

1、获取协议名和域名。

request.getScheme(); //得到协议名 例如:http request.getServerName(); //得到域名 localhost

2、获取全路径。

request.getRequestURL(); //得到http://localhost:8888/CRM/loginController/login

3、获取请求所有参数//map类型。

request.getParameterMap()

4、获取项目名

request.getContextPath(); // /CRM

5、获取请求方法

request.getServletPath(); // /loginController/login

/**     * 获取当前访问URL (含协议、域名、端口号[忽略80端口]、项目名)     * @param request     * @return: String     */    public static String getServerUrl(HttpServletRequest request) {        // 访问协议        String agreement = request.getScheme();        // 访问域名        String serverName = request.getServerName();        // 访问端口号        int port = request.getServerPort();        // 访问项目名        String contextPath = request.getContextPath();        String url = "%s://%s%s%s";        String portStr = "";        if (port != 80) {            portStr += ":" + port;        }        return String.format(url, agreement, serverName, portStr, contextPath);    }

怎样用java编程得到二级域名

最简单的办法,写个爬虫,把百度首页设置为起点,然后执行以下步骤

1、建一个列表,把起始页URL添加进去

2、从列表中取出一个URL,并把页面抓下来

3、分析里面的<a>标签,把所有的href记下来

4、将同一个域的href记录下,比如*.baidu.*,并追加到列表中

5、重复第二步,直到列表中没有未访问过的URL为止

。。。

分析所有的href链接,然后找出所有的二级域名

java怎么获取本机的用户名或域

java怎么获取本机的用户名或域可通过System.getEnv()得到。

System.getenv("USERNAME");System.getenv("USERDOMAIN");

它常和System.getProperties()配合使用,它们的区别是:

从概念上讲,系统属性和环境变量都是名称与值之间的映射。两种机制都能用来将用户定义的信息传递给 Java进程。环境变量产生更多的全局效应,因为它们不仅对Java子进程可见,而且对于定义它们的进程的所有子进程都是可见的。在不同的操作系统上,它们的语义有细微的差别,比如,不区分大小写。因为这些原因,环境变量更可能有意料不到的副作用。最好在可能的地方使用系统属性。环境变量应该在需要全局效应的时候使用,或者在外部系统接口要求使用环境变量时使用(比如 PATH)。

Map<String, String> map= System.getenv();

String userName= map.get("USERNAME");//获取用户名

String computerName= map.get("COMPUTERNAME");//获取计算机名

String userDomain= map.get("USERDOMAIN");//获取计算机域名

System.out.println("自定义变量getenv CONF_LOCATION:"+System.getenv("conf.location"));

System.out.println("操作系统的名称:"+System.getProperty("os.name"));

其它常用的属性参数如下:

java.version Java运行时环境版本 java.vendor Java运行时环境供应商 java.vendor.url Java供应商的 URL java.home Java安装目录 java.vm.specification.version Java虚拟机规范版本 java.vm.specification.vendor Java虚拟机规范供应商 java.vm.specification.name Java虚拟机规范名称 java.vm.version Java虚拟机实现版本 java.vm.vendor Java虚拟机实现供应商 java.vm.name Java虚拟机实现名称 java.specification.version Java运行时环境规范版本 java.specification.vendor Java运行时环境规范供应商 java.specification.name Java运行时环境规范名称 java.class.version Java类格式版本号 java.class.path Java类路径 java.library.path加载库时搜索的路径列表 java.io.tmpdir默认的临时文件路径 java.compiler要使用的 JIT编译器的名称 java.ext.dirs一个或多个扩展目录的路径 os.name操作系统的名称 os.arch操作系统的架构 os.version操作系统的版本 file.separator文件分隔符(在 UNIX系统中是“/”) path.separator路径分隔符(在 UNIX系统中是“:”) line.separator行分隔符(在 UNIX系统中是“/n”) user.name用户的账户名称 user.home用户的主目录 user.dir用户的当前工作目录

java获取当前域名和java获取请求域名的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!

扫描二维码推送至手机访问。

版权声明:本文由爱名网发布,如需转载请注明出处。

本文链接:https://www.aiming.cc/index.php/post/3022.html

分享给朋友:

“java获取当前域名(java获取请求域名)” 的相关文章

域名查询工具 如何根据域名查询ip地址

域名查询工具 如何根据域名查询ip地址

各位老铁们,大家好,今天由我来为大家分享域名查询工具,以及如何根据域名查询ip地址的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!…

老域名交易 老域名怎么购买老域名有什么优势

老域名交易 老域名怎么购买老域名有什么优势

大家好,关于老域名交易很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于老域名怎么购买老域名有什么优势的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!…

网络域名注册(注册域名在哪里注册)

网络域名注册(注册域名在哪里注册)

今天给各位分享网络域名注册的知识,其中也会对注册域名在哪里注册进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!…

域名注册网,注册域名在哪里注册

域名注册网,注册域名在哪里注册

你是否对于域名注册网和注册域名在哪里注册感到困惑?别担心,今天小编将为您揭开这个谜团,让我们一同探索吧!…

四虎网站新域名,四虎影视域名变了

四虎网站新域名,四虎影视域名变了

很多朋友对于四虎网站新域名和四虎影视域名变了不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!…

香港域名注册商 在香港的域名注册商注册域名流程

香港域名注册商 在香港的域名注册商注册域名流程

老铁们,大家好,相信还有很多朋友对于香港域名注册商和在香港的域名注册商注册域名流程的相关问题不太懂,没关系,今天就由我来为大家分享分享香港域名注册商以及在香港的域名注册商注册域名流程的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!…