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. vue-learning:23 - js - leftcycle hooks

    vue 生命周期钩子函数 每一个Vue实例在创建时都需要经过一系列初始化.根据vue实例化过程中执行的逻辑,可以分为5个阶段: 初始化阶段 模板编译阶段 虚拟DOM挂载阶段 响应更新阶段 卸载阶段 这 ...

  2. SmartAssembly 使用方法

    SmartAssembly加壳工具,我还真的是不太喜欢给自己的程序加壳,觉得开源才是王道,但是没办法工作需要,需要有个加壳后与加壳前的对比,好吧谁叫咱只是程序员呢. 开始埋头苦干,找了半天也没找到合适 ...

  3. c++ CArray函数

    CArray属于MFC,是一个数组模板类.MFC的数组类支持的数组类似于常规数组,可以存放任何数据类型.常规数组在使用前必须将其定义成能够容纳所有可能需要的元素,即先确定大小,而MFC数组类创建的对象 ...

  4. tag的使用

    tag = True while tag: print("level") choice = input("level>>>").strip() ...

  5. $loj\ 6045$ [雅礼集训 $2017\ Day8$] 价 网络流

    正解:网络流 解题报告: 传送门$QwQ$ 这题还,挺有趣的我$jio$得. 考虑依然先是照着最小割的模子建图呗,然后从意义上来分析,割一条边就相当于不吃一种减肥药/买一种药材.由已知得,买的药材数量 ...

  6. 02_jQuery 验证密码是6位或者8位纯数字

    var reg = new RegExp(/^\d{8}$/); //工作密码必须是8位数字 if(!reg.test("12544444").val())) { alert(&q ...

  7. docker练习-堆栈

    介绍 分布式应用程序层次结构的顶部:堆栈. 堆栈是一组相互关联的服务,它们共享依赖关系,并且可以协调和缩放在一起. 单个堆栈能够定义和协调整个应用程序的功能(尽管非常复杂的应用程序可能希望使用多个堆栈 ...

  8. Win10下设置默认输入法与默认中文输入

    实现的效果: 把自己需要的一个或多个输入法软件添加到输入法列表中(一般就指定一个),避免了需要在打字时Ctrl + Shift等快捷键在多个输入法中不停切换的麻烦 首选语言默认为中文,毕竟作为一个中国 ...

  9. cc协议(知识共享,Creative Commons),程序员的基础守则之一

    知识共享 我在浏览git开源代码的时候,浏览到一句话: 版权声明:本文为CSDN博主「...」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:http ...

  10. html 鼠标指针讲解

    html 鼠标指针 详情可以看https://www.w3school.com.cn/tiy/t.asp?f=csse_cursor 测试代码: <html> <body> & ...