javaWeb项目之JSP学习笔记----1,JSP介绍

基于JSP+servlet+MYSQL的Javaweb项目 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、项目介绍二、样品实例1.市场活动界面2.线索界面三、代码1.pom文件2.web.xml文件3.市场活动1.Controller2.Service实现类3.dao.xml4.线索1.Controller2.Service3.dao5.Tran1.jsp文件6.listener总结 前言 CRM项目是寒假在家跟着视频做的一个项目,这个项目可以巩固之前Java基础以及javaweb的一些知识.途中也遇到了各种各样的问题,可以提 阅读详情

JSP 简介

JSP,即Java Server Pages,和Servlet一样,都是SUN公司定义的一种用于开发动态WEB资源的技术。

  为什么说JSP也是动态web开发的一项技术呢?这是因为写JSP虽然像是在写HTML,但是JSP允许在页面中嵌套Java代码,或者利用某个标签表示Java代码(EL与jstl)。这就使得我们在写JSP时能够获取请求对象Request和响应对象Response等这样的web开发常用对象,实现与浏览器的交互。其实JSP就是一种Servlet,

一:jsp页面的内容由两部分组成:

1.静态部分:标准的HTML标签,静态的页面内容,这些内容与静态的HTML页面相同。

2.动态部分:受Java程序控制的内容,这些内容由Java脚本动态生成。

二:jsp的本质

jsp的本质是servlet。jsp页面由系统编译成servlet,servlet再负责响应用户请求,也就是说,jsp其实也是servlet的一种简化,使用jsp时,其实还是使用了servlet,因为web应用中的每个jsp页面都会由servlet容器生成对应的servlet。

什么是Java Server Pages?

JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。

JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。

JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。

 


为什么使用JSP?

JSP程序与CGI程序有着相似的功能,但和CGI程序相比,JSP程序有如下优势:

  • 性能更加优越,因为JSP可以直接在HTML网页中动态嵌入元素而不需要单独引用CGI文件。
  • 服务器调用的是已经编译好的JSP文件,而不像CGI/Perl那样必须先载入解释器和目标脚本。
  • JSP 基于Java Servlet API,因此,JSP拥有各种强大的企业级Java API,包括JDBC,JNDI,EJB,JAXP等等。
  • JSP页面可以与处理业务逻辑的 Servlet 一起使用,这种模式被Java servlet 模板引擎所支持。

最后,JSP是Java EE不可或缺的一部分,是一个完整的企业级应用平台。这意味着JSP可以用最简单的方式来实现最复杂的应用。


JSP的优势

以下列出了使用JSP带来的其他好处:

  • 与ASP相比:JSP有两大优势。首先,动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用。第二点就是JSP易于移植到非MS平台上。
  • 与纯 Servlet 相比:JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println语句。
  • 与SSI相比:SSI无法使用表单数据、无法进行数据库链接。
  • 与JavaScript相比:虽然JavaScript可以在客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务,比如访问数据库和图像处理等等。
  • 与静态HTML相比:静态HTML不包含动态信息。

 

 

JSP 结构

网络服务器需要一个 JSP 引擎,也就是一个容器来处理 JSP 页面。容器负责截获对 JSP 页面的请求。

JSP 容器与 Web 服务器协同合作,为JSP的正常运行提供必要的运行环境和其他服务,并且能够正确识别专属于 JSP 网页的特殊元素。

JSP 处理流程

以下步骤表明了 Web 服务器是如何使用JSP来创建网页的:

  • 就像其他普通的网页一样,您的浏览器发送一个 HTTP 请求给服务器。

  • Web 服务器识别出这是一个对 JSP 网页的请求,并且将该请求传递给 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网页,就好像在处理静态网页一样。

以上提及到的步骤可以用下图来表示:

一般情况下,JSP 引擎会检查 JSP 文件对应的 Servlet 是否已经存在,并且检查 JSP 文件的修改日期是否早于 Servlet。如果 JSP 文件的修改日期早于对应的 Servlet,那么容器就可以确定 JSP 文件没有被修改过并且 Servlet 有效。这使得整个流程与其他脚本语言(比如 PHP)相比要高效快捷一些。

总的来说,JSP 网页就是用另一种方式来编写 Servlet 而不用成为 Java 编程高手。除了解释阶段外,JSP 网页几乎可以被当成一个普通的 Servlet 来对待。

 

JSP 生命周期

理解JSP底层功能的关键就是去理解它们所遵守的生命周期。

JSP生命周期就是从创建到销毁的整个过程,类似于servlet的生命周期,区别在于JSP生命周期还包括将JSP文件编译成servlet的。

以下是JSP生命周期中所走过的几个阶段:

  • 编译阶段:

    的servlet容器编译servlet的源文件,生成的servlet类

  • 初始化阶段:

    加载与JSP对应的servlet的类,创建其实例,并调用它的初始化方法

  • 执行阶段:

    调用与JSP对应的servlet的实例的服务方法

  • 销毁阶段:

    调用与JSP对应的servlet的实例的销毁方法,然后销毁的servlet实例

很明显,JSP生命周期的四个主要阶段和servlet的生命周期非常相似,下面给出图示:


JSP编译

当浏览器请求JSP页面时,JSP引擎会首先去检查是否需要编译这个文件。如果这个文件没有被编译过,或者在上次编译后被更改过,则编译这个JSP文件。

编译的过程包括三个步骤:

  • 解析JSP文件。
  • 将JSP文件转为servlet的。
  • 编译的servlet。
  • JSP生命周期代码实例如下所示:

    <span style="color:#333333"><span style="color:#666600"><%@ page language =“java”contentType =“text / html; charset = UTF-8”</span><span style="color:#000000">page language </span><span style="color:#666600">= </span><span style="color:#008800">“java” </span><span style="color:#000000">contentType </span><span style="color:#666600">= </span><span style="color:#008800">“text / html; charset = UTF-8”</span><span style="color:#000000">
        的pageEncoding = “UTF-8” %></span><span style="color:#666600">= </span><span style="color:#008800">“UTF-8” </span><span style="color:#000000">%></span><span style="color:#000000">
    <HTML></span><span style="color:#000088"><HTML></span><span style="color:#000000">
    <HEAD></span><span style="color:#000088"><HEAD></span><span style="color:#000000">
    <TITLE> life.jsp </ TITLE></span><span style="color:#000088"><title> </span><span style="color:#000000">life.jsp </span><span style="color:#000088"></ title></span><span style="color:#000000">
    </ HEAD></span><span style="color:#000088"></ HEAD></span>
    <span style="color:#000088"><BODY></span>
    <span style="color:#000000">
    <%! </span><span style="color:#000000">
      private int initVar = 0;</span><span style="color:#000000">
      private int serviceVar = 0;</span><span style="color:#000000">
      private int destroyVar = 0;</span><span style="color:#000000">
    %></span>
      <span style="color:#000000">
    <%!</span><span style="color:#000000">
      public void jspInit(){</span><span style="color:#000000">
        initVar ++;</span><span style="color:#000000">
        System.out.println(“jspInit():JSP被初始化了”+ initVar +“次”);</span><span style="color:#000000">
      }</span><span style="color:#000000">
      public void jspDestroy(){</span><span style="color:#000000">
        destroyVar ++;</span><span style="color:#000000">
        System.out.println(“jspDestroy():JSP被销毁了”+ destroyVar +“次”);</span><span style="color:#000000">
      }</span><span style="color:#000000">
    %></span>
    <span style="color:#000000">
    <%</span><span style="color:#000000">
      serviceVar ++;</span><span style="color:#000000">
      System.out.println(“_ jspService():JSP共响应了”+ serviceVar +“次请求”);</span>
    <span style="color:#000000">
      String content1 =“初始化次数:”+ initVar;</span><span style="color:#000000">
      String content2 =“响应客户请求次数:”+ serviceVar;</span><span style="color:#000000">
      String content3 =“销毁次数:”+ destroyVar;</span><span style="color:#000000">
    %></span>
    <span style="color:#000088"><h1></span><span style="color:#000000">菜鸟教程JSP测试实例</ h1></span>
    <span style="color:#000088"><p></span><span style="color:#000000"> <%= content1%> </ p></span>
    <span style="color:#000088"><p></span><span style="color:#000000"> <%= content2%> </ p></span>
    <span style="color:#000088"><p></span><span style="color:#000000"> <%= content3%> </ p></span>
    <span style="color:#000000">
    </ BODY></span><span style="color:#000000">
    </ HTML></span>
    </span>

    浏览器打开该页面,输出结果为:

 

Servlet与JSP-JavaWeb项目食用指南 本项目是基于Servlet+JSP+DataBase实现的一个商品管理系统,主要目的是学习JavaWeb入门的知识:Servlet、JSP以及EL表达式、Ajax和JSON。完成这个项目主要还是巩固练习JavaWeb的基础知识,为后面的JavaEE框架的学习做铺垫。所以以本人的学习经验来看,这是一个很好的上手Web的练习项目 阅读详情

相关推荐

JSP的七个小项目

里面有七个JSP小项目,方便初学者进行学习交流,有源码和详细的使用文档

使用JSP做一个小小的项目(一)

使用JSP做一个小小的项目,目前进度为页面、登录、注册和新闻增加的功能完成

qq_1114382703的博客 1万+

告别底噪与失真:手把手教你调校WM8988音频Codec的输入输出增益链

本文详细介绍了如何调校WM8988音频Codec的输入输出增益链,解决底噪与失真问题。从模拟输入增益、数字转换增益到输出放大增益,提供了具体的寄存器配置和调试策略,帮助开发者优化音频信号处理链,提升音质表现。

weixin_30485379的博客 362

JavaWeb技术之JSP

目录 1. 什么是JSP 2. JSP为什么会出现 3.JSP中如何嵌套java代码 示例 jsp中的注释 4. JSP的原理 5. JSP的内置对象 1、request对象 2、response对象 3、session对象 4、application对象 5、out 对象 6、pageContext 对象 7、confifig 对象 8、page 对象 9、exception 对象 6. JSP的指令 (1)Page指令 (2) Include指令 (3)Tagli

qq_36279562的博客 7591

AMD Ross FPGA Agent 实战:用 AI 驱动 Vivado 开发流程

在 EDA 领域,FPGA 开发长期面临工具链重、反馈周期长、报错晦涩等痛点。AI Agent 通过自然语言交互与工具调用,将 Vivado 的 Tcl 批处理流程封装为可编排、可观测的智能体,显著降低查文档与读报告的时间成本。其核心在于 Harness 与 Agent 的协同:Harness 提供安全执行环境,Agent 负责决策与迭代。典型应用包括工程创建、约束生成、综合实现报告解读及比特流失败排查。本文以 AMD Ross 为例,拆解其架构设计与实操方法,帮助开发者理解如何将 Agent 落地到高门槛

weixin_29189363的博客 1024

U8备份提示“远程组件初始化失败”

问题现象: SQL出现问题后重装,U8没有重装,之后直接附加数据库,U8可以正常登陆,但是在备份的时候提示远程组件初始化失败。 问题原因: 因为重装了SQL,没有进行U8数据源初始化,导致Master库中丢失了存储过程储 解决办法:在Master库重建存储过程 USE [master] GO SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO CREATE PROCEDURE [dbo].[U8FileServerExtendProc] @cmdLi.

SamYux 2473

JSP 总结

1、页面乱码问题 链接:https://blog.youkuaiyun.com/qq_26748397/article/details/77943034 我正在初学JSP,我犯了第一个错误,再次登记一下! 原因: JSP中默认使用iso-8859-1字符编码方式,而它不支持中文,所以一旦我们的代码有中文,就会出现乱码 应将其改为:UTF-8,如图所示: 也就是我们熟称的“万国码”!改成这个之后,写入中文代码就不会再出现乱码了! 2、注释、表达式、注意事项 在JSP中实现注释的方式有如下三种: HTML 注释:<

qq_27494201的博客 2576

以太网以及车载以太网概述

千兆网线和百兆网线区别 1、所谓的百兆网线其实就是 五类线 和超五类线 ,而千兆网线主要是指六类线 和超六类线 ,另外还有古老的十兆网线也就是指 四类线 和 三类线 等。 2、在使用上,其实千兆网线和百兆网线是没什么区别的,千兆网线完全兼容百兆网络。 3、百兆网线的线芯是8芯,但上传和下载只用到了其中的4根,而千兆网线需要完全用到8根。 4、另外在线芯的排布上,千兆网线的线芯中间有个十字形的塑料架,用来把四组8芯的线分开,这个百兆网线是没有的, 5、所有的网线在外皮上都有种类标识,CAT5 CAT

$好记性还是要多记录$ 4074

JavaWeb之JSP

::tipsJSP的全称是Java Server Pages,Java的服务器页面JSP的主要作用就是代替Servlet程序回传html页面的数据因为Servlet程序回传html页面数据是一件非常繁琐的事情。开发成本和维护成本都极高Servlet回传html页面数据//通过响应的输出流回传html页面数据 resp . setContentType("text/html;writer . write(" 这是html页面数据>\r\n");} }

itzzan的博客 1989

ubuntu-25.04-desktop-amd64 工具VMware-tools 正确安装方法

摘要:Ubuntu 25.04虚拟机安装VMware Tools后无法实现主机与虚拟机间的文件复制粘贴和拖拽功能,问题可能源于工具兼容性。建议优先安装open-vm-tools套件(含open-vm-tools-desktop),而非官方VMware Tools。具体方案:通过终端执行安装命令后重启系统。该方法已实测有效解决该兼容性问题。(149字)

安徽锐锋科技-沐雨潇竹 672

FreeRTOS全攻略:从入门到精通

本文聚焦 FreeRTOS,从基础概念出发,阐述其开源、轻量级等优势。着重介绍 FreeRTOS 入门知识,涵盖内存管理、任务操作、同步互斥机制等核心内容。其中,空闲任务与钩子函数保障系统基础运行与功能扩展;队列、信号量、互斥锁和事件组等机制,分别从数据传递、资源访问控制、优先级问题解决及多任务同步等方面,为开发者提供高效的任务间协作与资源管理方案,助力开发者掌握 FreeRTOS 核心技术,为嵌入式项目开发筑牢基础。

邓邓子的博客 6357

JSP详解,看这一篇就够了(含示例)

动作标签为开发者提供了一种方便的方式来控制和管理 JSP 页面的行为。通过使用动作标签,可以轻松地包含其他页面、转发请求、创建 JavaBean 实例、传递参数等,从而使得页面的逻辑更加清晰、易于维护。JSP隐式对象是JSP的重要组成部分,它们提供了对请求、响应、会话、应用上下文等各种Web资源的直接访问,极大地简化了Web应用程序的开发。了解和熟练使用这些隐式对象,是掌握JSP开发的重要一步。JSP是Java Web开发的重要组成部分,适用于创建动态网页。

2301_79858914的博客 2万+

游戏服务器框架之跨服(一)

如今的游戏开发,不搞个跨服玩法都不好意思说在做游戏了(当然,也跟游戏类型有关,一些轻度休闲游戏可以排除在外)。跨服玩法的设计,可以进一步激发玩家追求高战力的虚荣心,也可以汇聚玩家数量,避免单服日活跃低呈现死服现象。 几种常见的跨服玩法拓扑结构 一,不同游戏服的玩家进入中立服务器进行战斗,例如跨服天梯类玩法。 游戏服有很多个节点,中心服务器也有很多节点。只要保证对战的双方同时进入同一个中心服游戏进程即可。 二,若干个游戏服组成一个社区,全部服务器包含多个社区,例如世界服玩法。 三,游戏服A玩

littleschemer的博客 5772

JavaWeb专栏之(三):Eclipse创建JavaWeb项目

JavaWeb专栏之(三):Eclipse创建JavaWeb项目 前言: 关注:《遇见小Du说》微信公众号,分享更多Java知识,不负每一次相遇。更多内容请访问:www.dushunchang.top 在上一篇文章中,小Du猿带大家使用Idea创建JavaWeb项目,相比之下Idea作为当前非常主流的开发IDE,深受Java后端程序员使用。市面上约75%开发者使用Idea,一代开发神器Eclipse就此没落。小Du猿第一次使用的开发IDE就是Eclipse,也算是我的启蒙神器。今天就带了使

小Du猿的博客 23万+

第1章 大数据概述

三次信息化浪潮 信息化浪潮 发生时间 标志 解决的问题 代表企业 第一次 1980年前后 个人计算机 信息处理 Intel、AMD、IBM、苹果、微软、联想、戴尔、惠普等 第二次 1995年前后 互联网 信息传输

wyz191的专栏 7088

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

eclipse新建javaweb项目——javaweb系列(一)

eclipse新建javaweb项目——javaweb系列(一)

qq_23858785的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

IDEA搭建JavaWeb项目,JDBC和Servlet-JSP技术实现注册功能

本篇主要讲怎么使用IDEA搭建JavaWeb项目,并且使用JDBC和JSP-Servlet实现一个简单的注册功能。这里以idea2021.3.2版本为例。idea是不可以直接创建一个JavaWeb项目的,我们需要新建一个普通的java项目,然后手动修改。 "> (1). 建表,根据业务需求,我们需要在数据建设一个存储用户信息的数据表 (2). 编写实体类 (3). 编写dao接口 (4). 编写daoimpl实现类 (5). 编写servlet (6). 修改web.xml文件配置ser

Java学习博客 6163

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JavaWeb项目 jsp页面无法加载样式问题

记录困扰我多天的一个关于Java web 项目问题 项目之前完美运行,不知道添加了什么,运行之后无法加载样式 查过过滤器 发现 也没有拦截 也放行了 重启电脑 重启eclipse 卸载tomcat重装都没有解决 换电脑完美运行 原因 jsp页面是由html改的 原表头 <%@ page language="java" contentType="text/html; charset=UTF...

weixin_41345933的博客 1万+

javaweb项目教程

手把手搭建一个完整的javaweb项目 原文:https://blog.youkuaiyun.com/qq_23994787/article/details/73612870 本案例使用Servlet+jsp制作,用MyEclipse和Mysql数据库进行搭建,详细介绍了搭建过程及知识点。   下载地址:http://download.youkuaiyun.com/detail/qq_23994787/99048...

qq_35807964的博客 2万+

【JavaWeb】之JSP

JavaWeb基础JSP相关知识详细介绍~

小新要变强的博客 2966

【JavaWeb】JSP详解

JSP = Java Server Page = html + Java代码 + JSP动态标签通常在前台开发人员给出静态页面后,后台开发人员只需在静态页面中添加动态信息即可,而不用再使用Servlet一行一行的去输出了内置对象是在JSP页面中无需创建就可以直接使用的变量。在JSP中一共有9个这样的对象page(当前JSP的真身类型)out最为常用的方法是print(),即向页面输出。它与response.getWriter()基本相同config。

2302_78914800的博客 1010

Eclipse创建javaWeb项目工程

首先,想作为一个较为标准的程序员,应该把自己的开发工具eclipse设置成与公司中大多数程序员的设置一样,比如说工作的字符编码为UTF-8,字体大小等等。 在刚下载好的eclipse中刚进去是没有Tomcat的,首先运行javaWeb项目一定是要Tomcat服务器。进入Eclipse,先把一些基本的设置设置好,然后就配置Tomcat,基本的配置,比如修改eclipse的字体大小,...

andunxu1008的博客 2837

手把手用jsp+servlet实现一个javaweb登录小项目

手把手用jsp+servlet实现一个javaweb登录小项目 环境: JDK1.8 Tomcat7.0.5 成品展示 一.创建用Idea创建JavaWeb项目 创建成功的目录 二.导入所需Jar包 找到本地jsp和servlet的jar包,为方便大家提供jar包给大家下载 https://pan.去掉baidu.com/s/1SpvEM-3y_joDtxwkMx-5Cw 提取码...

weixin_43898629的博客 1774

eclipse创建第一个JSP项目

eclipse创建第一个JSP项目 前言 ​ 本文的内容由四个部分组成,分别为①Tomcat的安装与配置,②创建第一个JSP项目,③打包JSP项目到Tomcat服务器上并在浏览器中运行,④eclipse的一些java Web的一些设置。 1、Tomcat安装与配置 ​ 到Tomcat官网下载Tomcat相应的版本,目前最新的版本为10,但我用的最新的是Tomcat9,下载方法如下图所示: ​ 下载完成后解压,将下载好的Tomcat配置到eclipse中,首先打开eclipse**->wind

偉ing的博客 4671

JavaWeb基础专项复习2——JSP文件

JavaWeb早期JavaWeb中期:servlet,在servlet中需要写大量的JavaWeb后期JSP,只需要在html中直接添加动态信息,即java代码片段就可以了。服务器会把所有的<html>语句转换成response.getWriter().println(“<html>”);html + java代码 + JSP动态标签 = jsp (JSP 是在传统的网页 HTML 文件中插入 Java 代码和 JSP 标签,从而形成 JSP 文件,后缀名为.jsp。

2301_78566776的博客 1421

JavaWeb学习笔记

JavaWeb学习笔记 1.web的基本概念 1.1前言 web开发: web,网页的意思 静态web html、css 提供给所有人看的数据始终不会发生变化! 动态web 淘宝,几乎是所有的网站。 提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同。 技术栈:servlet/JSP,ASP,PHP 在java中,动态web资源开发的技术统称为JavaWeb 1.2web应用程序 web应用程序:可以提供浏览器访问的程序 a.html 、b

crazy_hair的博客 1481
上一篇: Spring的AOP原理总结
下一篇: javaWeb项目之JSP学习笔记----3,JSP动作元素
iamlinuxasd
博客等级 码龄10年 4粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值