• 创建javaEE项目(无maven),JSP(九大内置对象)、Servlet(生命周期)了解


    一、Servlet和jsp

    0.创建web项目(无maven):

    1.创建一个普通的java项目

    2.项目根目录右键,添加模板

    3.配置tomcat服务器

    4.配置项目tomcat依赖

    1.Servlet(Server Applet)服务端小程序

            用户通过浏览器发送一个请求,服务器tomcat接收到后,解析web.xml配置文件进行分析执行接口对应的类;

            Tomcat服务器支持:支持Servlet规范。而要想让它能找到我们写的处理请求的代码,那我们自己的代码就应该也遵守Servlet规范!

    1.1 servlet概念:

            Servlet是Server Applet的简称,称为服务端小程序,是JavaEE平台下的技术标准,基于Java语言编写的服务端程序。 Web 容器或应用服务器实现了Servlet标准所以Servlet需要运行在Web容器或应用服务器中。Servlet主要功能在于能够在服务器中执行并生成数据。

            Servlet指的是一个接口规范,具体的体现为接口及其接口的实现类。该接口的名字就是Servlet

            Servlet是JavaWeb开发的三大组件之一(另外两个是过滤器filter与监听器listener)

    1.2 Servlet实现

            1. 继承HttpServlet类,重写service方法

            2. 逻辑处理,并做出响应

            3. web.xml配置接收请求路径

    1.3 web.xml配置及注解配置

    2.jsp(java服务端页面技术,本质servlet)

            有一种特殊的文件,我们可以在它内部编写HTML代码、CSS代码、js代码还有Java代码。编写完之后,再有一个工具,将这个特殊的文件转换成Servlet,在转换好的Servlet中,之前写的Java代码还在,而HTML、css、js代码都使用writer的方式给写好。

            ​ 这个特殊的文件就是jsp文件。这个工具就是Tomcat服务器中的jsp引擎。

            本地服务解析的jsp文件在 work工作目录:

            C:\work\Catalina\localhost\java_EE_Demo

    2.1 jsp使用

    2.1.1 jsp执行原理

            JSP看似是HTML代码,看似是页面,但其实是一种后端技术。   本质Servlet

            当第一发送请求访问jsp资源时,Tomcat服务器中的JSP加载引擎会将该JSP资源转换成一个 .java 文件(Servlet)。

            这个 .java文件其实就是一个Servlet,在这个Servlet中已经将写在JSP中的HTML代码以writer.print()的方式编写好了,然后将数据响应给浏览器的。

            JSP本质上就是一个Servlet,JSP中的HTML代码就相当于我们之前在Servlet中写的writer.write()代码。

            JSP的执行过程大致可以分为三个时期:转换、编译、执行。

    2.1.2执行步骤

            转换/翻译(translation):Tomcat中的JSP引擎将JSP网页转换成Servlet,得到一个.java源文件。

            编译(compile):通过javac命令将.java文件编译成 .class字节码文件。

            运行:运行.class字节码文件,处理请求。

    2.2常用指令标签

            <%! 定义全局变量或方法 %> 在类中

            <% 定义局部变量 %> 在方法中

            <%= 变量输出 %> 在方法中

    2.2.1 概述

    语法:<%@ directive attribute="value" %>

    <%@ page %>

    定义网页依赖属性,如脚本语言、error页面、缓存需求等等

    <%@ include %>

    包含其他文件

    <%@ taglib %>

    引入标签库的定义

    2.2.2 page 指定网页属性指令标签

    属性

    描述

    buffer

    指定out对象使用缓冲区的大小

    autoFlush

    控制out对象的 缓存区

    contentType

    指定当前JSP页面的MIME类型和字符编码

    errorPage

    指定当JSP页面发生异常时需要转向的错误处理页面

    isErrorPage

    指定当前页面是否可以作为另一个JSP页面的错误处理页

    extends

    指定servlet从哪一个类继承

    import

    导入要使用的Java类

    info

    定义JSP页面的描述信息

    isThreadSafe

    指定对JSP页面的访问是否为线程安全

    language

    定义JSP页面所用的脚本语言,默认是Java

    session

    指定JSP页面是否使用session,默认是使用

    isELIgnored

    指定是否执行EL表达式

    isScriptingEnabled

    确定脚本元素能否被使用

    2.2.3 include 页面指令标签

            引入的文件有iframe内联标签的功能, 但是不能配合a标签target属性配合使用

                    * JSP可以通过include指令来包含其他文件。被包含的文件可以是jsp文件、HTML文件或文本文件。

                    * 包含的文件就像是jsp文件的一部分,会被同时编译执行。

                    * 除了使用include指令标签可以实现引入外,使用jsp:include动作也可以实现引入。

    静态引入: @include  被引入的网页和当前页生成代码后形成了一个java文件。

    动态引入: jsp:include 被引入的JSP页面会生成独立的java代码。

    2.3 JSP内置对象(9个)

            因为JSP的本质是Servlet,在JSP文件经过转译之后,生成JAVA代码,在运行时,JSP给我们准备好了九个可以直接使用而不用我们自己去new的对象,这九个对象我们称之为内置对象。

            内置对象完全由JSP自行去维护, 我们直接使用即可。

            pageContext、request、session、servletContext、response、out、config、exception、page

    四个域对象

            pageContext page域 当前页面内可用。

            request        reqeust域 一次请求。

            session         session域 一次会话, 多次请求。

            application application域 整个项目运行, 多次请求, 多次会话。

    响应对象

            response 响应对象。

    输出流对象

            out 打印流对象。

    其他三个对象

            servletConfig 由于JSP本身也是一个Servlet,所以容器也会给我们准备一个ServletConfig。

            Page 就是JSP转换的Servlet的对象,也就是当前JSP对象本身  。

            Exception 异常对象,在错误提示页上使用,当isErrorpage=true 才具有该对象。

    总结

    联系:

            1. JSP和Servlet都是Sun公司推出的动态网页技术。

            2. 基于Servlet开发页面的繁琐性,推出JSP来简化页面开发。

            3. JSP本质上是一个Servlet,会翻译成一个Servlet。

    区别:

            1. JSP使人们把显示和逻辑分隔成为可能,这意味着两者的开发可并行进行;而Servlet并没有把两者分开。

            2. JSP是在HTML代码里写JAVA代码,框架是HTML;而Servlet是在JAVA代码中写HTML代码,本身是个JAVA类。

            3. Servlet需要在web.xml中配置,而JSP无需配置。

            4. 目前JSP主要用在视图层负责显示,而Servlet主要用在控制层负责调度

    强调

            ​ JSP表面上是一个HTML,本质上是一个Servlet。

  • 相关阅读:
    HTTP与HTTPS:深度解析两种网络协议的工作原理、安全机制、性能影响与现代Web应用中的重要角色
    Ansible FIle模块,使用Ansible File模块进行文件管理
    C语言习题练习8--扫雷游戏
    开学季 | Y 省教育厅这张卷,融云答出了100分!
    curl用法:查看响应时间
    [CSS]CSS 的背景
    C语言几个比较实用的宏定义
    基于 element ui 之 ui-tooltip 组件
    js 获取验证码倒计时
    MATLAB中upsample函数用法
  • 原文地址:https://blog.csdn.net/user__kk/article/details/134156712