JavaWeb


在这里插入图片描述

一. HTML

在这里插入图片描述

  • 标签
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述action="#"表示提交当前页面
    在这里插入图片描述

二. CSS

在这里插入图片描述
css如何结合html使用
在这里插入图片描述

三. JavaScript

1. 引入

在这里插入图片描述
在这里插入图片描述

2.语法/输出语句

在这里插入图片描述
在这里插入图片描述

3. 变量/数据类型

在这里插入图片描述
在这里插入图片描述

4. 运算符

在这里插入图片描述

5. 流程控制语句

在这里插入图片描述

6. 函数

在这里插入图片描述
在这里插入图片描述

7. 对象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
BOM浏览器对象模型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
DOM文档对象模型
在这里插入图片描述
在这里插入图片描述

8. 事件监听

在这里插入图片描述
在这里插入图片描述

四. Servlet

在这里插入图片描述

1.执行流程

在这里插入图片描述

2. 生命周期

在这里插入图片描述

3. 常用方法

在这里插入图片描述
重点掌握 init service destroy

4. 体系结构

在这里插入图片描述

5. 配置Servlet

在这里插入图片描述
在这里插入图片描述

五. JSP

1. 简介

在这里插入图片描述
在这里插入图片描述

2. JSP原理

在这里插入图片描述

3.脚本

在这里插入图片描述

4.JSP缺点

在这里插入图片描述

5. EL表达式

在这里插入图片描述

6. JSTL标签

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.MVC模式

在这里插入图片描述
在这里插入图片描述

六. AJAX

在这里插入图片描述

实现前后端分离
搜索联想,比如在百度输入框输入 奥运,会自动联想到 奥运会

在这里插入图片描述

七. Axios

在这里插入图片描述
在这里插入图片描述

八. 过滤器Filter

在这里插入图片描述
在这里插入图片描述

九. 监听器Listener

在这里插入图片描述
在这里插入图片描述

常见八股文

1. 说一说Servlet的生命周期?

Servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口的init(),service()和destroy方法表达。

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的do()方法。结束服务,web容器调用servlet的destroy()方法。

2. Servlet API中forward()与redirect()的区别?

- 从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码**,告诉浏览器重新去请求那个地址**.所以地址栏显示的是新的URL.所以redirect等于客户端向服务器端发出两次request,同时也接受两次response。
- 从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
redirect不仅可以重定向到当前应用程序的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源.
forward方法只能在同一个Web应用程序内的资源之间转发请求.forward 是服务器内部的一种操作.
redirect 是服务器通知客户端,让客户端重新发起请求.
所以,你可以说 redirect 是一种间接的请求, 但是你不能说”一个请求是属于forward还是redirect “
- 从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
- 从效率来说
forward:高.
redirect:低.

3.request.getAttribute()和 request.getParameter()有何区别?

  • request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据。request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。
  • getAttribute是返回对象,getParameter返回字符串
  • getAttribute()一向是和setAttribute()一起使用的,只有先用setAttribute()设置之后,才能够通过getAttribute()来获得值,它们传递的是Object类型的数据。而且必须在同一个request对象中使用才有效。,而getParameter()是接收表单的get或者post提交过来的参数

4. jsp静态包含和动态包含的区别?

  • 为jsp中的编译指令,其文件的包含是发生在jsp向servlet转换的时期,而是jsp中的动作指令,其文件的包含是发生在编译时期,也就是将java文件编译为class文件的时期
  • 使用静态包含只会产生一个class文件,而使用动态包含会产生多个class文件
  • 使用静态包含,包含页面和被包含页面的request对象为同一对象,因为静态包含只是将被包含的页面的内容复制到包含的页面中去;而动态包含包含页面和被包含页面不是同一个页面,被包含的页面的request对象可以取到的参数范围要相对大些,不仅可以取到传递到包含页面的参数,同样也能取得在包含页面向下传递的参数

5. MVC的各个部分都有那些技术来实现? 如何实现?

MVC是Model-View-Controller的简写。Model代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),View是应用的表示面(由JSP页面产生),Controller是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。

6. jsp有哪些内置对象?作用分别是什么?

request:封装客户端的请求,其中包含来自GET或POST请求的参数;
response:封装服务器对客户端的响应;
pageContext:通过该对象可以获取其他对象;
session:封装用户会话的对象;
application:封装服务器运行环境的对象;
out:输出服务器响应的输出流对象;
config:Web应用的配置对象;
page:JSP页面本身(相当于Java程序中的this);
exception:封装页面抛出异常的对象

7. jsp 和 servlet 有什么区别?

  • jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)
  • jsp更擅长表现于页面显示,servlet更擅长于逻辑控制。
  • Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到。
  • Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,Jsp中的Java脚本如何镶嵌到一个类中,由Jsp容器完成。而Servlet则是个完整的Java类,这个类的Service方法用于生成对客户端的响应。

8. tomcat容器是如何创建servlet类实例?用到了什么原理?

当容器启动时,会读取在webapps目录下所有的web应用中的web.xml文件,然后对xml文件进行解析,并读取servlet注册信息。然后,将每个应用中注册的servlet类都进行加载,并通过反射的方式实例化。(有时候也是在第一次请求时实例化)
在servlet注册时加上1如果为正数,则在一开始就实例化,如果不写或为负数,则第一次请求实例化。

9. AJAX应用和传统Web应用有什么不同?

在传统的Javascript编程中,如果想得到服务器端数据库或文件上的信息,或者发送客户端信息到服务器,需要建立一个HTML form然后GET或者POST数据到服务器端。用户需要点击”Submit”按钮来发送或者接受数据信息,然后等待服务器响应请求,页面重新加载

因为服务器每次都会返回一个新的页面, 所以传统的web应用有可能很而且用户交互不友好

使用AJAX技术, 就可以使Javascript通过XMLHttpRequest对象直接与服务器进行交互。

通过HTTP Request, 一个web页面可以发送一个请求到web服务器并且接受web服务器返回的信息(不用重新加载页面),展示给用户的还是同一个页面,用户感觉页面刷新,也看不到到Javascript后台进行的发送请求和接受响应,体验非常好

10. Ajax的实现流程是怎样的?

(1)创建XMLHttpRequest对象,也就是创建一个异步调用对象.
(2)创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.
(3)设置响应HTTP请求状态变化的函数.
(4)发送HTTP请求.
(5)获取异步调用返回的数据.
(6)使用JavaScript和DOM实现局部刷新.

11.HTTP中重定向和请求转发的区别

  • 本质区别:
    转发是服务器行为
    重定向是客户端行为
  • 重定向特点:两次请求,浏览器地址发生变化,可以访问自己 web 之外的资源,传输的数据会丢失。
  • **请求转发特点:**一次强求,浏览器地址不变,访问的是自己本身的 web 资源,传输的数据不会丢失。
    个人理解

12. 什么是过滤器?什么是监听器?什么是拦截器?

  • 过滤器
    定义:依赖于servlet容器; 在实现上基于函数回调,可以对几乎所有请求进行过滤; 缺点是一个过滤器实例只能在容器初始化时调用一次;
    作用: 用来做一些过滤操作,获取我们想要获取的数据: 在过滤器中修改字符编码; 在过滤器中修改HttpServletRequest的一些参数,包括:过滤低俗文字、危险字符等。
  • 监听器
    定义:实现了javax.servlet.ServletContextListener 接口的服务器端程序;随web应用的启动而启动;只初始化一次;随web应用的停止而销毁;
    作用:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。如SpringMVC的监听器org.springframework.web.context.ContextLoaderListener,实现了SpringMVC容器的加载、Bean对象创建、DispatchServlet初始化等。
  • 拦截器
    依赖于web框架,在SpringMVC中就是依赖于SpringMVC框架; 在实现上基于Java的反射机制,属于面向切面编程(AOP)的一种运用; 缺点是只能对controller请求进行拦截,对其他的一些比如直接访问静态资源的请求则没办法进行拦截处理;
  • Servlet与Filter的区别
    Filter是一种特别的Servlet,它们的作用是完全不一样的。 Servlet是用来处理请求的,而Filter是用来过滤检查请求的。

13. Filter的生命周期

  • 启动服务器时加载过滤器的实例,并调用init()方法来初始化实例;
  • 每一次请求时都只调用方法**doFilter()**进行处理;
  • 停止服务器时调用**destroy()**方法,销毁实例。

14. 在单点登录中,如果 cookie 被禁用了怎么办?

单点登录的原理是后端生成一个 session ID,然后设置到 cookie,后面的所有请求浏览器都会带上 cookie,然后服务端从 cookie 里获取 session ID,再查询到用户信息。 所以,保持登录的关键不是 cookie,而是通过cookie 保存和传输的 session ID,其本质是能获取用户信息的数据。 除了 cookie,还通常使用 HTTP 请求头来传输。但是这个请求头浏览器不会像 cookie 一样自动携带,需要手工处理。

15. JavaScript两个同名的方法如何分析?

在这里插入图片描述
只调用最后加载的那一个

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值