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

相关文章

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

Java Spring ApplicationEvent 代码示例解析

《JavaSpringApplicationEvent代码示例解析》本文解析了Spring事件机制,涵盖核心概念(发布-订阅/观察者模式)、代码实现(事件定义、发布、监听)及高级应用(异步处理、... 目录一、Spring 事件机制核心概念1. 事件驱动架构模型2. 核心组件二、代码示例解析1. 事件定义

SpringMVC高效获取JavaBean对象指南

《SpringMVC高效获取JavaBean对象指南》SpringMVC通过数据绑定自动将请求参数映射到JavaBean,支持表单、URL及JSON数据,需用@ModelAttribute、@Requ... 目录Spring MVC 获取 JavaBean 对象指南核心机制:数据绑定实现步骤1. 定义 Ja

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor