javaee基础之serlvet(二)---面试常见问题

2024-06-19 02:48

本文主要是介绍javaee基础之serlvet(二)---面试常见问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

---------------------------------------------------------从网络上找的-----------感谢网友------------------------------------------------------

1、说一说Servlet生命周期

Servlet生命周期包括三部分:

初始化:Web容器加载servlet,调用init()方法

处理请求:当请求到达时,运行其service()方法。service()自动派遣运行与请求相对应的doXXX(doGet或者doPost)方法。

销毁:服务结束,web容器会调用servlet的distroy()方法销毁servlet。

2、get提交和post提交有何区别

(1)get一般用于从服务器上获取数据,post一般用于向服务器传送数据

(2)请求的时候参数的位置有区别,get的参数是拼接在url后面,用户在浏览器地址栏可以看到。post是放在http包的包体中。

比如说用户注册,你不能把用户提交的注册信息用get的方式吧,那不是说把用户的注册信息都显示在Url上了吗,是不安全的。

(3)能提交的数据有区别,get方式能提交的数据只能是文本,且大小不超过1024个字节,而post不仅可以提交文本还有二进制文件。

所以说想上传文件的话,那我们就需要使用post请求方式

(4)servlet在处理请求的时候分别对应使用doGet和doPost方式进行处理请求

3、JSP与Servlet有什么区别

Servlet是服务器端的程序,动态生成html页面发送到客户端,但是这样程序里会有很多out.println(),Java与html语言混在一起

很乱,所以后来sun公司推出了JSP.其实JSP就是Servlet,每次运行的时候JSP都首先被编译成servlet文件,然后再被编译成

.class文件运行。有了jsp,在MVC项目中servlet不再负责动态生成页面,转而去负责控制程序逻辑的作用,控制jsp与javabean

之间的流转。

4、doGet与doPost方法的两个参数是什么

HttpServletRequest:封装了与请求相关的信息

HttpServletResponse:封装了与响应相关的信息

5、request.getAttribute()和request.getParameter

(1)有setAttribute,没有setParameter方法

(2)getParameter获取到的值只能是字符串,不可以是对象,而getAttribute获取到的值是Object类型的。

(3)通过form表单或者url来向另一个页面或者servlet传递参数的时候需要用getParameter获取值;getAttribute只能获取setAttribute的值

(4)setAttribute是应用服务器把这个对象放到该页面所对应的一块内存当中,当你的页面服务器重定向到另一个页面的时候,应用服务器

会把这块内存拷贝到另一个页面对应的内存当中。通过getAttribute可以取得你存下的值,当然这种方法可以用来传对象。

用session也是一样的道理,这是说request和session的生命周期不一样而已。

6、JSP有哪些内置对象,作用是什么?

JSP内置对象
名称作用
request包含用户端请求的信息
response包含服务器传回客户端的响应信息
session与请求有关的会话期
pageContext管理网页属性
application服务器启动时创建,服务器关闭时停止,为多个应用程序保存信息
out向客户端输出数据
configservlet的架构部件
page指网页本身
exception针对错误页面才可使用

7、四种会话跟踪技术作用域

(1)page:一个页面

(2)request::一次请求

(3)session:一次会话

(4)application:服务器从启动到停止。

7、JSP中动态INCLUDE和静态INCLUDE有什么区别

include指令用于把另一个页面包含到当前页面中,在什么时候包含的?再转换成servlet的时候包含进去的。

动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,

并且可以带参数.

静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file="included.htm" %>

8、forward和redirect的区别

转发与重定向

(1)从地址栏显示来说 

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送

的内容从哪里来的,所以它的地址栏还是原来的地址.redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是

新的URL.

(2)从数据共享来说 

forward:转发页面和转发到的页面可以共享request里面的数据.

redirect:不能共享数据.

(3)从运用地方来说 

forward:一般用于用户登陆的时候,根据角色转发到相应的模块.

redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.

(4)从效率来说 

forward:高.

redirect:低.

-----------------------------------------------------------------------分割线-------------------------------------------------------------------------------

1、 Servlet JSP 有什么区别?
Servlet JSP 完成的功能是相同的,都可以接收用户的请求,可以对用户进行响应,可以调用业务方法。
不同点在于JSP 是在html 或者xml 中嵌入了Java 代码或者JSP 的标记,在制作页面方面具有优势,可以使用网页编辑工具来制作网页,然后嵌入Java 或者JSP 的标记。Servlet 是纯Java 代码,通常用于控制,不用于输出。在MVC 模式中,JSP 通常充当视图,Servlet 通常充当控制器。另外,JSP 在运行的时候还要转换成类似于Servlet Java 代码。
2、 Servelt 通常有哪些方法
init 方法,完成初始化
service 方法,包括doGet doPost ,用于接收用户的请求,调用后台的JavaBean 或者EJB ,选择界面对用户响应。
destroy 方法,用于释放资源
3、  谈谈Servlet 的生命周期
当接收到请求的时候,容器察看对应的Servlet 对象是否存在,如果不存在,需要加载Servetl ,实例化Servlet ,调用init 方法进行初始化。如果已经存在,根据用户的请求创建request response 对象,把这两个对象作为参数调用Servlet 对象的service 方法,Servlet 通过这个方法与用户进行交互,方法执行完之后,对请求的处理结束。Servelt 对象继续等待下一个请求。当应用卸载的时候,调用destroy 方法释放资源。多个请求共享Servelt 对象。
4、 Servlet API 的两个主要包
javax.servlet.*;
javax.servlet.http.*;
5、  编写Servlet 需要继承的类是什么?
HttpServlet
6、  编写Servlet 通常需要实现的两个方法是什么?
doGet 方法和doPost 方法
7、 doGet 方法和doPost 方法中的两个参数是什么?
HttpServletRequest HttpServletResponse ,前者封装了与请求相关的信息,后者封装了与响应相关的信息。要获取请求信息,从第一个参数获取,要对用户响应,通过第二个参数。
8、  要获取用户信息,如何获取
request getParameter 方法和getParameterValues 方法,前者用于获取单值表单元素的值,或者用于获取多值的情况,典型的复选框。前者返回的是一个字符串,后者返回的是字符串数组。如果参数指定的表单元素不存在,返回null
9、  要给用户响应信息,如何完成?
设置响应内容的类型:response.setContentType(“text/html;charset=gb2312”);
获取输出流对象:PrintWriter out = response.getWriter();
输出信息:通过out println 方法
10、                Servlet 中选择接面对用户响应,如何实现
两种方式:使用RequestDispatcher response sendRedirect 方法
如果使用RequestDispatcher
RequestDispatcher rd = request,getRequestDispatcher(“ 目标文件”);
rd.forward(request,response);
如果使用sendRedirect 方法
response.sendRedirect(“ 目标文件”);
11、                上面的两种方式有什么区别?
RequestDispatcher forward 方法相当于<jsp:forward> 的作用。类似于方法调用,当执行到这行代码的时候,通过forward 方法转向执行目标文件,把request response 作为参数传递到下一个页面,这样当前页面(Servlet 或者JSP )和目标页面共享了request ,可以通过request 对象传值。response sendRedirect 方法相当于向客户端浏览器发送了一个消息,让浏览器重新请求目标文件,从用户的角度来说,相当于发送了两次请求,每次请求有独立的request response 对象,不能通过request 在两个页面之间传值。从地址栏看,前一种方式在地址栏中显示的第一个文件的路径,后一种方式显示的第二个文件的路径。
12、                Servlet 中如何获取Session 对象,如何获取Cookie
使用request 对象的getSession 方法获取session ,通过getCookies 获取Cookie
13、               Servlet 在哪个文件中进行配置?
Web 应用的WEB-INF 下面的web.xml 中进行配置。
14、                如何配置Servlet
包括两步:Servlet 的声明和Servlet 访问方式的声明。
Servlet 的声明:
<servlet>
<servlet-name>servlet 的名字(自己定义的)</servlet-name>
<servlet-class>servlet 的完整类名</servlet-class>
</servlet>
Servlet 访问方式的声明
<servlet-mapping>
<servlet-name>Servlet 的名字(应该和声明的时候保持一致)</servlet>
<url-pattern> 访问路径</url-pattern>
</servlet-mapping>
15、                编译好的Servlet 类放在什么位置?
放在Web 应用WEB-INF 下面的classes 文件夹中。
16、                假设网站的IP 地址为1.2.3.4 ,端口8878 ,应用的名字hello servlet 的访问方式/hello ,现在要访问这个servlet ,如何访问?
http://1.2.3.4:8878/hello/hello
17、                谈谈Servlet 过滤器的作用?
Servlet 是特殊的Servlet ,能够对特定的请求路径进行过滤,在访问这个路径之前,先执行过滤器,过滤器进行预处理,过滤器决定是否继续执行后续的文件。典型的应用,可以把用户验证的代码写在过滤器中,然后把过滤的路径配制成需要验证的文件的路径。
18、                谈谈Servlet 监听器的作用
Servlet 监听器对特定的事件进行监听,当产生这些事件的时候,会执行监听器的代码。可以对应用的加载、卸载,对session 的初始化、销毁,对session 中值变化等事件进行监听。

这篇关于javaee基础之serlvet(二)---面试常见问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1073799

相关文章

SpringBoot项目删除Bean或者不加载Bean的问题解决

《SpringBoot项目删除Bean或者不加载Bean的问题解决》文章介绍了在SpringBoot项目中如何使用@ComponentScan注解和自定义过滤器实现不加载某些Bean的方法,本文通过实... 使用@ComponentScan注解中的@ComponentScan.Filter标记不加载。@C

Java读取InfluxDB数据库的方法详解

《Java读取InfluxDB数据库的方法详解》本文介绍基于Java语言,读取InfluxDB数据库的方法,包括读取InfluxDB的所有数据库,以及指定数据库中的measurement、field、... 首先,创建一个Java项目,用于撰写代码。接下来,配置所需要的依赖;这里我们就选择可用于与Infl

SpringBoot生成和操作PDF的代码详解

《SpringBoot生成和操作PDF的代码详解》本文主要介绍了在SpringBoot项目下,通过代码和操作步骤,详细的介绍了如何操作PDF,希望可以帮助到准备通过JAVA操作PDF的你,项目框架用的... 目录本文简介PDF文件简介代码实现PDF操作基于PDF模板生成,并下载完全基于代码生成,并保存合并P

springboot 加载本地jar到maven的实现方法

《springboot加载本地jar到maven的实现方法》如何在SpringBoot项目中加载本地jar到Maven本地仓库,使用Maven的install-file目标来实现,本文结合实例代码给... 在Spring Boothttp://www.chinasem.cn项目中,如果你想要加载一个本地的ja

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

springboot健康检查监控全过程

《springboot健康检查监控全过程》文章介绍了SpringBoot如何使用Actuator和Micrometer进行健康检查和监控,通过配置和自定义健康指示器,开发者可以实时监控应用组件的状态,... 目录1. 引言重要性2. 配置Spring Boot ActuatorSpring Boot Act

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

java如何分布式锁实现和选型

《java如何分布式锁实现和选型》文章介绍了分布式锁的重要性以及在分布式系统中常见的问题和需求,它详细阐述了如何使用分布式锁来确保数据的一致性和系统的高可用性,文章还提供了基于数据库、Redis和Zo... 目录引言:分布式锁的重要性与分布式系统中的常见问题和需求分布式锁的重要性分布式系统中常见的问题和需求