【java面试】Web篇
1.AJAX创建步骤
step1. 创建XMLHttpRequest对象,也就是创建一个异步调用对象;
step2. 创建一个新的HTTP请求,并指定改HTTP请求的方法、URL以及验证信息;
step3. 设置响应HTTP状态变化的函数;
step4. 发送HTTP请求;
step5. 获取异步调用返回的数据;
step6. 使用javascript和DOM实现局部刷新;
2.讲一下http get和post请求的区别
get和post请求都是http的请求方式,用户通过不同的http请求方式完成对资源(url)的不同操作,具体点来讲get一般用于获取/查询资源信息,而post一般用于更新资源信息。
1)get请求提交的数据会在地址栏显示出来,而post请求不会在地址栏显示出来。
get提交请求的数据会附在URL之后(就是把数据放置在http协议头中)以?分割url和传输数据,多个参数用&连接;post提交:把提交的数据放置的是在http包的包体中,因此,get提交的数据会在地址栏中显示出来,而post提交,地址栏不会改变。
2)传输数据的大小
http get请求由于浏览器对地址长度的限制而导致传输的数据有限制,而post请求不会因为地址长度限制而导致传输数据限制。
3)安全性,post的安全性要比get的安全性高,由于数据是会在地址中呈现,所以安全性可以历史记录找到密码相关等信息。
操作方式 |
数据位置 |
明文密文 |
数据安全 |
长度限制 |
应用场景 |
GET |
HTTP包头 |
明文 |
不安全 |
长度较小 |
查询数据 |
POST |
HTTP正文 |
可明可密 |
安全 |
支持较大数据传输 |
修改数据 |
3. 讲一下你对servlet的理解?或者servlet是什么?
servlet(servlet applet),全称Javaservlet,是用Java编写的服务端程序,而这些Servlet都要实现Servlet这个接口,其主要功能在于交互式地浏览和修改数据,生成动态web内容,servlet运行于支持java的应用服务器中。
httpservlet重写doGet和doPost方法或者你也可以重写service方法完成对get和post请求的响应。
4. 简单说一下servlet的生命周期?
servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束,这个生存期由java servlet Servlet接口的init,service,destory方法表达。
Servlet启动时,开始加载Servlet生命周期开始,servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对其的doxxx方法(doGet,doPost)等,当服务器决定将实例化销毁的时候(服务器关闭)调用其destory方法
加载Servlet的class-->实例化Servlet的init完成初始化-->响应请求(Servlet的service方法)-->Servlet容器关闭时(Servlet的destory方法)
5. Servlet API中forward()与redirect()的区别?
前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的链接,浏览器(客户端)将会得到跳转的链接,并重新发送请求链接。forward还是原来的请求而rediect是重新发起请求。这样,从浏览器的地址栏中可以看出跳转后的链接地址,所以前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且这样有助于隐藏实际的链接,在有些情况下,比如,需要跳转到一个其他服务器上的资源则必须使用sendRedirect()方法。
1)forward是服务器请求的转向而rediect是客户端的跳转。
2)使用forward浏览器的地址不会发生改变,而redrect会发生改变。
3)forward是一次请求中完成,而redrect是重新发起请求。
3)forward是在服务器端完成,而不用客户端重新发起请求,效率高。
6. JSP和Servlet有哪些相同点和不同点,它们之间的联系是什么?
JSP是Servlet的扩展。所有的jsp文件都会被翻译为一个继承httpServlet的类,也就是说jsp最终也是一个Servlet,这个servlet对外提供服务。
Servlet和JSP最主要的不同点在于,Servlet如果要实现html的功能,必须使用Writer输出对应的html比较麻烦,Servlet的应用逻辑是在java文件,并完全从表示层中的html分离出来,而jsp的情况是Java和HTML可以组合成一个扩展名为.jsp文件比较方便而嵌入逻辑比较复杂,jsp侧重视图,Servlet主要用于控制逻辑。
7. jsp有哪些内置对象?作用分别是什么?
9个内置的对象:
request 用户请求,此请求会包含来自get/post请求的参数
response 网页传回用户端的回应
pageContext 网页的属性是在这里管理
session 与请求有关的会话棋
application servlet正在执行的内容
out 用来传送回应的输出
config servlet 的构架部件
page jsp网页本身
exception 针对错误网页,未捕抓的例外
四大作用域:pageContext,request,session,application可以通过jstl从四大作用域中取值
jsp传递值request,session,application,cookie也能传值
8. 说一下session和cookie的区别?你在项目中都有哪些地方使用了
Session和cookie都是会话跟踪技术,cookie通过客户端记录信息确定用户身份,session通过在服务端确定用户身份,但是session的实现依赖于cookie,sessionId(session的唯一标识需要存放在客户端)
cokike和session的区别
1)cookie数据存放在客户的浏览器上,session数据存放在服务器上。
2)cookie不是很安全,别人可以分析存放本地的cookie并进行cookie欺骗,考虑到安全性应当使用session
3)session会在一定时间内保存在服务器上,当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用cookie
4)单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20cookie
5)所以个人建议:
将登录等重要信息存放为session,其他信息如果需要保留,可以存放cookie中,比如购物车。
购物车最好使用cookie,但是cookie是可以在用户端禁用的,这时候我们要使用cookie+数据库的方式实现,当从cookie中不能取出数据时,就从数据库获取
9. mvc的各部分都有哪些技术来实现
M(Model)模型 javaBean,hibernate,mybatis
V(View)代码视图 jsp,html,freemaker,velocity
C(Controller)控制器 Servlet,Action,struts
Jsp+Servlet+javaBean 最经典mvc模式。实际上就是model2的实现方式,就是把视图和逻辑隔离
【java面试】Web篇的更多相关文章
- java面试③Web部分
2.2.1 讲一下http get和post请求的区别 get和post请求都是http的请求方式,用户通过不同的http请求方式完成对资源(url)的不同操作,具体点来讲get一般用于获取/查询资源 ...
- java面试基础篇(一)
最近想深入的理解一下java 的工作机制,也是便于后期的面试. 1.A:HashMap和Hashtable有什么区别? Q:HashMap和Hashtable都实现了Map接口,因此很多特性非常相似. ...
- java面试基础篇(二)
上一篇,我们说了一下线程和Map,或许那些太抽象,不太好理解,也不太方便记忆,我们这次说一些简单的. 1.Q:java的基本数据类型有哪些? A:四种整数类型(byte.short.int.long) ...
- Java面试框架篇(8)
71,谈谈你对Struts的理解. 1. struts是一个按MVC模式设计的Web层框架,其实它就是一个Servlet,这个Servlet名为ActionServlet,或是ActionServle ...
- Java面试人事篇(二)
1.请你自我介绍一下你自己? 回答提示:一般人回答这个问题过于平常,只说姓名.年龄.爱好.工作经验,这些在简历上都有.其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能.最深入研究的知识领域 ...
- java面试基础篇(三)
1.Q:ArrayList 和 LinkedList 有什么区别? A:ArrayList查询快!LinkedList增删快.ArrayList是基于索引的数据接口,它的底层是数组.空间占用相对小一些 ...
- java 面试架构篇
1.非功能需求会考虑哪些? 可用性.扩展性.性能: 2.有没有遇到过建了索引反而变慢的情况? 3.从哪些角度去设计系统? 4.代码中使用过的设计模式?
- java面试基础篇-List
一.ArrayList: 底层为数组实现,线程不安全,查询,修改快,增加删除慢, 数据结构:数组以0为下标依次连续进行存储 数组查询元素:根据下标查询就行 数组增加元素:如果需要给index为10的位 ...
- Java 面试知识点解析(七)——Web篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- 【Java面试】基础知识篇
[Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充.源码分享见个人公告.Ja ...
随机推荐
- 【t056】智力问答(链表+计数排序做法)
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 新年联欢会上,G.Sha负责组织智力问答节目.G.Sha建立了一个很大很大的超级题库,并衡量了每道题的 ...
- JRoll 2 适用于移动开发滚动(滑动)——轻量级插件
JRoll,一款能滚起上万条数据,具有滑动加速.回弹.缩放.滚动条.滑动事件等功能,兼容CommonJS/AMD/CMD模块规范,开源,免费的轻量级html5滚动插件. 官网:http://www.c ...
- C语言 屏幕截图 (GDI)
截取全屏幕 #include <windows.h> void echo(CHAR *str); int CaptureImage(HWND hWnd, CHAR *dirPath, ...
- hdu 6851 Vacation(思维+贪心)
传送门 •题意 有编号0到n,n+1辆车排队过红绿灯,从0到n离交通灯线越来越近 每辆车都有一个最大速度v,车身长度l,和离交通灯线的距离s, 一辆车头到达线则说明这辆车已到达线 如果一辆车前面没有紧 ...
- 2019-6-23-win10-uwp-应用放到桌面
title author date CreateTime categories win10 uwp 应用放到桌面 lindexi 2019-06-23 11:11:30 +0800 2019-06-2 ...
- EasyUI清空combotree下拉框图标
代码: //清空combotree下拉框图标 $(".tree-icon,.tree-file").removeClass("tree-icon tree-file&qu ...
- 使用windows api函数捕获SAP session的左下角消息句柄
背景:SAP session的左下角消息非常有用,我们在做SAP的自动化脚本时可以设法读到这个消息的内容,作为程序后续动作的判断条件.如下图: 比如小爬之前给财务的同事制作了一个批量导出 ...
- redis 和 memcached 有什么区别?redis 的线程模型是什么?为什么 redis 单线程却能支撑高并发?
redis 和 memcached 有啥区别? redis 支持复杂的数据结构 redis 相比 memcached 来说,拥有更多的数据结构,能支持更丰富的数据操作.如果需要缓存能够支持更复杂的结构 ...
- ELK学习实验004:Elasticsearch的简单介绍和操作
一 集群节点 Elstaicsearch的集群是由多个节点组成都,通过cluster.name设置集权名称,比能切用与区分其他的集群,每个节点通过node.name指定节点 在Elasticsearc ...
- saltstack的配置使用
介绍 认证管理,使其可以用于编配, 远程执行, 配置管理等等.部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯. 号称世界上最快的消息队列ZeroMQ使得 ...