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篇的更多相关文章

  1. java面试③Web部分

    2.2.1 讲一下http get和post请求的区别 get和post请求都是http的请求方式,用户通过不同的http请求方式完成对资源(url)的不同操作,具体点来讲get一般用于获取/查询资源 ...

  2. java面试基础篇(一)

    最近想深入的理解一下java 的工作机制,也是便于后期的面试. 1.A:HashMap和Hashtable有什么区别? Q:HashMap和Hashtable都实现了Map接口,因此很多特性非常相似. ...

  3. java面试基础篇(二)

    上一篇,我们说了一下线程和Map,或许那些太抽象,不太好理解,也不太方便记忆,我们这次说一些简单的. 1.Q:java的基本数据类型有哪些? A:四种整数类型(byte.short.int.long) ...

  4. Java面试框架篇(8)

    71,谈谈你对Struts的理解. 1. struts是一个按MVC模式设计的Web层框架,其实它就是一个Servlet,这个Servlet名为ActionServlet,或是ActionServle ...

  5. Java面试人事篇(二)

    1.请你自我介绍一下你自己? 回答提示:一般人回答这个问题过于平常,只说姓名.年龄.爱好.工作经验,这些在简历上都有.其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能.最深入研究的知识领域 ...

  6. java面试基础篇(三)

    1.Q:ArrayList 和 LinkedList 有什么区别? A:ArrayList查询快!LinkedList增删快.ArrayList是基于索引的数据接口,它的底层是数组.空间占用相对小一些 ...

  7. java 面试架构篇

    1.非功能需求会考虑哪些? 可用性.扩展性.性能: 2.有没有遇到过建了索引反而变慢的情况? 3.从哪些角度去设计系统? 4.代码中使用过的设计模式?

  8. java面试基础篇-List

    一.ArrayList: 底层为数组实现,线程不安全,查询,修改快,增加删除慢, 数据结构:数组以0为下标依次连续进行存储 数组查询元素:根据下标查询就行 数组增加元素:如果需要给index为10的位 ...

  9. Java 面试知识点解析(七)——Web篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  10. 【Java面试】基础知识篇

    [Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充.源码分享见个人公告.Ja ...

随机推荐

  1. 【t056】智力问答(链表+计数排序做法)

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 新年联欢会上,G.Sha负责组织智力问答节目.G.Sha建立了一个很大很大的超级题库,并衡量了每道题的 ...

  2. JRoll 2 适用于移动开发滚动(滑动)——轻量级插件

    JRoll,一款能滚起上万条数据,具有滑动加速.回弹.缩放.滚动条.滑动事件等功能,兼容CommonJS/AMD/CMD模块规范,开源,免费的轻量级html5滚动插件. 官网:http://www.c ...

  3. C语言 屏幕截图 (GDI)

    截取全屏幕 #include <windows.h>   void echo(CHAR *str); int CaptureImage(HWND hWnd, CHAR *dirPath, ...

  4. hdu 6851 Vacation(思维+贪心)

    传送门 •题意 有编号0到n,n+1辆车排队过红绿灯,从0到n离交通灯线越来越近 每辆车都有一个最大速度v,车身长度l,和离交通灯线的距离s, 一辆车头到达线则说明这辆车已到达线 如果一辆车前面没有紧 ...

  5. 2019-6-23-win10-uwp-应用放到桌面

    title author date CreateTime categories win10 uwp 应用放到桌面 lindexi 2019-06-23 11:11:30 +0800 2019-06-2 ...

  6. EasyUI清空combotree下拉框图标

    代码: //清空combotree下拉框图标 $(".tree-icon,.tree-file").removeClass("tree-icon tree-file&qu ...

  7. 使用windows api函数捕获SAP session的左下角消息句柄

    背景:SAP session的左下角消息非常有用,我们在做SAP的自动化脚本时可以设法读到这个消息的内容,作为程序后续动作的判断条件.如下图:        比如小爬之前给财务的同事制作了一个批量导出 ...

  8. redis 和 memcached 有什么区别?redis 的线程模型是什么?为什么 redis 单线程却能支撑高并发?

    redis 和 memcached 有啥区别? redis 支持复杂的数据结构 redis 相比 memcached 来说,拥有更多的数据结构,能支持更丰富的数据操作.如果需要缓存能够支持更复杂的结构 ...

  9. ELK学习实验004:Elasticsearch的简单介绍和操作

    一 集群节点 Elstaicsearch的集群是由多个节点组成都,通过cluster.name设置集权名称,比能切用与区分其他的集群,每个节点通过node.name指定节点 在Elasticsearc ...

  10. saltstack的配置使用

    介绍 认证管理,使其可以用于编配, 远程执行, 配置管理等等.部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯. 号称世界上最快的消息队列ZeroMQ使得 ...