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. 【20.95%】【UESTC 94】Bracket Squence

    Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  Status T ...

  2. centos7 teamviewer

    Step 1: Install the prerequisites. # yum install glibc alsa-lib freetype libICE libSM libX11 libXau ...

  3. 2016湖南省赛 I Tree Intersection(线段树合并,树链剖分)

    2016湖南省赛 I Tree Intersection(线段树合并,树链剖分) 传送门:https://ac.nowcoder.com/acm/contest/1112/I 题意: 给你一个n个结点 ...

  4. HDU6602 Longest Subarray hdu多校第二场 线段树

    HDU6602 Longest Subarray 线段树 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6602 题意: 给你一段区间,让你求最长的区间使 ...

  5. Destoon系统目录树SEO属性目录开发实例

    如何在destoon里设置树形目录结构的SEO优化方式官方给的SEO伪静态实例是没有这个方式的 楼主后来想了一下,就干脆自己做一个吧,已经测试完全无误通过,特意分享给大家 目前比如sell模块下类别[ ...

  6. 数据多js平均时间取固定条数展示,echarts数据多处理数据

    js代码: function getfailurerate(start,end,ip) { $.ajax( { url : "report/getvirtual.action", ...

  7. 如何从0到1设计一个MQ消息队列

    消息队列作为系统解耦,流量控制的利器,成为分布式系统核心组件之一. 如果你对消息队列背后的实现原理关注不多,其实了解消息队列背后的实现非常重要. 不仅知其然还要知其所以然,这才是一个优秀的工程师需要具 ...

  8. $POJ2442\ Sequence$ 堆

    正解:堆 解题报告: 传送门$QwQ$ 全场除了我都切了系列$kk$ 首先看$n=2$的情况. 首先暴力不说?就记录一个$sum$再分别记录$xy$两维的下标存到堆里面每次取队头并继续扩展就完事$Qw ...

  9. ruby 编写控制台进度条

    ruby 中,$stdout.flush 让控制台当前行内容可以重写,以此我们可以做出进度条的效果. def set_progress(index, char = '*') print (char * ...

  10. webpack4的配置你都掌握了么?

    webpack5都出了,webpack4的的基本配置,解析ES6,引入CSS,编译Less,设置image等等,你都会了么? ​解析ES6 了解Babel Babel是一个JavaScript编译器, ...