文章目录
- 一. HTML
- 二. CSS
- 三. JavaScript
- 1. 引入
- 2.语法/输出语句
- 3. 变量/数据类型
- 4. 运算符
- 5. 流程控制语句
- 6. 函数
- 7. 对象
- 8. 事件监听
- 四. Servlet
- 1.执行流程
- 2. 生命周期
- 3. 常用方法
- 4. 体系结构
- 5. 配置Servlet
- 五. JSP
- 1. 简介
- 2. JSP原理
- 3.脚本
- 4.JSP缺点
- 5. EL表达式
- 6. JSTL标签
- 7.MVC模式
- 六. AJAX
- 七. Axios
- 八. 常见八股文
- 1. 说一说Servlet的生命周期?
- 2. Servlet API中forward()与redirect()的区别?
- 3.request.getAttribute()和 request.getParameter()有何区别?
- 4. jsp静态包含和动态包含的区别?
- 5. MVC的各个部分都有那些技术来实现? 如何实现?
- 6. jsp有哪些内置对象?作用分别是什么?
- 7. jsp 和 servlet 有什么区别?
- 8. tomcat容器是如何创建servlet类实例?用到了什么原理?
- 9. AJAX应用和传统Web应用有什么不同?
- 10. Ajax的实现流程是怎样的?
- 11.HTTP中重定向和请求转发的区别
一. 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
八. 常见八股文
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 资源,传输的数据不会丢失。
个人理解