手把手教你如何玩转面试(与JavaWeb相关其余内容)

        本篇是讲解关于JavaWeb岗位面试方面的一些对于数据结构知识的整理,当然,不只是需要知道这个方面的内容,还需要掌握其他方面的知识,我都根据自己的经历来进行了整理,方便大家进行系统化的学习,只有多复习多研究,才能对技术有更好的掌握,才能拿到更好的offer。

下面是其他方面的知识点,欢迎大家进行浏览

Spring的精华:https://blog.csdn.net/cs_hnu_scw/article/details/78677502

Hibernate的精华:https://blog.csdn.net/cs_hnu_scw/article/details/78762294

Java基础:https://blog.csdn.net/Cs_hnu_scw/article/details/79635874

计算机网络:https://blog.csdn.net/Cs_hnu_scw/article/details/79896621

Web方向:https://blog.csdn.net/Cs_hnu_scw/article/details/79896165

数据库:https://blog.csdn.net/Cs_hnu_scw/article/details/79896384

操作系统:https://blog.csdn.net/Cs_hnu_scw/article/details/79896500

数据结构:https://blog.csdn.net/Cs_hnu_scw/article/details/79896717

1:Git中的常用命令?请说一下merge和rebase的作用和不同点?

答:常用命令的话,主要还是要掌握一些基本的,比如clone , commit,add,merge,rebase这些都还是需要了解的。

下面的两个图就显示了merge和rebase它们两者之间的差距,它们的功能都是进行分支的合并,但是处理的形式就有点不一样了。


2:软件开发的生命周期模型?

答:(1)瀑布模型---------按照固定的顺序进行开发

(2)螺旋模型----------按照迭代的形式进行开发,基于瀑布模型

(3)喷泉模型---------各个开发顺序之间没有明显的间隙,各个开发阶段是可以并行开发;

3:Web安全之XSS攻击?

答:

(1)定义:跨站脚本攻击(Cross Site Scripting),缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的;

(2)原理:攻击者对含有漏洞的服务器发起XSS攻击(注入JS代码);诱使受害者打开受到攻击的服务器URL;受害者在Web浏览器中打开URL,恶意脚本执行。

(3)攻击方式:

反射型: 发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS随响应内容一起返回给浏览器,最后浏览器解析执行XSS代码,这个过程就像一次发射,所以叫反射型XSS。
存储型: 存储型XSS和反射型的XSS差别就在于,存储型的XSS提交的代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码。

(4)预防措施:

编码:对用户输入的数据进行HTML Entity编码 


过滤:移除用户上传的DOM属性,如onerror等,移除用户上传的style节点,script节点,iframe节点等。
校正:避免直接对HTML Entity编码,使用DOM Prase转换,校正不配对的DOM标签。

(5)案例:

1.常见XSS漏洞1--get请求回显漏洞
当我们的网页使用的是get请求的时候,服务器后端将get请求的字符串编码(在浏览器上使用的是encode编码)回显到页面的时候,如果我们输入的是正常的一段字符,那么,他显示的是一段字符,然而,如果我们输入的是一段html代码呢???那么回显的就是一段html代码,当你的页面允许这样的时候,那么就要注意了,别人可以在你的链接上面加很长一段自己的html,然后他把这个伪造的连接发给别人,说你的官网最近有活动,事实上,是他生成在get请求上做了一点手脚,而你的服务端,回显的时候,产生的这样的问题。。。。
2.常见的XSS漏洞2--论坛回复
当我们再论坛输入的是字符串的时候,下面回显的是,你的回复的字符串信息,但当你输入的是一段html的时候,页面显示的是什么呢???甚至,我们还可以在上面加一段js代码,例如<script>alert("哈哈");</script>,别人问你这个页面的时候,就可能弹出这个哈哈对话框,这个还是好的,如果别人在js上加个js跳转到其他页面,哈哈,这只要以后任何人访问该页面的时候,是不是都会跳转到其他页面,而永远都进入不了你这个页面了呢???

4:XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 

答:XML文档定义分为DTD和Schema两种形式,二者都是对XML语法的约束,其本质区别在于Schema本身也是一个XML文件,可以被XML解析器解析,而且可以为XML承载的数据定义类型,约束能力较之DTD更强大。对XML的解析主要有DOM(文档对象模型,Document Object Model)、SAX(Simple API for XML)和StAX(Java 6中引入的新的解析XML的方式,Streaming API for XML),其中DOM处理大型文件时其性能下降的非常厉害,这个问题是由DOM树结构占用的内存较多造成的,而且DOM解析方式必须在解析文件之前把整个文档装入内存,适合对XML的随机访问(典型的用空间换取时间的策略);SAX是事件驱动型的XML解析方式,它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过事件回调代码来处理XML文件,适合对XML的顺序访问;顾名思义,StAX把重点放在流上,实际上StAX与其他解析方式的本质区别就在于应用程序能够把XML作为一个事件流来处理。将XML作为一组事件来处理的想法并不新颖(SAX就是这样做的),但不同之处在于StAX允许应用程序代码把这些事件逐个拉出来,而不用提供在解析器方便时从解析器中接收事件的处理程序。

5:情景分析:秒杀一个奖品,让你设计一种软件模型。

可以参考看看这文章:https://blog.csdn.net/longcats_lily/article/details/70665929

6:在你的实际项目中,有用到哪些设计模式?简要的说一下。

答:(1)单例模式:应用于数据库连接池中,这样能够对连接数据库的资源进行管理,减少系统消耗;而且Spring中的bean就是单例

(2)模板模式:比如对于封装基础DAO层的时候,提供了操作数据库的基本方法,但是对于不同的实体类,那么要进行的实际操作又是不一样的;

(3)代理模式:应用于Spring的事务管理和日志记录,并且实际的应用在对统计系统中,方法每天调用的次数;

7:

    这并不是终点,而是我刚刚的开始,我会一直不断将知识点进行更新,欢迎大家进行关注和阅读!!!

猜你喜欢

转载自blog.csdn.net/cs_hnu_scw/article/details/79896876