JavaWeb 高频面试题,java基础笔试题判断题

本文探讨了JavaScript在HTML中的基本用法,包括内联脚本和外部文件引入,以及DOM模型和事件处理。同时,对比了JSP的动态生成HTML能力,解释了JSP标签、内置对象和域对象,以及静态包含与动态包含的区别,以及Servlet的基础概念。
摘要由CSDN通过智能技术生成

2 JavaScript 与 HTML 的融合的代码实例

1)在 head 或者 body 标签内,用 script 标签来书写 JavaScript 代码

例如在 head 中:

一张网页

一个段落

试一试

在 body 中:

A Web Page

一个段落

试一试

<–!把脚本置于 元素的底部,可改善显示速度,–>

2)使用 script 标签引入单独的 JavaScript 代码文件

略。

3 JavaScript 的语法是怎样的

JavaScript 是弱类型的语言,同时 JavaScript 的数组会自动扩容。

4 介绍一下 JavaScript 的 DOM 模型

JavaScript 中的 DOM (Document Object Model) ,即文档对象模型,是把文档中的标签,属性,文本等转换成对象来管理的模型,通过将其进行对象化,使得我们可以直接根据 DOM 来访问 HTML 文档内容。

DOM 模型常用的方法如下:

| 方法 | 功能 |

| — | — |

| document.getElementById(elementId) | 通过标签的 id 属性查找元素 |

| document.getElementsByName(elementName) | 通过标签的 name 属性查找元素 |

| document.getElementsByTagName(tagname) | 通过标签名查找元素 |

三者的优先级从上到下以此递减。

5 介绍一下 JavaScript 的事件

事件是电脑输入设备与网页页面进行交互的一种响应,可分为静态注册(直接赋予)和动态注册(通过 DOM 模型)。

常用的事件:

| 事件名 | 作用 |

| — | — |

| onload 加载完成事件 | 浏览器页面加载完成后,所执行的 JS 初始化代码 |

| onclick 单击事件 | 用户点击了 HTML 元素 |

| onblur 失去焦点事件 | 用户的光标从原本的某个地方移开就算失去焦点 |

| onchange 内容发生改变事件 | 下拉列表或者输入框的内容发生改变 |

| onsubmit 表单提交事件 | 常用于表单提交前,验证所有表单项是否合法 |

3 JSP

========================================================================

1 说一说 JSP 的定义

JSP 表示的是服务器页面,它的主要作用是代替 Servlet 程序回传 HTML 页面的数据。尽管 JSP 的代码是写在前端的,但其本质是后端语言。

JSP HTML 的融合方式是重新定义一个 .jsp 的文件,然后将 HTML 文件进行复制。

  • 与 JavaScript 相比:虽然 JavaScript 可以在客户端动态生成 HTML,但是很难与服务器交互,因此不能提供复杂的服务,比如访问数据库和图像处理等等;

  • 与纯 Servlet 相比:JSP 可以很方便的编写或者修改 HTML 网页而不用去面对大量的 println 语句;

  • 与静态 HTML 相比:静态 HTML 不包含动态信息。

因此,JSP 的优点:可以动态地生成 HTML 页面,而且还可以方便地与服务器进行交互。

2 说一说 JSP 标签

JSP 共有六种标签,分别为指令标签、声明标签、表达式标签、代码标签、注释标签、动作标签。

指令标签有三种,分别如下:

| 指令 | 描述 |

| :-- | :-- |

| <%@ page … %> | 定义网页依赖属性,比如缓存信息、导入的 Java 类等 |

| <%@ include … %> | 包含其他文件 |

| <%@ taglib … %> | 引入标签库的定义 |

三个脚本标签为:声明标签、表达式标签、代码标签,其作用是在 JSP 页面中加入 Java 代码来实现功能。

| 脚本类型 | 格式 | 作用 | 示例 |

| :-: | :-: | :-: | :-: |

| 声明脚本 | <%! %> | 申明变量或者方法,供后面的 Java 代码使用 | <%! int a, b, c; %> |

| 表达式脚本 | <%= %> | 在 jsp 页面上输出数据 | Today's date: <%= (new java.util.Date()).toLocaleString()%> |

| 代码脚本 | <% %> | 在 jsp 页面中定义自己需要的 Java 代码 | – |

动作标签示例:

| 名称 | 作用 |

| :-: | :-: |

| jsp:forward | 把请求转到一个新的页面。 |

3 说一说 JSP 的九大内置对象

JSP 中的内置对象,是指 Tomcat 在翻译 JSP 页面成为 Servlet 源代码后,内部提供的九大对象。此时翻译而来的 Java 源代码就是由这九大内置对象组合而成的。

| 对象名 | 作用 |

| :-: | :-: |

| request | 请求对象 |

| response | 响应对象 |

| pageContext | JSP 的上下文对象 |

| session | 会话对象 |

| application | ServletContext对象 |

| config | ServletConfig对象 |

| out | JSP输出流对象 |

| page | 指向当前JSP的对象 |

| exception | 异常对象 |

4 说一说 JSP 的四大域对象

域对象是可以像Map 一样存取数据的对象。四个域对象功能一样。不同的是它们对数据的存取范围。首先说明这四大域对象是属于九大内置对象的,四个域对象分别为:

| 域对象 | 所属类 | 作用域 |

| :-: | :-: | :-: |

| pageContext | PageContextImpl 类 | 只在当前 JSP 页面范围内有效 |

| request | HttpServletRequest 类 | 一次请求内有效 |

| session | HttpSession 类 | 一个会话范围内有效(即打开浏览器访问服务器到关闭浏览器) |

| application | ServletContext 类 | 整个 web 工程范围内都有效(只要 web 工程不停止,数据都在) |

5 介绍一下静态包含和动态包含的区别

静态包含的代码为:<%@ include file="/include/include2.jsp"%>

动态包含的代码为:<jsp:include page="/include/include2.jsp"></jsp:include>

静态包含不可以传递参数,而动态包含可以,静态包含适合没有大量 Java 代码的 JSP,而动态包含适合需要传递参数,且含有大量 Java 代码的 JSP。

6 简述转发和重定向的区别

// 转发

request.getRequestDispatcher("/SecondServlet?addParam=newParam").forward(request, response);

// 重定向

response.sendRedirect("/WebSocket/SecondServlet");

  1. 转发只访问服务器一次,而重定向访问服务器两次;

  2. 转发页面的 URL 不会改变,而重定向地址会改变;

  3. 转发只能转发到自己的 web 应用内,重定向可以重定义到任意资源路径;

  4. 转发时两个文件属于同一次请求,所以共用一个 request 域;而重定向会产生一个新的请求,所以无法共享之前的 request 域信息;

可以这么理解:

转发相当于,张三向你借钱,但是你兜里没钱,所以你去找李四借到钱之后借给张三。对于张三而言并不知道你的钱是和李四借的。

重定向相当于,张三向你借钱,你兜里没钱,你告诉他李四有钱,所以张三再次去找李四借钱。

7 简述 JSP 的生命周期

JSP 生命周期定义了 JSP 从创建到销毁的整个过程。JSP 与Servlet 生命周期类似,不同的是,JSP 需要先被编译成 Servlet。

JSP 生命周期阶段如下:

  1. 编译:JSP 通过 servlet 容器编译生成 servlet 类;

  2. 初始化:加载该类,创建其实例,并调用它的初始化方法;

  3. 处理请求:利用该实例处理请求;

  4. 销毁:销毁该实例。

4 Servlet

============================================================================

简述 Servlet 的定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值