创建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://www.hqwc.cn/news/156012.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一分钟教你批量删除文件名中特定文字

怎么批量删除文件名中特定文字&#xff1f;在这个信息化的时代&#xff0c;我们每天会通过电脑处理大量的电子文件。无论是个人还是企业用户&#xff0c;在文件管理过程中&#xff0c;常常会遇到文件名混乱、重复或包含特定文字等问题。这些问题对于文件的检索和整理造成了很大…

模块化机柜PDU为数据中心机房末端配电提供可靠解决方案

数据中心是国家确定的“新基建”七大领域之一&#xff0c;数据中心在国民经济和社会发展中所起的作用越来越重要&#xff0c;数据中心已经成为了各行各业的关键基础设施&#xff0c;数据中心供配电系统相当于一个人的“心脏和血管”&#xff0c;负责把能量输送到系统的每一台设…

C++11右值引用

C11增加了一个新的类型&#xff0c;称为右值引用&#xff0c;标记为T&&。 左值是指表达式结束后依然存在的持久对象&#xff0c;右值是指表达式结束时就不再存在的临时对象。 一个区分左值和右值的便捷方法是&#xff1a;看能不能对表达式取地址&#xff0c;如果能&…

win11系统msvcp120.dll丢失的解决方法,亲测有效的详细方法

在计算机使用过程中&#xff0c;我们常常会遇到一些错误提示&#xff0c;其中之一就是“msvcp120.dll丢失”这个错误通常会导致某些应用程序无法正常运行。为了解决这个问题&#xff0c;我们需要采取一些修复措施。本文将介绍五个修复msvcp120.dll丢失的方法&#xff0c;帮助大…

Pytorch 文本情感分类案例

一共六个脚本,分别是: ①generateDictionary.py用于生成词典 ②datasets.py定义了数据集加载的方法 ③models.py定义了网络模型 ④configs.py配置一些参数 ⑤run_train.py训练模型 ⑥run_test.py测试模型 数据集https://download.csdn.net/download/Victor_Li_/88486959?spm1…

fiddler拦截并浏览器项目的接口请求参数

1、开启拦截模式 2、修改请求 3、放开请求

微服务-Feign

文章目录 Feign介绍Feign的基本使用自定义Feign的配置Feign性能优化Feign最佳实践 Feign介绍 RestTemplate远程调用存在的问题&#xff1a;代码可读性差&#xff0c;java代码中夹杂url&#xff1b;参数复杂很难维护 String url "http://userservice/user/" order.g…

Webpack的入口(entry)和出口(output)

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

markdown增加目录索引,实现点击目录跳转到对应的内容目录标题

文章目录 1. 教程1.1 首先正常编写文章例如如下1.2 原理 2. 示例文件2.1 标题12.1.1 小标题12.1.1.1 小小标题12.1.1.2 小小标题2 2.1.2 小标题2 1. 教程 1.1 首先正常编写文章例如如下 如果使用的是typora则可以直接点击段落-》内容目录&#xff1b;则会自动生成目录 1.2 原理…

chatgpt生成文本的底层工作原理是什么?

文章目录 &#x1f31f; ChatGPT生成文本的底层工作原理&#x1f34a; 一、数据预处理&#x1f34a; 二、模型结构&#x1f34a; 三、模型训练&#x1f34a; 四、文本生成&#x1f34a; 总结 &#x1f4d5;我是廖志伟&#xff0c;一名Java开发工程师、Java领域优质创作者、CSDN…

安防监控项目---web网页通过A9控制Zigbee终端节点的风扇

文章目录 前言一、zigbee的CGI接口二、请求线程和硬件控制三、现象展示总结 前言 书接上期&#xff0c;我们可以看一下前面的功能设计的部分&#xff0c;网页端的控制还有一个&#xff0c;那就是通过网页来控制zigbee上的风扇节点&#xff0c;这部分的工作量是相当大的&#x…

如何翻译shader graph到代码并添加额外的效果

使用shader graph翻译到代码可以使用连线工具快速制作效果并转换为代码&#xff0c;如果你对shader的“贴心/详细”报错&#xff0c;以及提示不完善等等问题感到恼火&#xff0c;这个方式或许可以一定程度上缓解以上问题。 本次使用的三个shader graph资源&#xff1a;https:…