jsp 基础学习资料

JSP基础教程 1、JSP简介 JSP(全称JavaServer Pages),sun公司主导的一种动态网页技术,JSP在服务端运行,可以响应客户端的请求,根据请求内容动态的生成HTML、XML或其他格式文档的Web网页然后返回请求者。在JSP页面可以嵌入Java代码,JSP文件在运行时会被其编译器转换成更原始的Servlet代码,然后再由Java编译器来编译成能快速执行的二进制机器码。 2、JSP的一些特点 ①能以模板化的方式简单、高效地添加动态网页内容。 ②可利用JavaBean和标签库技术复用常用的功能代码。 ③有良 阅读详情
一、 JSP 技术概述 

   在 Sun 正式发布 JSP(JavaServer Pages) 之后,这种新的 Web 应用开发技术很快引起了人们的关注。 JSP 为创建高度动态的 Web 应用提供了一个独特的开发环境。按照 Sun 的说法, JSP 能够适应市场上包括 Apache WebServer 、 IIS4.0 在内的 85% 的服务器产品。即使您对 ASP “一往情深”,我们认为,关注 JSP 的发展仍旧很有必要。 

   ㈠ JSP 与 ASP 的简单比较 

   JSP 与 Microsoft 的 ASP 技术非常相似。两者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。在 ASP 或 JSP 环境下, HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于 Web 服务器,而 ASP 和 JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到 HTML 代码中,然后一起发送给浏览器。 ASP 和 JSP 都是面向 Web 服务器的技术,客户端浏览器不需要任何附加的软件支持。 

   ASP 的编程语言是 VBScript 之类的脚本语言, JSP 使用的是 Java ,这是两者最明显的区别。此外, ASP 与 JSP 还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在 ASP 下, VBScript 代码被 ASP 引擎解释执行;在 JSP 下,代码被编译成 Servlet 并由 Java 虚拟机执行,这种编译操作仅在对 JSP 页面的第一次请求时发生。 

   ㈡运行环境 

   Sun 公司的 JSP 主页在 http://www.javasoft.com/products/jsp/index.html ,从这里还可以下载 JSP 规范,这些规范定义了供应商在创建 JSP 引擎时所必须遵从的一些规则。 

   执行 JSP 代码需要在服务器上安装 JSP 引擎。此处我们使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。为便于学习,这个软件包提供了大量可供修改的示例。安装 JSWDK 之后,只需执行 startserver 命令即可启动服务器。在默认配置下服务器在端口 8080 监听,使用 http://localhost:8080 即可打开缺省页面。 

   在运行 JSP 示例页面之前,请注意一下安装 JSWDK 的目录,特别是“ work ”子目录下的内容。执行示例页面时,可以在这里看到 JSP 页面如何被转换成 Java 源文件,然后又被编译成 class 文件(即 Servlet )。 JSWDK 软件包中的示例页面分为两类,它们或者是 JSP 文件,或者是包含一个表单的 HTML 文件,这些表单均由 JSP 代码处理。与 ASP 一样, JSP 中的 Java 代码均在服务器端执行。因此,在浏览器中使用“查看源文件”菜单是无法看到 JSP 源代码的,只能看到结果 HTML 代码。所有示例的源代码均通过一个单独的“ examples ”页面提供。 

   ㈢ JSP 页面示例 

   下面我们分析一个简单的 JSP 页面。您可以在 JSWDK 的 examples 目录下创建另外一个目录存放此文件,文件名字可以任意,但扩展名必须为 .jsp 。从下面的代码清单中可以看到, JSP 页面除了比普通 HTML 页面多一些 Java 代码外,两者具有基本相同的结构。 Java 代码是通过 < % 和 %> 符号加入到 HTML 代码中间的,它的主要功能是生成并显示一个从 0 到 9 的字符串。在这个字符串的前面和后面都是一些通过 HTML 代码输出的文本。 

  < HTML> 
  < HEAD>< TITLE>JSP 页面 < /TITLE>< /HEAD> 
  < BODY> 
  < %@ page language="java" %> 
  < %! String str="0"; %> 
  < % for (int i=1; i < 10; i++) { 
  str = str + i; 
  } %> 
  JSP 输出之前。 
  < P> 
  < %= str %> 
  < P> 
  JSP 输出之后。 
  < /BODY> 
  < /HTML> 

   这个 JSP 页面可以分成几个部分来分析。 

首先是 JSP 指令。它描述的是页面的基本信息,如所使用的语言、是否维持会话状态、是否使用缓冲等。 JSP 指令由 < %@ 开始, %> 结束。在本例中,指令“ < %@ page language="java" %> ”只简单地定义了本例使用的是 Java 语言(当前,在 JSP 规范中 Java 是唯一被支持的语言)。 
接下来的是 JSP 声明。 JSP 声明可以看成是定义类这一层次的变量和方法的地方。 JSP 声明由 < %! 开始, %> 结束。如本例中的“ < %! String str="0"; %> ”定义了一个字符串变量。在每一项声明的后面都必须有一个分号,就象在普通 Java 类中声明成员变量一样。 
位于 < % 和 %> 之间的代码块是描述 JSP 页面处理逻辑的 Java 代码,如本例中的 for 循环所示。 
最后,位于 < %= 和 %> 之间的代码称为 JSP 表达式,如本例中的“ < %= str %> ”所示。 JSP 表达式提供了一种将 JSP 生成的数值嵌入 HTML 页面的简单方法。 



二、会话状态管理 

   会话状态维持是 Web 应用开发者必须面对的问题。有多种方法可以用来解决这个问题,如使用 Cookies 、隐藏的表单输入域,或直接将状态信息附加到 URL 中。 Java Servlet 提供了一个在多个请求之间持续有效的会话对象,该对象允许用户存储和提取会话状态信息。 JSP 也同样支持 Servlet 中的这个概念。 

   在 Sun 的 JSP 指南 中可以看到许多有关隐含对象的说明(隐含的含义是,这些对象可以直接引用,不需要显式地声明,也不需要专门的代码创建其实例)。例如 request 对象,它是 HttpServletRequest 的一个子类。该对象包含了所有有关当前浏览器请求的信息,包括 Cookies , HTML 表单变量等等。 session 对象也是这样一个隐含对象。这个对象在第一个 JSP 页面被装载时自动创建,并被关联到 request 对象上。与 ASP 中的会话对象相似, JSP 中的 session 对象对于那些希望通过多个页面完成一个事务的应用是非常有用的。 

   为说明 session 对象的具体应用,接下来我们用三个页面模拟一个多页面的 Web 应用。第一个页面( q1.html )仅包含一个要求输入用户名字的 HTML 表单,代码如下: 

  < HTML> 
  < BODY> 
  < FORM METHOD=POST ACTION="q2.jsp"> 
 请输入您的姓名: 
  < INPUT TYPE=TEXT NAME="thename"> 
  < INPUT TYPE=SUBMIT VALUE="SUBMIT"> 
  < /FORM> 
  < /BODY> 
  < /HTML> 

   第二个页面是一个 JSP 页面( q2.jsp ),它通过 request 对象提取 q1.html 表单中的 thename 值,将它存储为 name 变量,然后将这个 name 值保存到 session 对象中。 session 对象是一个名字 / 值对的集合,在这里,名字 / 值对中的名字为“ thename ”,值即为 name 变量的值。由于 session 对象在会话期间是一直有效的,因此这里保存的变量对后继的页面也有效。 q2.jsp 的另外一个任务是询问第二个问题。下面是它的代码: 

  < HTML> 
  < BODY> 
  < %@ page language="java" %> 
  < %! String name=""; %> 
  < % 
  name = request.getParameter("thename"); 
  session.putValue("thename", name); 
  %> 
 您的姓名是: < %= name %> 
  < p> 
  < FORM METHOD=POST ACTION="q3.jsp"> 
 您喜欢吃什么 ? 
  < INPUT TYPE=TEXT NAME="food"> 
  < P> 
  < INPUT TYPE=SUBMIT VALUE="SUBMIT"> 
  < /FORM> 
  < /BODY> 
  < /HTML> 

   第三个页面也是一个 JSP 页面( q3.jsp ),主要任务是显示问答结果。它从 session 对象提取 thename 的值并显示它,以此证明虽然该值在第一个页面输入,但通过 session 对象得以保留。 q3.jsp 的另外一个任务是提取在第二个页面中的用户输入并显示它: 

  < HTML> 
  < BODY> 
  < %@ page language="java" %> 
  < %! String food=""; %> 
  < % 
  food = request.getParameter("food"); 
  String name = (String) session.getValue("thename"); 
  %> 
 您的姓名是: < %= name %> 
  < P> 
 您喜欢吃: < %= food %> 
  < /BODY> 
  < /HTML> 


三、引用 JavaBean 组件 


   JavaBean 是一种基于 Java 的软件组件。 JSP 对于在 Web 应用中集成 JavaBean 组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为 JSP 应用带来了更多的可伸缩性。 JavaBean 组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。如果我们有三个 JavaBean ,它们分别具有显示新闻、股票价格、天气情况的功能,则创建包含所有这三种功能的 Web 页面只需要实例化这三个 Bean ,使用 HTML 表格将它们依次定位就可以了。 

   为说明在 JSP 环境下 JavaBean 的应用,我们创建了一个名为 TaxRate 的 Bean 。它有两个属性,即 Product (产品)和 Rate (税率)。两个 set 方法分别用来设置这两个属性,两个 get 方法则用于提取这两个属性。在实际应用中,这种 Bean 一般应当从数据库提取税率值,此处我们简化了这个过程,允许任意设定税率。下面是这个 Bean 的代码清单: 

  package tax; 
  public class TaxRate { 
  String Product; 
  double Rate; 
  public TaxRate() { 
  this.Product = "A001"; 
  this.Rate = 5; 
  } 
  public void setProduct (String ProductName) { 
  this.Product = ProductName; 
  } 
  public String getProduct() { 
  return (this.Product); 
  } 
  public void setRate (double rateValue) { 
  this.Rate = rateValue; 
  } 
  public double getRate () { 
  return (this.Rate); 
  } 
  } 

   在 JSP 页面中应用上述 Bean 要用到 < jsp:useBean> 标记。依赖于具体使用的 JSP 引擎的不同,在何处配置以及如何配置 Bean 的方法也可能略有不同。本文将这个 Bean 的 .class 文件放在 c:jswdk-1.0examplesWEB-INFjspbeanstax 目录下,这里的 tax 是一个专门存放该 Bean 的目录。下面是一个应用上述 Bean 的示例页面: 

  < HTML> 
  < BODY> 
  < %@ page language="java" %> 
  < jsp:useBean id="taxbean" scope="application" class="tax.TaxRate" /> 
  < % taxbean.setProduct("A002"); 
  taxbean.setRate(17); 
  %> 
 使用方法 1 : < p> 
 产品 : < %= taxbean.getProduct() %> < br> 
 税率 : < %= taxbean.getRate() %> 
  < p> 
  < % taxbean.setProduct("A003"); 
  taxbean.setRate(3); 
  %> 
  < b> 使用方法 2 : < /b> < p> 
 产品 : < jsp:getProperty name="taxbean" property="Product" /> 
  < br> 
 税率 : < jsp:getProperty name="taxbean" property="Rate" /> 
  < /BODY> 
  < /HTML> 

   在 < jsp:useBean> 标记内定义了几个属性,其中 id 是整个 JSP 页面内该 Bean 的标识, scope 属性定义了该 Bean 的生存时间, class 属性说明了该 Bean 的类文件(从包名开始)。 

   这个 JSP 页面不仅使用了 Bean 的 set 和 get 方法设置和提取属性值,还用到了提取 Bean 属性值的第二种方法,即使用 < jsp:getProperty> 标记。 < jsp:getProperty> 中的 name 属性即为 < jsp:useBean> 中定义的 Bean 的 id ,它的 property 属性指定的是目标属性的名字。 


   事实证明, Java Servlet 是一种开发 Web 应用的理想构架。 JSP 以 Servlet 技术为基础,又在许多方面作了改进。 JSP 页面看起来象普通 HTML 页面,但它允许嵌入执行代码,在这一点上,它和 ASP 技术非常相似。利用跨平台运行的 JavaBean 组件, JSP 为分离处理逻辑与显示样式提供了卓越的解决方案。 JSP 必将成为 ASP 技术的有力竞争者。 
 
高温环境下RS485通信故障分析与MOS管解决方案 RS485通信作为工业控制领域的基础总线技术,其可靠性直接影响系统稳定性。在高温等恶劣环境下,传统三极管开关电路会因温度特性导致通信故障。通过分析三极管Ube电压随温度变化的特性,揭示了电路失效的物理原理。相比之下,MOS管作为电压控制型器件,具有温度稳定性好、功耗低等优势,更适合工业环境应用。本文通过一个发动机舱内RS485通信故障的实际案例,详细对比了三极管与MOS管在高温环境下的性能差异,并给出了具体的电路改进方案。该案例对工业通信接口设计具有普遍参考价值,特别适用于需要应对高温、振动等挑战性环境的硬 阅读详情

相关推荐

TOD和PPS精确时间同步技术

授时

u010783226的专栏 1万+

JSP入门教程:JSP技术简介

一、 JSP 技术概述    在 Sun 正式发布 JSP(JavaServer Pages) 之后,这种新的 Web 应用开发技术很快引起了人们的关注。 JSP 为创建高度动态的 Web 应用提供了一个独特的开发环境。按照 Sun 的说法, JSP 能够适应市场上包括 Apache WebServer 、 IIS4.0 在内的 85% 的服务器产品。即使您对 ASP "一往情深",我们认为,关注

cyp0207的专栏 579

基因家族的鉴定-基于Windows系统上的HMMER

基因家族的鉴定-基于Windows系统上的HMMER。

liangjinghui123的博客 3242

使用servlet session实现登录,输入用户名和密码点击登录,提交给一个servlet处理,登录成功则跳转到欢迎界面,否则跳转到登录界面

文章目录 前言 一、创建项目 二、代码 1.login.jsp 2.loginServlet.java 3.success.jsp 三、结果显示 四、总结 前言 作业 要求: 编写一个简单的登录程序,要求登录页面中输入用户名和密码,用户点击登录按钮,提交给一个 Servlet 去处理,该 Servlet 要验证用户用户名和密码是否符合要求(这里就等于你提供的具体值)。如果符合要求,则将用户名写入 session 中,之后转到一个登录成功页面,在该页面页面显示欢迎 xxx.....

weixin_53069813的博客 1万+

【蓝桥杯——单片机学习笔记】十三.点阵(STC15F2K60S2)

一.点阵内部图 点阵的有两种,分为共阴和共阳(与数码管类似,后续代码根据共阳点阵编写)。点阵的控制主要是每行和每列电平的控制。如图,以共阳为例:若要使左上角的灯亮,则第一行输出高电平(其他行均为低电平),第一列输出低电平(其他列均为高电平)。 二.原理图 与数码管共用接口,所以数码管和点阵的显示只能选一个使用! 原理图中点阵的接口R5即代表第5行(Row),C8即代表第8列(Column)。通...

默默无闻小菜鸡的博客 2011

【机械视觉】C#+VisionPro实战:位深图(CogImage8Grey)与Bitmap互转技巧及工业检测应用

本文详细介绍了在工业检测中如何使用C#和VisionPro实现位深图(CogImage8Grey)与Bitmap的高效互转技巧。通过实战代码示例和工业应用案例,帮助开发者解决图像处理中的常见问题,提升检测精度和系统性能,适用于半导体、汽车零部件等高精度检测场景。

weixin_29250573的博客 186

web访问原理和jsp执行顺序

web访问原理和jsp执行顺序

qq_40032554的博客 188

基于深度学习的高精度牙齿健康检测识别系统(PyTorch+Pyside6+YOLOv5模型)

近年来,机器学习和深度学习取得了较大的发展,深度学习方法在检测精度和速度方面与传统方法相比表现出更良好的性能。YOLOv5是单阶段目标检测算法YOLO的第五代,根据实验得出结论,其在速度与准确性能方面都有了明显提升,开源的代码可见https://github.com/ultralytics/yolov5。因此本博文利用YOLOv5检测算法实现一种高精度家禽猪识别检测模型,再搭配上Pyside6库写出界面系统,完成目标检测识别页面的开发。

sc1434404661的博客 5799

JavaWeb——JSP原理剖析和执行过程

文章目录JavaWeb——JSP原理剖析1.什么是JSP2.JSP的执行情况2.2 代码层面2.1 服务器内部层面3.分析Jsp页面的源码3.1 Jsp页面源码里的方法3.2 Jsp源码做的事情3.2.1.判断请求是什么方法3.2.2.Jsp内置了一些对象3.2.3.输出页上面的代码4. Jsp的执行过程 JavaWeb——JSP原理剖析 1.什么是JSP JSP(Java Server Pages):Java服务器端页面,和Servlet一样,是一种动态网页开发技术。 JSP是一种Java servlet

万里顾一程的博客 2491

AI预测彩票,使用chatgpt和lstm神经网络(文末附源码)

AI预测彩票,使用chatgpt和lstm神经网络(文末有彩蛋)

淘淘小窝 1万+

Win10 开机突然蓝屏错误代码0xc0000001安全模式也进不了,不用重装系统怎么修复?(已解决)九个解决参考方案

Win 10专业版HP480G7。

本博客,博文仅代表个人操作经验,不能完全解决你的问题,仅供参考,佛系回复。 1万+

JSP学习资料

JSP学习资料,欢迎下载!

yy0709_26com的专栏 266

OCS2 入门教程(一)

OCS2 是专为切换系统优化控制(ptimalontrol forwitchedystems,OCS2)定制的 C++ 工具箱。该工具箱提供以下算法的高效实现:SLQ:连续时间域约束 DDPiLQR:离散时域约束 DDPSQP:基于 HPIPM 的多重打靶算法IPM: 基于非线性内点法的多重搜索算法SLP:基于 PIPG 的顺序线性规划算法OCS2 通过增强拉格朗日法(Augmented Lagrangian)或松弛障碍法(relaxed barrier methods)处理一般路径约束。

机器人控制与仿真应用 7836

JSP基础学习资料

一、 JSP 技术概述     在 Sun 正式发布 JSP(JavaServer Pages) 之后,这种新的 Web 应用开发技术很快引起了人们的关注。 JSP 为创建高度动态的 Web 应用提供了一个独特的开发环境。按照 Sun 的说法, JSP 能够适应市场上包括 Apache WebServer 、 IIS4.0 在内的 85% 的服务器产品。即使您对 ASP “一往情深”,我们认

hughdove的专栏 1935

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

jsp基础学习资料

在 Sun 正式发布 JSP(JavaServer Pages) 之后,这种新的 Web 应用开发技术很快引起了人们的关注。 JSP 为创建高度动态的 Web 应用提供了一个独特的开发环境。按照 Sun 的说法, JSP 能够适应市场上包括 Apache WebServer 、 IIS4.0 在内的 85% 的服务器产品。即使您对 ASP "一往情深",我们认为,关注 JSP 的发展仍旧很有必要。

zaowei21的专栏 1053

Camera2Demo

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

jsp学习资料

http://www.w3cschool.cc/jsp/jsp-actions.html

u013406800的专栏 628

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

jsp 学习资料

http://developer.51cto.com/col/1442/ http://developer.51cto.com/art/201107/274630.htm http://developer.51cto.com/art/201107/274579.htm 《JSP、Servlet 與 JavaBean 的組合應用》   http://sun.cis.

crazy_fire 552

计算机毕业设计之jsp校园学习资料分享平台的设计与开发

摘要:本文设计开发了一个基于JSP和SSM框架的校园学习资料分享平台,采用MySQL数据库,实现了个人中心、学习资料管理、积分系统等功能。系统分为管理员和学生两个角色,支持资料浏览、上传下载、积分兑换等操作。研究重点阐述了系统架构设计、功能模块实现及技术选型,为国内校园学习资源共享提供了数字化解决方案,有效提升了学习资料的管理效率和共享便捷性。系统测试表明,该平台具有良好的兼容性和实用性。

2401_85505850的博客 309

整理 Servlet & JSP 的学习资料

本文介绍了Java Web开发中的Servlet和JSP技术。Servlet是运行在服务器端的Java程序,用于处理HTTP请求并生成响应,通过实现Servlet接口(通常继承HttpServlet)来处理GET/POST请求。JSP是动态网页技术,运行时会被编译为Servlet,适合视图展示层。文章对比了两者的关系:Servlet用于控制逻辑(Controller),JSP用于视图展示(View),建议采用MVC模式开发。同时说明了Servlet和JSP的生命周期,并提供了基础代码示例(HelloServ

DeppBing的博客,全栈修炼记|记录一个开发者的进化轨迹 362
上一篇: 一个简单的JSP登陆代码
下一篇: jsp中 JDBC-ODBC翻页例子
zgyjava
博客等级 码龄18年 2粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值