JSP和Servlet

Servlet和Jsp


Jsp

  1. JSP 结构
    JSP结构:
    网络服务器需要一个JSP引擎,也就是一个容器来处理JSP页面。容器负责截获对JSP页面的请求
    JSP容器与Web服务器协同合作,为JSP的正常运行提供必要的运行环境和其他服务,并且能够正确识别专属于JSP网页的特殊元素。
    web服务器如何使用JSP创建网页:
    -----> 浏览器发送HTTP请求
    ----->web服务器识别并传递给JSP引擎(URL或者.jsp文件)
    ------>JSP引擎从磁盘载入jsp文件,转化为servlet(只是println()语句),并且将所有的jsp元素转化成java代码
    ----->JSP引擎将servlet编译成可执行类,且将原始请求传递给servlet引擎。
    ----->web服务器某组件调用servlet引擎,载入并执行servlet类,执行过程中,servlet产生HTML格式的输出并将其内嵌于HTTP response中上交给web服务器。
    ----->web服务器以静态HTML网页的形式将HTTP response返回浏览器
    ---->最终,web浏览器处理HTTP response中动态产生的HTML网页,就像在处理静态网页一样
  2. JSP生命周期
    类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成servlet。
    编译——>初始化——>执行——>销毁
  1. JSP编译:JSP引擎会首先去检查是否需要编译这个文件
    解析JSP文件——>将JSP文件转为servlet——>编译servlet。
  2. jspInit()
  3. jspService()==>request——>response
  4. jspDestory()
  1. JSP语法
    脚本程序
  • JAVA
<% 代码片段 %>
  • 编写与其等价的XML语句
<jsp:scriptlet>
代码片段
</jsp:scriptlet>

Jsp声明

  • 声明一个或多个变量、方法,供后面的Java代码使用。必须先声明这些变量和方法然后才能使用
<%! declaration; [ declaration; ]+ ... %>
  • 编写与其等价的XML语句
    jsp表达式
  • jsp表达式
<%= 表达式 %>
  • 编写与之等价的XML语句:
    jsp注释
<%-- 这里可以填写 JSP 注释 --%>

Paste_Image.png

jsp指令
JSP指令用来设置与整个JSP页面相关的属性。
<%@ directive attribute="value" %>
Paste_Image.png

jsp行为
jsp运算符
JSP支持所有Java逻辑和算术运算符
jsp常量
- Boolean:true and false
- Integer:与Java中的一样
- Floating point:与Java中的一样
- String:以单引号或双引号开始和结束。 " 被转义成 ",'被转义成 ', \ 被转义成\
- Null:null

  1. JSP指令
    JSP指令是用来设置整个jsp页面相关的属性,如页面的编码方式和脚本语言。
    <%@ directive attribute="value"%>
    指令的属性有多个时,用逗号隔开
指令 语法 描述
<%@page ...%> <%@ page attribute="value" %> 定义网页依赖属性,比如脚本语言、error页面、缓存需求等等
<%@include ...%> <%@ include file="relative url" %> 包含其他文件
<%@taglib ...%> <%@ taglib uri="uri" prefix="prefixOfTag" %> 引入标签库的定义

5 JSP动作元素
与JSP指令元素不同的是,JSP动作元素在请求处理阶段起作用。JSP动作元素是用XML语法写成的。

语法 描述
jsp:include 在页面被请求的时候引入一个文件。
jsp:useBean 寻找或者实例化一个JavaBean。
jsp:setProperty 设置JavaBean的属性。
jsp:getProperty 输出某个JavaBean的属性。
jsp:forward 把请求转到一个新的页面。
jsp:plugin 根据浏览器类型为Java插件生成OBJECT或EMBED标记。
jsp:element 定义动态XML元素
jsp:attribute 设置动态定义的XML元素属性。
jsp:body 设置动态定义的XML元素内容。
jsp:text 在JSP页面和文档中使用写入文本的模板

6 JSP隐式对象
JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量。

对象 描述
request HttpServletRequest类的实例
response HttpServletResponse类的实例
out PrintWriter类的实例,用于把结果输出至网页上
session HttpSession类的实例
application ServletContext类的实例,与应用上下文有关
config ServletConfig类的实例
pageContext PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
page 类似于Java类中的this关键字
Exception Exception类的对象,代表发生错误的JSP页面中对应的异常对象

7 JSP 页面重定向
当需要将文档移动到一个新的位置时,就需要使用JSP重定向了。
最简单的重定向方式就是使用response对象的sendRedirect()方法。


Servlet


面试题:

  1. 页面请求的工作流程是怎么样的?
    用户————浏览器————服务器
  2. HTTP中Get与Post方法有什么区别?
    资源:HTML页面、图片、音频、视频、PDF文件等
    Http请求的方法有很多种类,例如GET、POST、HEAD、TRACE、OPTIONS等,但是GET和POST是最常用的方法。
    GET是最简单的一种方法,其主要功能是从服务端获取用户所需的资源,并将其作为响应返回给客户端。但是GET方法的作用主要用来获取服务器端资源
    GET:获取,不影响资源自身状态
    POST:获取,上传数据
    为什么推荐POST上传?
  • GET--->URL "?""&" 长度限制,上传量小,1024byte
    POST--->附件,量大(默认不受限)
  • GET--->安全隐患,暴露在URL
    POST---> 不可见
  1. 什么是Servlet?
    静态页面--->动态页面--->什么是动态页面--->如何生成动态页面--->CGI(公共网关接口)和servlet技术

  2. doPost()方法与doGet()方法怎么选择?

  3. 什么是Servlet的生命周期?
    加载--->创建--->初始化--->处理请求--->卸载

  4. Jsp有哪些优点?

  5. Jsp与Servlet有何异同?

  6. 如何使用JSP与Servlet实现MVC模型?

  7. Servlet中forward和redirect有什么区别?

  8. Jsp的内置对象由哪些?

  9. request对象主要有哪些方法?

  10. JSP有哪些动作?

  11. JSP中include指令和include动作有什么区别?

  12. 会话跟踪技术有哪些?

  13. web开发中如何指定字符串的编码?

  14. 什么是Ajax?

  15. cookie和session有什么区别?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,616评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,020评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,078评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,040评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,154评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,265评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,298评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,072评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,491评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,795评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,970评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,654评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,272评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,985评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,815评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,852评论 2 351

推荐阅读更多精彩内容