Servlet

  1. 什么是Servlet?
    servlet是用来处理客户端请求并生成动态web内容的Java程序语言类。Servlets大多是用来处理或者存储HTML表单提交的数据,提供动态内容和管理那些不在HTTP无状态协议中的状态信息。
  2. 解释一个Servlet的架构.
    核心抽象概念肯定是所有servlet必须实现 javax.servlet.Servlet 接口。 每个 servlet 必须直接或者间接实现这个接口, 也可以继承于 javax.servlet.GenericServlet 或者javax.servlet.http.HTTPServlet。最后想提的是,每个 servlet 能够使用多线程服务多个请求。
  3. 一个 Applet 和 一个 Servlet 区别是什么 ?
    一个 Applet 是一个跑在客户机器的 网页浏览器 里面的 客户端java程序。相反,一个 servlet 是跑在网页服务器的服务的容器。一个 applet 能使用用户界面class, 而一个 servlet 不能够有一个用户界面。相反,一个servlet 等待客户端的 HTTP 请求并为每一个请求生成一个响应。
  4. GenericServlet 和 HttpServlet 的区别是什么 ?
    GenericServlet 是一个实现了Servlet 和 ServletConfig 接口的通用的协议无关的 servlet . 那些继承于GenericServlet 类的 servlet 将重写 service 方法 。最后想提的是,为了给Web用户开发一个使用HTTP协议服务的HTTP servlet, 你的 servlet 必须改为继承于 HttpServlet 。查看Servlet的示例 。
  5. 解释一个Servlet的生命周期.
    对每一个客户端的请求,这个Servlet引擎加载servlet和调用它的init方法,以便在servlet初始化。然后, Servlet对象处理所有从客户端来的后续请求,通过为每个请求单独调用服务的方法。最后,该servlet调用服务器的destroy方法。
  6. doGet()和doPost()之间的区别是什么?
    doGet : GET方法附加请求的URL的名称 - 值对。因此,存在客户端的请求字符数量的限制。此外,该请求的参数值为可见,因此,如果有敏感信息不能采用这种方式。
    doPost: POST方法克服了GET请求的限制,将发送请求的值置于body里。此外,发送值的数量没有限制。最后,通过POST请求传递的敏感信息是不可见的
  7. web应用是什么 ?
    web应用是web服务的延伸. 主要有两种类型:面向视觉的和面向服务的. 面向视觉型的应用通过编辑语言来动态展示交互页面. 面向应用的则提供了后端的service.总的来说,就是一堆置于 server’s URL明明空间下的servlets.
  8. 什么是服务端包含 (SSI) ?
    服务端包含是服务端的一种简单脚本语言,主要应用在Web方面,置于servlet标签中. 最常用的地方就是在网页中引入一个或多个文件. 当浏览器加载页面时,使用servlet产生的超文本替换其标签.
  9. 什么是 Servlet 链?
    Servlet 链是指将上一个servlet的结果传到下一个.第二个的结构又可以传到第三个. 最后的servlet负责将响应回复给客户端.
  10. 如何知道请求 servlet的客户端信息 ?
    ServletRequest类可以获取客户端的IP地址或主机名. getRemoteAddr()获取IP getRemoteHost()获取主机名. 示例如下 here.
  11. Http response的结构是什么 ?
    HTTP response 包括了三个部分:
    Status Code: 描述了这次回应的状况. 它可以用来检查这次请求是否成功完成. 一旦请求失败了, 这个status code可以用来寻找原因. 如果你的 servlet 没有返回一个status code, 默认就会返回成功的status code, HttpServletResponse.SC_OK.
    HTTP Headers: 它包含了response的更多信息.举个例子,headers可以反应response的访问date/time, 或者是用于将实体安全地传送到用户的编码形式。可以阅读 how to retrieve headers in Servlet here.
    Body: 它是response的具体内容. 可能包括HTML内容,比如图片。Body包括了紧接Header发送的HTTP事务消息数据字节。
  12. 什么是cookie?session和cookie之间的区别是什么?
    Cookie是Web服务器发送到浏览器的一小块信息,浏览器为每个Web服务器在本地文件中存储cookie。 在以后的请求里, 浏览器对特定的Web服务器,将request和所有特定的Web服务器的cookie一起发送。Session和Cookie之间的区别如下:
    Session无论在客户端浏览器的设置都可以工作。客户端可以选择禁用cookies。然而,Session仍然可以工作,因为客户端没有能力在服务器端禁用Session。
    Session和cookie也有不同的信息存储量。 HTTP会话能够存储任何Java对象,而一个cookie只能保存String对象。
  13. 浏览器和servlet通过什么协议通信 ?
    HTTP协议.
  14. 什么是HTTP通道 ?
    通道是指使用 HTTP或 HTTPS 封装其它的网络协议. HTTP包装了其他的网络通信协议. 其它协议通过HTTP来发送请求的过程就使用了通道.
  15. sendRedirect和 forward 方法的区别?
    sendRedirect创建一个新的请求, forward只是将请求转发.之前请求中包含的对象在redirect后将不可用, 因为产生了一个新的请求. 但是 forwarding不受此限制.通常来说,sendRedirect 比 forward 方法慢一些.
  16. 什么是URL编码和解码 ?
    URL编码就是替换其中的空格和特殊字符, 变成相应的Hex码.解码就是反向操作。

JSP

  1. JSP页面是什么 ?
    一个JSP页面是一个文本文档,包含了两种类型的文本:静态数据和JSP元素。静态数据可以以任何一种基于文本的格式表达,比如HTML或者XML。JSP是一种混合了静态内容与动态生成内容的技术。查看JSP例子
  2. JSP请求是如何被处理的?
    一个JSP请求的到来,浏览器首先以一个jsp扩展的文件名来请求一个页面。然后,Web Server读取到该请求,使用JSP编译器将JSP页面转换为一个servlet类。注意JSP文件只在该页面的第一次请求或者JSP文件已经改变时才编译。生成的servlet类被调用,去处理浏览器的请求。一旦请求处理完,servlet会向客户端返回一个相应。查看如何获取JSP请求中的参数
  3. JSP的优势所在?
    使用JSP技术有以下优势:
    JSP网页被动态的编译,因此开发者很容易更新当前代码。
    JSP网页可预编译。
    JSP网页能容易的组合成静态模版,包括HTML XML片段,且代码可形成动态内容。
    开发者能提供自定义的JSP标签库,且使用类XML语法访问。
    开发者可以在组件级别做逻辑上的改变,但是不能使用程序逻辑编辑个别的网页。
  4. 什么是指令?在JSP中, 包括哪些不同类型的指令?
    指令是JSP引擎所处理的命令,当网页被编译成小程序时,指令用于去设置页面级别的命令,从外部文件插入数据,指定自定义的标签库。指令被包括在<%@ 和%>内。指令的类型分为:
    包含指令:用于包含文件,和当用页面合并文件内容。
    页面指令:用于定义JSP页面的具体属性,比如错误页面和缓冲池。
    标签库:用于声明页面中使用到的自定义标签库。
  5. 什么是JSP的actions?
    JSP的actions是使用XML语法结构来控制Servlet引擎的行为。JSP的actions是在当JSP页面请求的时候才执行。它们会动态插入一个文件中,再利用JavaBeans的组件,转发给用户到另一个页面,或者生成带Java插件的HTML页面。以下是一些可以操作的actions:
    jsp:include- 当JSP页面被请求的时候,包含了一个文件。
    jsp:useBean- 寻找或者实例化一个JavaBean。
    jsp:setProperty- 设置JavaBean的属性。
    jsp:getProperty- 得到JavaBean的属性。
    jsp:forward- 转发请求到新的页面。
    jsp:plugin- 生成特定浏览器的代码。
  6. 什么是Scriptlet?
    在Java Server Page(JSP)技术中,scriptlet是嵌入在JSP页面的其中一块Java代码。scriptlet是标签内的任何东西。在这些标签之间,用户可以添加任何有效的scriptlet。
  7. 什么是声明?
    声明类似于Java中的变量声明。声明是为表达式或者scriptlets后续的使用而声明的变量。添加一个声明,你必须在你的声明中使用序列。
  8. 什么是表达式?
    JSP表达式是把一个脚本语言表达式的值插入进来,转换成字符串,进入数据流之后再通过web服务器返回给客户端。表达式的定义是在<% = 和 %>标签之间。
  9. 什么是隐式对象?他们是什么?
    JSP隐式对象是指JSP容器在每页中提供给开发人员的Java对象。开发人员可以直接调用他们,而不需要任何显示声明。JSP隐式对象也被称为预定义变量。以下对象都是在JSP页面中隐式存在的:
    application
    page
    request
    response
    session
    exception
    out
    config
    pageContext

Java知识整理——ServletJSP相关推荐

  1. 面试之Java知识整理

    1.面向对象都有哪些特性 继承.封装.多态性.抽象 2.Java中实现多态的机制是什么? 继承与接口 3.Java中异常分为哪些种类 3.1按照异常需要处理的时机分为编译时异常(CheckedExce ...

  2. 木木的Java知识整理——JDBC与MyBatis的区别

    看了几篇大佬的相关整理,可以总结成如下几部分. JDBC与MyBatis的区别 一.各自定义 1.1 JDBC 1.2 MyBatis 二.JDBC与MyBatis的区别 一.各自定义 1.1 JDB ...

  3. Java知识整理——反射

    Java的反射机制是做什么的? 主要功能就是可以根据一个类的名称来创建一个类的实例,并调用实例的方法. 我们通常情况下创建一个类实例的方法,就是new ABC()这样的方式来创建,那为什么还要用反射绕 ...

  4. Java知识整理——远程方法调用

    什么是RMI ? Java远程方法调用(RMI)是一个Java API,它执行的面向对象的等价远程过程调用(RPC)的方法,包括了直接传输序列化的Java类和分布式垃圾收集的支持. 远程方法调用(RM ...

  5. Java知识整理——JDBC

    什么是 JDBC ? JDBC是一个抽象层,允许用户在不同数据库间进行选择.JDBC使开发人员能够在Java中编写数据库应用程序,而不必让自己关心一个特定的数据库的底层细节. 解释JDBC中驱动的作用 ...

  6. Java知识整理——异常处理

    Java中的两种异常是什么?它们之间的区别? Java有两种类型的异常:checked与unchecked(检查与未检查) 异常. 如果unchecked异常可能会在方法或构造函数的执行时被抛出从而蔓 ...

  7. Java知识整理——垃圾回收

    Java中垃圾回收的目的是什么, 它什么时候被使用 ? 垃圾回收用于识别和丢弃程序不再需要的对象, 以便回收和复用资源. System.gc() 和Runtime.gc()方法用途? 这些方法用于提醒 ...

  8. Java知识整理——容器

    Java Collections框架的基本接口 ? Java Collections 框架 提供了一系列支持对象集合操作的设计良好的接口和类. Java Collections框架中最基础的接口是: ...

  9. Java知识整理——线程

    进程与线程的区别 ? 进程是一个程序的执行(即正在运行的程序), 然而线程是在进程中独立的执行序列. 一个进程可以包含很多线程. 线程有时被称为轻量级的进程. 说下创建线程的不同方式. 你倾向于哪种方 ...

最新文章

  1. 先进机器人系统中的关键技术
  2. SqlServer sa 用户登录失败的解决方法
  3. 离线数据处理与流数据处理的区别
  4. 2020-11-17(补码的非)
  5. SQL with(nolock)详解
  6. html从入门到卖电脑(三)
  7. 股市最典型的穷人思维是什么?
  8. 查询英语单词 - 有道官方(一)
  9. Katalon Recorder 自动录制 Selenium 爬虫脚本
  10. LINUX编译libusb
  11. java俄罗斯方块算法_【俄罗斯方块java】分享一个Java写的俄罗斯方块源码 算法简单(300行) 注释详细!...
  12. Jeff Dean的神话
  13. 打开计算机 显示不支持此接口,新装的电脑系统,打开图片提示不支持此接口!怎么解决!...
  14. MariaDB的官方手册译文
  15. html 银联图标,银联标志logo图片 云闪付app扫银联标识领获红包
  16. 痛与快乐有一个代码是什么_痛苦与快乐
  17. 如何固定输出每行打印的个数
  18. EditPlus中文版-具有 FTP、FTPS 和 sftp 功能的文本编辑器
  19. 基于java jsp+mybatis+Spring+的SSM二手交易网站设计实现
  20. C语言差的函数公式,在C语言中erfc函数怎么表示,也就是x的误差补偿函数,急求高人指点。。。...

热门文章

  1. 对校招生培养工作的建议_如何提升人才培养质量?西华的老师们正面临一场大考...
  2. POJ2828线段树 插队(单点更新)
  3. WINVER和_WIN32_IE等宏的含义
  4. 局域网arpsniffer源码剖析
  5. Linux 基础I/O :文件描述符,重定向,文件系统,软链接和硬链接,动态库和静态库
  6. 万字整理,图解Linux内存管理所有知识点
  7. Django上传文件及分页
  8. B站QUIC实践之路
  9. Navicat Premium 12安装及常用快捷键
  10. 当 AI 足够聪明时,我们的验证码还有用吗?