java中要如何解决跨域?异常类有哪些?

BSO 2020-12-04 11:37:28 java常见问答 8656

在我们掌握了java的知识之后,往往就需要靠它去找更好的工作了。在面试的时候经常会碰到很多的问题,涉及到了各个知识点,所以我们要尽可能地提前掌握。今天就来了解一下在java中如何解决跨域吧。

首先说一下,java中要如何解决跨域

跨域问题,是由于javascript出于安全方面的考虑,不允许跨域调用其他页面的对象。换句话说,只有JavaScript存在跨域问题。

详细说明一下:

http://blog.720ui.com和http://docs.720ui.com,是不同的二级域名,存在跨域问题。

http://blog.720ui.com和https://blog.720ui.com , 是不同的协议,存在跨域问题

http://blog.720ui.com和http://blog.720ui.com:4000 , 是不同的端口号,存在跨域问题。

http://blog.720ui.com/java/和http://blog.720ui.com/about/, 虽然文件夹不同,但是是相同域名下,所以不存在跨域问题。

那么,如何去解决跨域问题呢

1.CORS全称为Cross Origin Resource Sharing(跨域资源共享)浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,但用户不会有感觉。因此,实现CORS通信的关键是服务端。服务端只需添加相关响应头信息,即可实现客户端发出AJAX跨域请求。 值得注意的是,浏览器必须先以OPTIONS请求方式发送一个预请求,从而获知服务器端对跨源请求所支持HTTP方法。不幸的是,CORS不支持IE8、IE9.

2.搭建中间转发层

跨域问题的核心是什么?不同源访问。是啊,如果我们转换成同源请求,就不存在这个问题了。 通过将服务端的请求进行转发。

3.Nginx反向代理(常用)

首先,产品需要搭建一个中转nginx服务器,用于转发请求。当然,我们都是基于Nginx作为反向代理,所以当然是水到渠成。

那么,Nginx的思路,就是通过Nginx解析URL地址的时候进行判断,将请求转发的具体的服务器上。

那么,常见的异常类有哪些?

NullPointerException空指针异常

ClassNotFoundException指定类不存在

NumberFormatException字符串转换为数字异常

IndexOutOfBoundsException数组下标越界异常

ClassCastException数据类型转换异常

FileNotFoundException文件未找到异常

NoSuchMethodException方法不存在异常

IOException IO异常

SocketException Socket异常

最后为大家补充一下,TreeSet,TreeMap,HashSet的区别

TreeSet底层就是一个TreeMap,但是Value值为一个虚拟值,实现了Set接口。

TreeMap的实现就是红黑树数据结构,也就说是一棵自平衡的排序二叉树。TreeSet里绝大部分方法都是直接调用TreeMap的方法来实现的。内部维持了一个简化版的TreeMap, TreeSet内部需要对存储的元素进行排序,需要将该类继承comparable并重写compareTo方法(TreeMap对key进行升序排列)

treeset和hashset的区别

HashSet和TreeSet的区别就是:后者可以排序 、因为TreeSet底层是二叉树、通过传入比较器,可以自定义排序。但需要自定义比较器。

虽然这些问题在面试的时候并不会百分百的遇到,但是提前做好准备还是很不错的。这也可以让我们更好地通过面试,获得工作。如果你想要了解更多Java面试题,敬请关注奇Q工具网。

推荐阅读:

springsession跨域详解,实践实例

ajax跨域请求如何解决?什么是跨域?

springboot跨域如何解决?什么是跨域?