【Java企业级开发二】jsp简答题汇总

CH1 jsp简介

  1. jsp组成:HTML文件+java片段+jsp标签

CH2 jsp基础

  1. jsp和servle的关系

本质:
jsp:嵌套java代码的html代码;转换成对应的servlet类运行
servlet:嵌套html代码的Java代码

  1. jsp生命周期

转译
编译
加载
实例化
初始化: _jspInit()
服务 : _jspService()
销毁: _jspDestroy()

  1. 语句转换

声明标签:servlet类成员
脚本标签:_jspService()中的代码
html代码:_jspService()中的out.write()
表达式标签:_jspService中的out.write()

jsp转换servlet区别

CH3 jsp进阶

  1. 九个内置对象

输入输出: out request response
作用域:session application pageContext
不常用:page config exception

  1. 作用域

Application 对应 ServletContext
Session
Request
Page

CH4 web组件复用

  1. 静态包含和动态包含区别

本质区别:先加载原码还是先编译

include伪指令(静态包含include动作指令(动作包含)
规则<%@include %><jsp:include />
编译时间较慢(资源必须被解析)较快
执行时间较快较慢(每次请求资源必须被解析)
灵活性较差(页面内容必须固定)较好(页面在运行时可动态选择)
动作发生时间页面转换期间请求期间
被包含内容文件的内容页面的输出
产生servlet数目1N(动态包含的页面个数是N+1)
  1. forward动作指令与include动作指令

forward动作指令在调用转发操作后不会继续处理指令后的任何代码
include动作指令在调用转发操作后,完成转发操作后将继续处理指令后的代码

CH5 表达式语言

  1. 11个隐含对象

与范围有关:applicationScope sessionScope requestScope pageScope
与输入有关:param paramValues
其他隐含对象:cookie header headerValues initParam pageContext

  1. 自定义el函数
  1. 编写方法所在源文件.java文件:该文件包含el函数的实现
  2. 编写标签库描述符.tld文件:定义el函数名
  3. 修改部署描述符web.xml文件:定义标签库描述符地址
  4. 编写jsp文件.jsp文件:使用el函数

CH6 标准标签库

  1. JSTL:JSP Standard Tag Library

CH7 自定义标签

  1. 自定义简单标签步骤
  1. 编写简单标签实现类
  2. 编写TLD文件
  3. 在web.xml中配置TLD文件
  4. 在JSP页面中使用taglib
  1. SimpleTag的生命周期

初始化setJspContext()
处理标签内容体 setBody()
调用doTag()

  1. 标签文件的伪指令
  1. variable伪指令
  2. tag伪指令:用于设置全局变量,对整个文件进行设置,类似page指令
  3. attribute伪指令:指定属性为静态属性;fragment属性为true允许静态属性中插入jsp代码

调用过程

CH8 安全

  1. 四种认证机制
    都是基于用户名/密码机制
  1. HTTP基本认证:最简单,最常用,密码不加密
  2. HTTP摘要认证:密码加密
  3. HTTPS客户端认证:最安全
  4. HTTP表单认证:不安全;可以定制表单

CH9 Servlet程序结构与部署

  1. servlet映射查找:
  1. 精确查找:请求URL和Servlet映射完全匹配
  2. 路径映射:servlet映射以/开始,以/*结束
  3. 扩展映射:以*开始,以.xxx结束
  4. 映射不匹配:如果没有匹配的路径,找不到对应的Servlet,返回404错误界面
  1. 在Tomcat中部署javaEE应用的方式

CH10 部署描述符

CH11 JavaMail

  1. Apache commons-fileupload 使用步骤

1.创建DiskFileItemFactory
2. 使用factory创建一个ServletFileUpload
3. 使用parseRequest方法解析request得到FileItem列表
4. 用FileItem的write方法写到一个目标文件中

分页

  1. 两种方式
  1. 一次取出,在内存中分页
    优点:只进行一次数据查询,效率高
    缺点:数据不够准确,常取得过期数据,内存耗费巨大
  2. 当用户从页面发出查看特定页面的请求,会根据请求数据向数据库取出一页的数据,每次请求都进行一次数据库检索操作
    优点:数据准确,节省内存
    缺点:多次数据连接都会降低效率(可以使用连接池解决);使用数据库专用的sql语句,通用性低

扩展

  1. cookie与session
    定义:

Cookie: Cookie是HTTP协议的规范之一,它是服务器和客户端之间传输的小数据。浏览器存储在客户端机器上的头信息称作Cookie,它以“ 属性名=属性值; …”方式组成文本信息
Session:session是一次浏览器和服务器的交互的会话在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),一个浏览器独占一个session对象(默认情况下)。服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。

区别:

1、session保存在服务器, cookie保存在客户端
2、session中保存的是对象,cookie中保存的是字符串。
3、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。
4、session默认需要借助cookie才能正常工作。如果客户端完全禁止cookie,session,这种方法将失效。但是如果服务器端启用了url编码,也就是用URLEncoder.encode(“index.jsp?id=3”,“UTF-8”);…把所有的url编码了,则会在url后面出现如下类似的东西index.jsp:jsessionid=fdsaffjdlksfd124324lkdjsf?id=3服务器通过这个进行session的判断。
5 session在用户会话结束后就会关闭了,但cookie因为保存在客户端,可以长期保存
6 cookie:是服务端向客户端写入的小的片段信息。cookie信息保存在服务器缓存区,不会在客户端显现。

1.1 单项选择题 1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的① 、数据信息在计算机中的② 以及一组相关的运算等的课程。 ① A.操作对象   B.计算方法  C.逻辑结构  D.数据映象 ② A.存储结构 B.关系 C.运算 D.算法 2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是① 的有限集合,R是D上的② 有限集合。 ① A.算法 B.数据元素 C.数据操作 D.数据对象 ② A.操作 B.映象 C.存储 D.关系 3. 在数据结构中,从逻辑上可以把数据结构分成 。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 4. 算法分析的目的是① ,算法分析的两个主要方面是② 。 ① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系 C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性 ② A. 空间复杂性和时间复杂性 B. 正确性和简明性 C. 可读性和文档性 D. 数据复杂性和程序复杂性 5. 计算机算法指的是① ,它必具备输入、输出和② 等五个特性。 ① A. 计算方法 B. 排序方法 C. 解决问题的有限运算序列 D. 调度方法 ② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和安全性 1.2 填空题(将正确的答案填在相应的空中) 1. 数据逻辑结构包括 、 、 和 四种类型,树形结构和图形结构合称为 。 2. 在线性结构中,第一个结点 前驱结点,其余每个结点有且只有 个前驱结点;最后一个结点 后续结点,其余每个结点有且只有 个后续结点。 3. 在树形结构中,树根结点没有 结点,其余每个结点有且只有 个直接前驱结点,叶子结点没有 结点,其余每个结点的直接后续结点可以 。 4. 在图形结构中,每个结点的前驱结点数和后续结点数可以 。 5. 线性结构中元素之间存在 关系,树形结构中元素之间存在 关系,图形结构中元素之间存在 关系。 6. 算法的五个重要特性是__ __ , __ __ , ___ _ , __ __ , _ ___。 7. 分析下面算法(程序段),给出最大语句频度 ,该算法的时间复杂度是__ __。 for (i=0;i<n;i++) for (j=0;j<n; j++) A[i][j]=0; 8. 分析下面算法(程序段),给出最大语句频度 ,该算法的时间复杂度是__ __。 for (i=0;i<n;i++) for (j=0; j<i; j++) A[i][j]=0; 9. 分析下面算法(程序段),给出最大语句频度 ,该算法的时间复杂度是__ __。 s=0; for (i=0;i<n;i++) for (j=0;j<n;j++) for (k=0;k<n;k++) s=s+B[i][j][k]; sum=s; 10. 分析下面算法(程序段)给出最大语句频度 ,该算法的时间复杂度是__ __。 int i=0,s=0; while (s<n) { i++; s+=i; //s=s+i } 11. 分析下面算法(程序段)给出最大语句频度 ,该算法的时间复杂度是__ __。 i=1; while (i<=n) i=i*2;
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值