JSP和Servlet

作者: 陈小飘 | 来源:发表于2017-04-08 21:35 被阅读78次

    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有什么区别?

    相关文章

      网友评论

        本文标题:JSP和Servlet

        本文链接:https://www.haomeiwen.com/subject/oejrattx.html