Java面试常见问题整理(JavaWeb阶段 附答案)

一、JavaWeb阶段

1、cookie和session的区别与联系。

           存储位置与安全性:cookie数据存放在客户端上,安全性较差,session数据放 在服务器上,安全性相对更高;
            存储空间:单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最 多保存20个cookie,session无此限制
            占用服务器资源:session一定时间内保存在服务器上,当访问增多,占用服务 器性能,考虑到服务器性能方面,应当使用cookie。

2、在HTTP请求中,什么情况下我们会选择post方式而非get?反之也是如何考虑的?

区别:1、GET是不安全的,post安全

           2、get提交的地址最大为2048字节,post没有限制

           3、get是从服务器上获取数据,post是向服务器传送数据

建议:

        1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;

        2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;

3、servlet的生命周期及常用方法?

Servlet的生命:首先加载servlet的class,实例化servlet,然后初始化servlet调用init()的方法,接着调用服务的service的方法处理doGet和doPost方法,最后服务器关闭时候调用destroy 销毁方法。

 4、转发和重定向区别?


        1.转发不会改变浏览器的地址,重定向会改变浏览器的地址;
        2.转发共享同一个request,重定向不共享同一个request;
        3.转发只能在同一个web中使用,重定向可以重定向到任意的URL;

5、ajax书写方式及内部主要参数都有哪些

<script>
$(document).ready(function(){
	$("button").click(function(){
		$.ajax({url:"demo_test.txt",success:function(result){
			$("#div1").html(result);
		}});
	});
});
</script>

 6、Jquery常用选择器都有哪些?

        1、基本选择器(ID、元素、类选择器等);

        2、基本过滤选择器(:first、:last、:even等);

        3、内容过滤选择器(:empty、:has()、:parent等);

        4、可见性过滤选择器;5、属性过滤选择器等。

7、JSP和 Servlet的区别?/jsp和servlet有哪些相同点和不同点,它们之间的联系是什么?

相同点:

        相同点:都是使用JAVA语言进行开发的,联系:JSP依赖于Servlet。

jsp和servlet的区别和联系:

        1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别ava的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的iava类)

        2.jsp更擅长表现于页面显示,servlet更擅长于逻辑控制.

        3.Servlet中没有内置对象,Jsp中的内置对象都是必须通过HtpServletRequest对象,HitoServletResponse对象以及HtoServlet对象得到Jsp是Serviet的一种简化,便用Jsp只需要完成程序员需要输出到客户端的内容、Jsp中的Java脚本如何镶嵌到一个类中,由Jso容器完成。而Servlet则是个完整的Java类,这个类的Service方法用于生成对客户端的响应。

联系:
        JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是"类servlet"。Servlet和JSP最主要的不同点在于:Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。
        JSP侧重于视图,Servlet主要用于控制逻辑
        Servlet更多的是类似于一个Controller,用来做控制。

8、拦截器和过滤器区别

     ①拦截器是基于java的反射机制的,而过滤器是基于函数回调。
     ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
     ③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
     ④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
     ⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
     ⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。


9、一次完整的http请求是什么样的?

    一次完整的HTTP请求过程从TCP三次握手建立连接成功后开始,客户端按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个HTTP的响应给客户端,HTTP的响应内容同样有标准的格式。

10、ajax提交请求 默认是 异步还是同步  怎么改成同步?

    默认情况下async值是true(异步提交);而想将异步改为同步,只需要将async的值设置为false即可。

11、你的项目中使用过那些JSTL标签?

   项目中主要使用了JSTL的核心标签库,包括< c:if>、< c:choose>、< c: when>、< c: otherwise>、< c:forEach>等,主要用于构造循环和分支结构以控制显示逻辑。虽然JSTL标签库提供了core、sql、fmt、xml等标签库,但是实际开发中建议只使 用核心标签库(core),而且最好只使用分支和循环标签并辅以表达式语言(EL),这样才能真正做到数据显示和业务逻辑的分离,这才是最佳实践。

12、JSP常用的动作标签及作用。

特点:

(1)jsp动作元素是用XML语法写成的

         <jsp:action_name attribute="value" />

(2)jsp的动作标签,在使用的时候不需要导包(内置了)

(3)所有的动作要素都有两个属性:id属性和scope属性

简要介绍:

id属性:是动作元素的唯一标识,可以在JSP页面中引用,动作元素创建的id值可以通过PageContext对象来调用。

scope属性:用于识别动作元素的生命周期。 id属性和scope属性有直接关系,scope属性定义了相关联id对象的寿命,scope属性有四个可能的值:page、request、session和application,这是JSP的四个作用域。

动作元素的展示:

13、JSP四大作用域及请求范围。

JSP四大作用域:page, request ,session, application 。


第一个作用域是page,他只在当前页面有效,也就是用户请求的页面有效,当当前页面关闭或转到其他页面时,page对象将在响应回馈给客户端后释放。


第二个作用域是request,他在当前请求中有效,request可以通过setAttribute()方法实现页面中的信息传递,也可以通过forward()方法进行页面间的跳转,需要注意的是request是转发不是重定向,转发相对于浏览器来说是透明的,也就是无论页面如何跳转,地址栏上显示的依旧是最初的地址。


第三个作用域是session,他在当前回话中有效。当一个台电脑上的同一浏览器对服务器进行多次访问时,在这多次访问之间传递的信息就是session作用域的范围。它从浏览器发出第一个HTTP请求即可认为会话开始,但是会话结束的时间是不确定的,因为在浏览器关闭时并不会通知服务器,一般Tomcat设置的默认时间为120分钟,也可以通过setMaxInactiveInterval(int)方法进行设置,或是通过invalidate()方法强制结束当前会话。


第四个作用域是application,他在所有的应用程序中都有效,也就是当服务器开始到服务器结束这段时间,application作用域中存储的数据都是有效的,同样可以通过setAttribute赋值和getAttribute取值

 14、如何防止表单重复提交问题

14.1 通过JavaScript屏蔽提交按钮(不推荐)

14.2 给数据库增加唯一键约束(简单粗暴)

14.3 利用Session防止表单重复提交(推荐)

14.4使用AOP自定义切入实现

15、分别说出http,https,ftp,talnet的默认端口

1、HTTP:使用80端口。

HTTP属于超文本传输协议,所有的WWW文件都必须遵守这个标准,HTTP是一个客户端和服务器端请求和应答的标准(TCP),客户端是终端用户,服务器端是网站,通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。

2、FTP:使用20/21端口。

主要是用来传输文件,比如建站常常用来上传主页或者下载文件进行修改,FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间,会非常长。

3、SMTP:使用25端口。

SMTP定义了简单邮件传送协议,现在很多邮件服务器都用的是这个协议,用于发送邮件。如常见的免费邮件服务中用的就是这个邮件服务端口。

4、TELNET使用23端口。

Telnet它是一种用于远程登陆的端口,用户可以以自己的身份远程连接到计算机上,通过这种端口可以提供一种基于DOS模式下的通信服务。

16、常见的http返回状态码(200,301,302,400)

完整的HTTP状态码注册表由互联网号码分配局负责维护的,状态码共3位,一共分为5种,从1...5开始。

17、TCP和UDP区别,你对HTTP协议的理解

 TCP:传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 [1] 定义。
TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。
 

UDP:Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。RFC 768 [1] 描述了 UDP。
Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的事情。面向连接的是 TCP,该协议几乎做了所有的事情。
 

HTTPS:超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。
 

 18、json数据的格式是什么?

  • JSON 是 JavaScript 对象表示法(全称JavaScript Object Notation),类似于XML.
  • JSON 是轻量级的文本数据交换格式,它比 XML 更小、更快,更易解析。
  • JSON 独立于语言
  • JSON 具有自我描述性,更易理解

19、xml的解析方式有哪些?

XML的解析方式分为四种:

  • 1.DOM解析方式
  • 2.SAX解析方式
  • 3.JDOM解析方式
  • 4.DOM4J解析方式

  • 3
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周周学Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值