java web 部分

  1. jsp作用域由大到小

  2. 过滤器有哪些作用?

  3. 过滤器的用法?(对客户端的请求统一编码和对客户端进行认证)

  4. JSP和Servlet中的请求转发分别如何实现?

  5. JSP 和 Servlet 有哪些相同点和不同点,他们之间的联系是什么?

  6. 详细描述 MVC。

  7. 做项目中得到经验。

1、http的请求过程?


①:DNS解析域名得到IP地址

②:客户端与服务器建立连接(TCP三次握手)

③:客户端发起请求

④:服务器接收到请求根据端口号.路径等找到对应资源文件,响应源代码给客户端

⑤:客户端拿到请求到的数据(html页面的源代码),开始解析页面以及请求资源

⑥:客户端渲染页面

⑦:web服务器断开连接(四次挥手)

2、http请求的GET与POST方式的区别


Form 中的get和post方法,在数据传输过程中分别对应了http协议的GET和POST方法。二者主要区别如下:

(1)Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据;

(2)Get将表单中数据按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL;

(3)Get是不安全的,因为在传输过程,数据被放到请求的URL中;Post的所有操作对用户来说都是不可见的;

(4)Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post;

(5)Get限制Form表单的数据集必须为ASCII字符,而Post支持整个ISO10646字符集;

(6)Get是form的默认方法。

3、解释一下什么是servlet?


Servlet 是一种独立于平台和协议的服务器端的 Java 技术,可以用来生成动态的 Web 页面。与传统的 CGI(计算机图形接口)和许多其他类似 CGI 技术相比,Servlet 具有更好的可移植性、更强大的功能,更少的投资,更高的效率,更好的安全性等特点。

Servlet 是使用 Java Servlet 应用程序接口(API)及相关类和方法的 Java 程序。Java 语言能够实现的功能,Servlet 基本上都能实现(除了图形界面之外)。Servlet 主要用于处理客户端传来的 Http 请求,并返回一个响应。通常所说的 Servlet 就是指 HttpServlet,用于处理Http 请求,其能够处理的请求有 doGet()、doPost()、service()等方法。在开发 Servlet 时,可以直接继承javax.servlet.http.HttpServlet。Servlet 需要在web.xml 中进行描述,例如:映射执行 Servlet 的名字,配置 Servlet 类、初始化参数,进行安全配置、URL 映射和设置启动的优先权等。Servlet 不仅可以生成 HTML脚本输出,也可以生成二进制表单输出。

Servlet 应用范围很广泛,我们现在用的很多流行的框架技术,其最基本的代码离不开

Servelt 的支持。比如我所熟悉的 SSH 框架,Spring 容器启动时,要在 web.xml 中装载 Spring容器的 ActionContext 类来初始化 Spring 的一些参数,如进行依赖注入、数据库表的映射、初始化系统的安全配置设置 read 等属性等一些相关操作。

4、说一说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()方法。

5、Servlet的基本架构


package test;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class ServletName extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

}

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

}

}

6、servlet API 中forward()与redirect()的区别?


前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其他服务器上的资源,则必须使用sendRedirect()方法。

7、Request对象的常用方法


setAttribute(String name,Object):设置名字为 name 的 request 的参数值

getAttribute(String name):返回由 name

getCookies():返回客户端的所有 Cookie 对象,结果是一个 Cookie 数组

getCharacterEncoding():返回请求中的字符编码方式

getParameter(String name):获得客户端传送给服务器端的有 name 指定的参数

getRequestURI():获取发出请求字符串的客户端地址

getRemoteAddr():获取客户端的 IP 地址

getRemoteHost():获取客户端的名字

getServerName():获取服务器的名字

getServletPath():获取客户端所请求的脚本文件的路径

getServerPort():获取服务器的端口号

removeAttribute(String name):删除请求中的一个属性

8、简述HttpSession的作用、使用方法,可用代码说明


HttpSession中可以跟踪并存储用户信息,把值设置到属性中,有2个方法:setAttribute()、getAttribute();

例如:在一个方法中用session.setAttribute(“student”,student);在一个session中设置一个属性名为student,值为一个名为student的对象。而后可在同一session范围内用getAttribute(“student”)取出该属性,得到student对象。

9、jsp有哪些内置对象?作用分别是什么?分别有什么方法?


jsp共有以下9个内置对象:

request 用户端请求,此请求会包含来自GET/POST请求的参数

response 网页传回用户端的回应

pageContext 网页的属性是在这里管理

session 与请求有关的会话期

application servlet正在执行的内容

out 用来传送回应的输出

config servlet 的构架部件

page JSP网页本身

exception 针对错误网页,未捕捉的例外

request:表示 HttpServletRequest 对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取 cookie, header, 和 session 数据的有用的方法。

response:表示 HttpServletResponse 对象,并提供了几个用于设置送回 浏览器的响应的方法(如 cookies,头信息等)

out:对象是 javax.jsp.JspWriter 的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。

pageContext:表示一个 javax.servlet.jsp.PageContext 对象。它是用于方便存取各种范围的名字空间、servlet 相关的对象的 API,并且包装了通用的 servlet 相关功能的方法。

session:表示一个请求的 javax.servlet.http.HttpSession 对象。Session 可以存贮用户的状态信息

applicaton :表示一个 javax.servle.ServletContext 对象。这有助于查找有关 servlet 引擎和servlet 环境的信息

config:表示一个 javax.servlet.ServletConfig 对象。该对象用于存取 servlet 实例的初始化参数。

page:表示从该页面产生的一个 servlet 实例

10、介绍在JSP中如何使用JavaBean?


在 JSP 中使用 JavaBean 常用的动作有:

<jsp:useBean />:用来创建和查找 bean 对象;

<jsp:setProperty />:用来设置 bean 的属性,即调用其 setXxx()方法;

<jsp:getProperty />:用来获得 bean 的属性,即调用其 getXxx()方法

11、JSP的常用指令


isErrorPage(是否能使用Exception对象),isELIgnored(是否忽略表达式)

12、jsp的四种范围?


常用的JavaScript设计模式

  • 单体模式

  • 工厂模式

  • 例模式

函数

  • 函数的定义

  • 局部变量和全局变量

  • 返回值

  • 匿名函数

  • 自运行函数

  • 闭包

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/40596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PCB设计时,信号走线要先过ESD/TVS管,这是为什么?

目录 为什么有上面这个问题&#xff1f; 问题的原因——走线电感 走线电感的阻抗 电感的影响 小结 都说接口处的信号要先过ESD/TVS管&#xff0c;然后拉到被保护器件&#xff0c;为什么不这样做效果就不好&#xff1f;那如果受板子实际情况限制&#xff0c;必须这样layout…

Python - 单引号与双引号

Python 版本 3.11.4 字符串 单个文字符称为字符&#xff0c;多个文字符成为字符串。 字符串需要被&#xff08;单引号&#xff09;或者""&#xff08;双引号&#xff09;包括。 language "Python"language Python 以上写法都是合法的。 单引号与双…

Zabbix 配置MySQL数据库监控

Zabbix MySQL数据库监控简介 通过 Zabbix 监控 MySQL 数据库&#xff0c;可以获取有关数据库性能、运行状况和资源使用情况的详细信息&#xff0c;帮助及时发现和解决问题。 Zabbix官方提供了一个名为MySQL by Zabbix agent的监控模板&#xff0c;该模板专为 Zabbix 通过 Zabb…

探索Vim表达式寄存器:提升文本处理的高级技巧

探索Vim表达式寄存器&#xff1a;提升文本处理的高级技巧 Vim是一款功能强大的文本编辑器&#xff0c;它拥有丰富的寄存器系统&#xff0c;用于存储文本、命令等。表达式寄存器是Vim中一种特殊的寄存器&#xff0c;允许用户存储并操作表达式的结果。本文将详细介绍如何在Vim中…

使用Spring Boot和mkcert解决本地及局域网HTTPS访问

在现代Web开发中&#xff0c;HTTPS已经成为保障数据传输安全的标准。然而&#xff0c;在开发和测试阶段&#xff0c;配置HTTPS可能会带来一些额外的复杂性。尤其是在本地开发环境和局域网内网环境中&#xff0c;获得和配置证书通常是一个挑战。本文将介绍如何使用Spring Boot和…

关于在自己的生活里面,增加喝咖啡的这道手续

前言&#xff1a;我总在告诉我自己&#xff0c;我自己应该如何&#xff1f;我的未来应该如何&#xff1f;到那时实际上&#xff0c;自己没有办法能够理解的确实我的现在&#xff0c;我应该依靠咖啡度过我自己剩下的岁月&#xff0c;接下来&#xff0c;让自己用自己的方式来不断…

华为5288 V5服务器安装BCLinux8U4手记

本文记录了华为5288 V5服务器安装BCLinux8U4操作系统的过程。 一、系统环境 1、服务器 华为FusionServer Pro 5288 V5服务器 2、操作系统 BCLinux-R8-U4-Server-x86_64-220725.iso 官网下载地址 sha256sum&#xff1a;1d31d3b8e02279e89965bd3bea61f14c65b9d32ad2ab6d4eb…

DTP 抽取出错:data target is locked by process***

怎么会显示被几年前的一个process lock住了呢&#xff1f; 搞不明白。 不管怎样&#xff0c;去RSPM_MONITOR改&#xff0c;data target填上ADSO名&#xff0c;选时间&#xff0c;Process status选Y。 找到这条&#xff0c;双击&#xff0c;发现是active的状态。可能是因为前后…

springboot城市菜园共享系统-计算机毕业设计源码00524

目 录 摘要 1 绪论 1.1 研究背景与意义 1.2 国内外研究现状和发展趋势 1.3论文结构与章节安排 2 城市菜园共享系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.…

Apache Kylin与Impala:深入比较与应用场景分析

Apache Kylin与Impala&#xff1a;深入比较与应用场景分析 在大数据处理领域&#xff0c;Apache Kylin和Impala都是Apache软件基金会下的项目&#xff0c;它们各自提供了独特的解决方案来处理大规模数据集。了解它们的不同之处对于选择合适的数据处理工具至关重要。本文将深入…

[Linux安全运维] rsyslog

rsyslog 1. 什么是 rsyslog rsyslog 是一个高性能的日志处理程序&#xff0c;能够接收、处理并转发日志消息。它被广泛应用于 UNIX 和 Linux 系统中&#xff0c;用于系统日志记录和管理。 2. rsyslog 的主要功能 高性能&#xff1a;能够处理大量日志消息&#xff0c;适用于…

C++那些事之小项目实战-进程间通信

小项目实战之进程间通信 进程间通信是一个非常重要的话题&#xff0c;特别是像一些大型项目都有它的影子&#xff0c;例如&#xff1a;PostgreSQL使用了管道完成copy的进程间通信&#xff0c;那么本节也将基于这个主题&#xff0c;使用C去搭建一个进程间通过管道通信的demo出来…

聚变反应堆设计的一些关键方面和最新进展

聚变反应堆设计是一个复杂且高度专业化的领域&#xff0c;旨在实现核聚变反应以产生清洁能源。以下是对聚变反应堆设计的一些关键方面和最新进展的概述&#xff1a; ### 一、聚变反应堆的基本原理 核聚变是两个较轻的原子核结合成一个较重的原子核&#xff0c;并在此过程中释…

消除笔怎么用?教你消除笔的正确用法

消除笔&#xff0c;也称为橡皮擦工具或克隆笔工具&#xff0c;是图像处理软件中的一种常用工具。它的主要作用是通过取样图像中的某一部分&#xff0c;然后覆盖掉不想要的图像内容&#xff0c;从而实现修复、去除瑕疵等效果。那么有哪些软件具有消除笔功能&#xff0c;又是怎么…

网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇就够了。

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了.2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发.3.有时多google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答.4.遇到实在搞不懂的,可以先放放,以后再来解决. 基…

欧洲杯:高精度定位技术,重塑体育赛事新体验

随着科技的飞速发展&#xff0c;体育赛事的观赏体验与竞技水平正被不断推向新的高度。在即将到来的2024年欧洲杯赛场上&#xff0c;一项革命性的技术——高精度定位&#xff0c;正悄然改变着比赛的每一个细节&#xff0c;为球迷们带来前所未有的观赛享受&#xff0c;同时也为运…

昇思25天学习打卡营第7天|保存与加载

Python语言 AI框架&#xff1a;Mindspore 1.模型构建 class Network(nn.Cell):def __init__(self):super().__init__()self.flatten nn.Flatten()self.dense_relu_sequential nn.SequentialCell(nn.Dense(28*28, 512, weight_init"normal", bias_init"zeros…

力扣双指针算法题目:移动零

1.题目 . - 力扣&#xff08;LeetCode&#xff09; 2.思路解析 这个题目的思路和“使用递归排序快速排序解决数组的排序问题”相同 class solution { public:void QuickSort(vector<int>& nums, int left, int right){if (left > right) return;int key left…

VSCode常用的一些插件

Chinese (Simplified) 汉语&#xff08;简体&#xff09;拓展包。 Auto Close Tag 可以自动增加xml/html的闭合标签。 CodeSnap 截图神器。截图效果在下面。 Dracula Official vscode一个很好看的主题。 Git Graph git管理工具。 GitHub Repositories 有了它&#xff0c;不…

AI一键音频转文字工具 速度超快,支持实时转换,无需联网,本地整合包下载

这是 CapsWriter-Offline &#xff0c;一个 PC 端的语音输入、字幕转录工具。可用实现简单一键将音频文件转换成文字的懒人工具。 两个功能&#xff1a; 1、实时转换&#xff0c;按下键盘上的 大写锁定键&#xff0c;录音开始&#xff0c;当松开 大写锁定键 时&#xff0c;就会…