JavaWeb总结(常见笔面试题)

Http

1.网络编程要解决的两个主要问题

  (1)如何准确的定位网络上的一台或者多台主机

  (2)找到主机后如何可靠的进行有效的数据传输

2.IP负责网络主机的定位

  TCP提供可靠的或是非可靠的数据传输机制

3.OSI七层模型

   物理层-数据链路层-网络层-传输层-会话层-表示层-应用层

  TCP/IP模型

  网络接口层-网络层-传输层-应用层 

4.OSI各层使用的协议

(1)应用层:HTTP-超文本传输协议

(2)传输层:TCP、UDP协议

             TCP:面向连接的可靠的协议,比UDP多了一个建立连接的时间

             UDP:无连接不可靠协议,有大小限制,64KB以内,传输效率高          

5.端口号用来识别计算机上的应用程序,http使用的80端口

6.Http是一个基于请求/响应模式的,无状态的协议

7.Http请求由三部分组成:请求头,消息报头,请求正文

8.Http请求方法:GET、POST

9.Http响应:状态行,消息报头,响应正文 

10.状态码

    1XX:指示信息-表示请求已经接收,继续处理

扫描二维码关注公众号,回复: 4668713 查看本文章

    2XX:成功-表示请求已经被成功接收,理解

    3XX:重定向-要完成必须进行进一步操作

    4XX:客户端错误-请求无法实现或请求语句错误

     5XX:服务端错误-服务器未能实现合法请求

      

       200:OK-客户端请求成功

       301:资源(网页等)被永久转移到其它URL

       302:临时移动,(重定向)

       400:客户端请求有语法错误,不能被服务器所理解

       401:请求未经授权

       403:接收到请求但是拒绝服务

       404:请求资源不存在

       500:服务器发生了不可预期的错误

       503:服务器当前不能处理客户端请求,一段时间之后可能恢复正常

补充

1.Http的长连接和短连接

   Http1.1默认保持长连接,数据完成传输后TCP连接不断开

   Http1.0默认保持短连接,每进行一次Http操作,就建立一次操作

2.Http1.0和Http1.1的区别

  (1)Http1.1支持长连接

  (2)Http1.1增加了host字段

  (3)HTTP/1.1 加入了一个新的状态码 100(Continue)

3.get和post的区别

    (1)get请求的数据会附在URL之后,即HTTP协议头中,以?分割URL和传输数据,参数之间以&相连post把提交的数据放在Http包的包体中

   (2)get方式请求有大小限制(1024),post没有

   (3)post的安全性比get高

4.Http中重定向和请求转发的区别

    (1)重定向是客户端行为,请求转发是服务端行为

    (2)重定向:两次请求两次响应,浏览器地址发生变化,可以访问自己web之外的资源,传输的数据会丢失

              请求转发:一次请求一次响应,浏览器地址不会发生变化,访问的是自己本身的web资源,传输数据不会丢失

 

Servlet

1.Servlet的框架的核心是javax.servlet.Servlet的接口

2.Servlet接口的五个方法

  (1)init()方法:初始化servlet对象

  (2)service()方法:用于响应客户的请求

  (3)destroy()方法:当servlet对象退出生命周期时,负责释放占用的资源

3.如何编写一个Servlet

  (1)编写一个普通类,实现servlet接口,或者继承HttpServlet

  (2)编写web.xml文件

4.ServletRequest接口

  封装了客户请求信息,HttpServletRequest是ServletRequest的实现类

5.ServletResponse接口

  该接口为Servlet提供了返回响应结果的方法

6.Servlet的生命周期

  三个阶段:初始化阶段、响应客户阶段、终止阶段

  对应的三个方法:init()(只会调用一次)、service(),destroy()

7.ServletContext

   当Servlet容器启动Web应用时,并为每个Web应用创建唯一一个ServletContext对象,可以将其理解为一个Web应用服务器端组件的共享内存

   setAttribute(String name,Object object)把一个对象和一个属性名绑定,存储在ServletContext中

8.Servlet多线程问题

  最佳的解决办法是:去除实例变量,使用局部变量

 

Jsp

1.Jsp(Java service page)是用于开发动态web资源的技术

2. Jsp执行过程

  用户-请求-查找对应的Jsp-是否存在-是-是否第一次调用或者修改过jsp-是-调用jsp解析引擎-将jsp编译为.class文件

                                          否-字节码文件-执行字节码文件

3.Jsp语法:

   (1)编译器指令

   (2)脚本语法

   (3)动作语法

4.脚本语法

  <!--注释(非开发人员可见)-->

  <%--注释(非开发人员不可见)--%>

5.Jsp内置了9个对象

  (1)request

  (2)response

  (3)out

  (4)pageContext

  (5)session

  (6)Application

  (7)config

  (8)page

  (9)exception 

6.用户登录信息,需要保存在session中

7.Servlet为session创建标识符,称为SessionID,Servlet容器把Session作为Cookie保存在客户浏览器中

8.Cookie是用户访问Web服务器时,服务器在硬盘上存放的信息。服务器可以根据Cookie来跟踪用户,用来获取用户之前的访问状态,一个cookie包含键值对的方式

9.Servlet过滤器负责过滤的Web组件可以是Servlet、jsp或者Html文件

10.所有的Servlet过滤器都必须实现javax.servlet.Filter接口,含有三个必须实现的的方法:init()-初始化、doFilter()-完成实际过滤操作、destroy()-释放占用资源

11.Listener是Servlet的监听器,可以监听客户端的请求,服务端的操作

12.El表达式-替换掉Jsp页面中大量的Java代码

13.El提供“.”和“[]”来获取数据

  ${sessionScope.user.name}    ${sessionScope.user[“name”]}

14.EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。

   因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。

15.获得当前Web应用的名字

  ${pageContext.request.contextPath}

16.JSTL是Jsp的标准标签库

  <c:out>  value  defult

  <c:set>  value var scope

  <c:if>  text scope

  <c:choose>,<c:when>(text),<c:otherwise>

  <c:foreach>  var item="${str}"

补充

1.Cookie和session的区别

  (1)cookie是用户访问Web浏览器时,服务器在硬盘上存放的信息, session是存放在web服务器端的一块信息

  (2)无论客户端怎样设置,session都可以正常工作,当客户端禁用cookie时无法使用cookie

  (3)session可以存储任意java对象,cookie只能存储String类型的对象

2.Jsp和Servlet的区别

  (1)jsp是html页面中内嵌Java代码,侧重于页面展示

  (2)Servlet是html和Java代码分离,侧重于逻辑控制

 

HTML

1.HTML超文本标记语言

2.一个HTML页面包含四部分:<html>元素、<head>头部元素、<body>主体元素、<title>标    题元素

3.常用标签

   (1)自闭合 <br/><hr/>(水平分割线)

   (2)有开始有结束

     <p></p> 段落

        <a><a>超链接 <a href="javascript:void(0);"onclick="alert('我是超链接')">取消默认的事件</a>

 

CSS

4.CSS样式表类别-主要是用来为网页中的元素进行格式设置以及进行网页排版和风格设计

   内嵌样式表、内部样式表、外部样式表

5.CSS选择器:HTML选择器、类选择器、ID选择器

 

JavaScript

1.Java和JavaScript的区别

  (1)Js是基于对象的,Java是面向对象的

  (2)Js是动态语言,Java不是动态语言

  (3)Js是解释性语言,Java是编译性语言

2.声明变量用var

3.Js中数据类型分为原始数据类型和对象类型

  原始数据类型包括数字,字符串,boolear,和null、undefined(任何未被赋值的变量都是这个类型。)

4.javascript 消息框

 (1)警告框   alert("文本")

 (2)确认框   confirm("文本")

 (3)提示框   prompt("文本")

5.数组和字符串的长度都是使用length属性

6.事件

  (1)onbulr 失去焦点

  (2)onchange 值域发生改变触发事件

  (3)onclick 鼠标点击事件

  (4)onfocus 获得焦点事件

  (5)onkeydown 键盘按下事件

7.什么是javaScript

  是客户端和服务器的脚本语言,是基于对象的解释性语言 

8.XML的用途

  (1)存储数据  (2)分离数据  (3)交换数据  (4)共享数据 

9.DTD和scheme:定义语法规则

10.DOM的四个基本接口:Document、Node、NodeList、NamedNodeMap

11.什么是xml,使用xml的优缺点,xml的解析器有哪几种,分别有什么区别?

   Xml是一种可拓展标记语言,支持自定义标签,使用DTD和Scheme标准化Xml的结构

   优点:用于配置文件,格式统一,复合标准

   缺点:数据传输需要流量

   解析器有两种:DOM和SAX,其中,使用DOM解析,xml文档以DOM树形结构载入内存,而SAX采用的是事件模型

AJAX

1.异步的JavaScript和Xml的缩写

2.MIME是描述消息内容类型的因特网标准

3.Document对象:每个载入浏览器的HTML都会成为Document对象

4.AJAX的核心是JavaScript和XMLHttpRequest

5.Ajax 的最大特点:

   可以实现局部刷新,在不更新整个页面的前提下维护数据,提升用户体验度

 

JQuery

1.js中的onload事件是等页面结构即:dom元素对象加载完后,还有其他的图片、音频信息等二次请求信息加载完成后进行触发,而jQuery中的ready()方法是在页面结构加载完成后,即dom元素加载完成后就进行触发。 

 

猜你喜欢

转载自blog.csdn.net/zjf1665119803/article/details/83656369