java开发岗高频面试题全解析,java高级面试题及答案
如何解决写爬虫IP受阻的问题?立即使用。
首先说说Servlet的生命周期?
(更多相关面试问题推荐:java面试问答)
Servlet有一个明确定义的生命周期,包括加载和实例化、初始化、请求处理和服务终止。这个生存期由javax.servlet.Servlet接口的init()、service()和destroy方法表示。
Servlet被服务器实例化后,容器运行它的init方法,请求到达时运行它的service方法,service方法自动调度运行请求对应的doXXX方法(doGet,doPost)等。当服务器决定销毁实例时,它调用它的destroy方法。
web容器加载servlet,生命周期开始。通过调用servlet的init()方法初始化servlet。通过调用service()方法实现,根据不同的请求调用不同的do***()方法。服务结束时,web容器调用servlet的destroy()方法。
二、Servlet API中forward()和redirect()的区别?
1.从地址栏显示
转发是指服务器请求资源。服务器直接访问目标地址的URL,读取那个URL的响应内容,然后发送给浏览器。浏览器根本不知道服务器发来的内容来自哪里,所以它的地址栏还是原来的地址。
重定向是服务器根据逻辑发送一个状态码,告诉浏览器再次请求那个地址。所以地址栏显示了新的URL。所以重定向等于客户端向服务器发送两个请求,同时收到两个响应。
2.在数据共享方面
转发:被转发的页面和被转发的页面可以共享请求中的数据。
重定向:数据无法共享。
Redirect不仅可以重定向到当前应用程序中的其他资源,还可以重定向到同一站点上其他应用程序中的资源,甚至可以使用绝对URL重定向到其他站点中的资源。
forward方法只能在同一Web应用程序中的资源之间转发请求。转发是服务器内部的操作。
是重定向服务器通知客户端重新发起请求。
所以,你可以说redirect是间接请求,但是你不能说‘一个请求属于forward还是redirect’
3.从应用的角度来看。
转发:一般用于用户登录时根据角色转发到相应的模块。
重定向:一般在用户注销返回主页,跳转到其他网站时使用。
4.就效率而言
前进:高。
重定向:低。
三。request.getAttribute()和request.getParameter()有什么区别?
1.request.getParameter()的获取是通过post、get等方式获取传入的数据。通过容器的实现。
request.setAttribute()和getAttribute()只在web容器内部流动,它们只是请求处理阶段。
2.getAttribute是返回对象,getParameter返回一个字符串。
3.getAttribute()始终与setAttribute()一起使用。只有用setAttribute()设置后,才能通过getAttribute()获取值。它们传递Object类型的数据。并且必须在同一个请求对象中使用才有效。getParameter()是接收表单的get或post提交的参数。
(视频教程推荐:java课程)
第四,jsp的静态包含和动态包含的区别
1.%@include file=xxx.jsp%是jsp中的编译指令,其文件包含发生在jsp到servlet的转换过程中,而jsp:include page=xxx.jsp 是jsp中的action指令,其文件包含发生在编译期间,即java文件编译成类文件的过程中。
2.使用静态包含只会产生一个类文件,而使用动态包含会产生多个类文件。
3.使用静态包含,包含页面的请求对象和被包含页面是同一个对象,因为静态包含只是将被包含页面的内容复制到被包含页面;但是动态包含页面和被包含页面不是同一个页面,被包含页面的请求对象可以获得的参数范围比较大,既可以获得传递给被包含页面的参数,也可以获得被包含页面上传递下来的参数。
5.MVC的各个部分都有哪些可用的技术?如何实现?
是MVC模型-视图-控制器的简称。Model表示应用的业务逻辑(由JavaBean和EJB组件实现),View是应用的展现面(由JSP页面生成),Controller是应用的流程控制(一般是Servlet)。通过这种设计模型,应用程序逻辑、流程和显示逻辑被分成不同的组件来实现。这些组件可以交互和重用。
不及物动词jsp的内置对象有哪些?有哪些角色?
JSP有以下9个内置对象:
1.请求客户端请求,它将包括来自GET/POST请求的参数。
2.响应页面返回来自客户端的响应。
3.pageContext网页的属性在这里管理。
4.与请求相关的会话周期
5.应用程序servlet正在执行什么。
6.out用于发送响应的输出
7.配置servlet的架构组件
8.页面JSP网页本身
9.异常是针对错误的网页,属于未被捕获的异常。
七、Http,get和post方法的区别
1.Get是向服务器请求数据,而Post是向服务器提交数据的请求。
2.Get是获取信息,不是修改信息。类似于数据库查询功能,数据不会被修改。
3.Get请求的参数将在url之后传递,所请求的数据将用?URL和传输的数据是分开的,参数是相互联系的。% XX中的XX是用十六进制的符号表示的ASCII。如果数据是英文字母/数字,将按原样发送。如果是空格,会转换成。如果是中文/其他字符,字符串会直接用BASE64加密。
4.Get传输的数据有大小限制。因为GET是通过URL提交数据的,所以GET能够提交的数据量与URL的长度直接相关。不同的浏览器对URL的长度有不同的限制。
5.GET请求的数据将被浏览器缓存,用户名和密码将以明文形式出现在URL上。别人可以查历史浏览记录,数据不是很安全。
在服务器端,请求。QueryString用于获取Get提交的数据。
请求作为http消息的实际内容发送到web服务器,数据在HTML头中提交。Post不限制提交的数据。这比得到更安全。当数据为中文或不敏感时,使用get,因为参数会显示在地址处。对于敏感数据和非汉字数据,使用Post。
6.Post表示可能修改服务器上资源的请求。在服务器端,POST提交的数据只能通过请求获得。形式
八。什么是曲奇?Session和cookie有什么区别?
Cookie是一种将用户信息保存到浏览器对象的会话技术。
(相关推荐:java入门)
差异:
1.cookie数据存储在客户端的浏览器中,会话数据存储在服务器上。
2.饼干不太安全。还有人可以分析本地存储的cookie,欺骗cookie。如果安全性是主要考虑因素,您应该使用会话。
3.会话将在服务器上保存一段时间。当访问增加时,它将占用服务器的性能。如果主要考虑的是降低服务器的性能,就应该使用COOKIE。
4.客户端中单个cookie的限制是3K,这意味着存储在站点客户端的COOKIE不能是3K。
结论:
将登录信息等重要信息存储为会话;如果需要保留,其他信息可以放在COOKIE中。
九。jsp和servlet有什么区别、共性和适用范围?
它是JSP Servlet技术的扩展,本质上是Servlet的一种简单方式。JSP编译后就是“类servlet”了。
Servlet和JSP的主要区别在于Servlet的应用逻辑在Java文件中,在表示层与HTML完全分离。在JSP的情况下,Java和HTML可以合并成一个文件,扩展名为。jsp。
JSP侧重于视图,Servlet主要用于控制逻辑。在struts框架中,JSP位于MVC设计模式的视图层,Servlet位于控制层。
X.tomcat容器如何创建servlet类实例?用的是什么原理?
当容器启动时,它将读取webapps目录中所有web应用程序中的web.xml文件,然后解析xml文件并读取servlet注册信息。然后,每个应用程序中注册的servlet类通过反射进行加载和实例化。(有时它也在第一次请求时被实例化)
向servlet注册添加load-on-startup 1/load-on-startup。如果是正的,就在开始的时候实例化。如果没有写或者为负,就第一次实例化。以上是java高频基础面试题——(四)的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。