jsp注释方法_jsp调用Java中的一个方法

前言:在CGI(通用网关接口)编程风行的日子,人们纷纷寻思简化并让其更加灵活的新方法和新技术,包括PHP、JSP、ASP。1997年SUN公司推出了servlet,1999年初,SUN公司推出了JSP,实际上在servlet基础上修改而成。JSP即Java服务器页面(Java Server Page),将HTML和JAVA代码使用某种方式结合起来,完成前后端的有效交互。本文通过JSP历史回顾和应用总结来审视过去和开拓未来。

1.从实例项目入手

其实,从现在看来JSP依然极具魅力,据了解很多JSP老项目还在维护。下面使用STS作为IDE构建一个实例项目,先体验其效果。

1.1 动态web项目模板

如下图,使用new dynamic web project创建项目:

jsp注释方法_jsp调用Java中的一个方法

1.2修改文件编码

进入preferences修改JSP文件的编码:

jsp注释方法_jsp调用Java中的一个方法

1.3 编写简单的JSP文件

新增一个JSP文件到WebContent目录,如下

jsp注释方法_jsp调用Java中的一个方法

然后检查并修改编码,应该都是UTF-8,如下图:

jsp注释方法_jsp调用Java中的一个方法

如果不是,就修改。

1.4运行和测试

选中项目名称,点邮件菜单的Run as …–>Run on server

jsp注释方法_jsp调用Java中的一个方法

之后出现如下界面:

jsp注释方法_jsp调用Java中的一个方法

若没有现存的tomcat server,就自己加一个。点Finish。然后自动调用chrome,界面如下:

jsp注释方法_jsp调用Java中的一个方法

自动调用浏览器设置的地方是windows–>Web browser菜单:

jsp注释方法_jsp调用Java中的一个方法

1.5增加功能:显示IP地址

(1)显示ip地址:getRemoteAddr

jsp注释方法_jsp调用Java中的一个方法

(2)变量声明<%! %>

jsp注释方法_jsp调用Java中的一个方法

(3)表达式<%=%>

jsp注释方法_jsp调用Java中的一个方法

2.JSP语言介绍

2.1语法

语法

描述

<%– 注释 –%>

JSP注释,注释内容不会被发送至浏览器甚至不会被编译

<!– 注释 –>

HTML注释,通过浏览器查看网页源代码时可以看见注释内容

<\%

代表静态 <%常量

%\>

代表静态 %> 常量

\'

在属性中使用的单引号

\"

在属性中使用的双引号

2.2指令

指令

描述

<%@ page … %>

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

<%@ include … %>

包含其他文件

<%@ taglib … %>

引入标签库的定义,可以是自定义标签

2.3Page指令属性

属性

描述

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.4行为标签

行为标签语法:<jsp:行为名称 attribute="value" />

语法

描述

jsp:include

用于在当前页面中包含静态或动态资源

jsp:useBean

寻找和初始化一个JavaBean组件

jsp:setProperty

设置 JavaBean组件的值

jsp:getProperty

将 JavaBean组件的值插入到 output中

jsp:forward

从一个JSP文件向另一个文件传递一个包含用户请求的request对象

jsp:plugin

用于在生成的HTML页面中包含Applet和JavaBean对象

jsp:element

动态创建一个XML元素

jsp:attribute

定义动态创建的XML元素的属性

jsp:body

定义动态创建的XML元素的主体

jsp:text

用于封装模板数据

使用bean是最好用的行为标签,例如,我们创建一个java类:

jsp注释方法_jsp调用Java中的一个方法

然后,在JSP中使用useBea/setProperty/getProperty三个行为标签:

jsp注释方法_jsp调用Java中的一个方法

测试:

jsp注释方法_jsp调用Java中的一个方法

2.5隐含对象(默认创建的对象)

对象

描述

request

HttpServletRequest类的实例

response

HttpServletResponse类的实例

out

PrintWriter类的实例,用于把结果输出至网页上

session

HttpSession类的实例

application

ServletContext类的实例,与应用上下文有关

config

ServletConfig类的实例

pageContext

PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问

page

类似于Java类中的this关键字

Exception

Exception类的对象,代表发生错误的JSP页面中对应的异常对象

2.6判断语句

判断语句包括两种:if else和switch case

示例如下:

jsp注释方法_jsp调用Java中的一个方法

2.7循环语句

循环语句包括两种:for和while

示例如下:

jsp注释方法_jsp调用Java中的一个方法

2.8运算符

类别

操作符

结合性

后缀

() . (点运算符)

左到右

一元

++ – – ! ~

右到左

可乘性

* / %

左到右

可加性

+ –

左到右

移位

>> >>> <<

左到右

关系

> >= < <=

左到右

相等/不等

== !=

左到右

位与

&

左到右

位异或

^

左到右

位或

|

左到右

逻辑与

&&

左到右

逻辑或

||

左到右

条件判断

?:

右到左

赋值

= += -= *= /= %= >>= <<= &= ^= |=

右到左

逗号

,

左到右

2.9变量类型

布尔值(boolean):true 和 false;

整型(int):与 Java 中的一样;

浮点型(float):与 Java 中的一样;

字符串(string):以单引号或双引号开始和结束;

Null:null。

2.10表单处理

以下提供一个例子来说明:

(1)创建FormProcess.jsp文件:

jsp注释方法_jsp调用Java中的一个方法

其中提供了两个input输入框。

(2)再创建FormProcessMain.jsp文件,如下:

jsp注释方法_jsp调用Java中的一个方法

其中使用request对象的getParameter方法来获取Get参数。

2.11过滤器

JSP过滤器实际上和Servlet过滤器一样。

jsp注释方法_jsp调用Java中的一个方法

以下通过示例来说明:

(1)在web.xml中增加一个过滤器:

jsp注释方法_jsp调用Java中的一个方法

(2)然后创建过滤器处理类com.hunting.LogFilter,如下:

jsp注释方法_jsp调用Java中的一个方法

2.12JSTL(JSP标准标签库)

(1)核心标签:

标签

描述

<c:out>

用于在JSP中显示数据,就像<%= … >

<c:set>

用于保存数据

<c:remove>

用于删除数据

<c:catch>

用来处理产生错误的异常状况,并且将错误信息储存起来

<c:if>

与我们在一般程序中用的if一样

<c:choose>

本身只当做<c:when>和<c:otherwise>的父标签

<c:when>

<c:choose>的子标签,用来判断条件是否成立

<c:otherwise>

<c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行

<c:import>

检索一个绝对或相对 URL,然后将其内容暴露给页面

<c:forEach>

基础迭代标签,接受多种集合类型

<c:forTokens>

根据指定的分隔符来分隔内容并迭代输出

<c:param>

用来给包含或重定向的页面传递参数

<c:redirect>

重定向至一个新的URL.

<c:url>

使用可选的查询参数来创造一个URL

(2)格式化标签:

标签

描述

<fmt:formatNumber>

使用指定的格式或精度格式化数字

<fmt:parseNumber>

解析一个代表着数字,货币或百分比的字符串

<fmt:formatDate>

使用指定的风格或模式格式化日期和时间

<fmt:parseDate>

解析一个代表着日期或时间的字符串

<fmt:bundle>

绑定资源

<fmt:setLocale>

指定地区

<fmt:setBundle>

绑定资源

<fmt:timeZone>

指定时区

<fmt:setTimeZone>

指定时区

<fmt:message>

显示资源配置文件信息

<fmt:requestEncoding>

设置request的字符编码

(3)SQL标签:

标签

描述

<sql:setDataSource>

指定数据源

<sql:query>

运行SQL查询语句

<sql:update>

运行SQL更新语句

<sql:param>

将SQL语句中的参数设为指定值

<sql:dateParam>

将SQL语句中的日期参数设为指定的java.util.Date 对象值

<sql:transaction>

在共享数据库连接中提供嵌套的数据库行为元素,将所有语句以一个事务的形式来运行

(4)XML标签:

标签

描述

<x:out>

与<%= … >,类似,不过只用于XPath表达式

<x:parse>

解析 XML 数据

<x:set>

设置XPath表达式

<x:if>

判断XPath表达式,若为真,则执行本体中的内容,否则跳过本体

<x:forEach>

迭代XML文档中的节点

<x:choose>

<x:when>和<x:otherwise>的父标签

<x:when>

<x:choose>的子标签,用来进行条件判断

<x:otherwise>

<x:choose>的子标签,当<x:when>判断为false时被执行

<x:transform>

将XSL转换应用在XML文档中

<x:param>

与<x:transform>共同使用,用于设置XSL样式表

3.JSP历史

下面从前后端分离角度展现JSP的产生和发展脉络。

3.1互联网的产生

1957年美国国防部(DoD)组建了高级研究计划局(ARPA)。1961年7月,MIT工程师Leonard Kleinrock发表Information Flow in Large Communication Nets论文。1962年8月, MIT工程师J.C.R. Licklider和W. Clark发表On-Line Man Computer Communication论文。1967 2月,在ARPA IPTO PI会议上,Larry Roberts组织了有关ARPANET设计方案的讨论。互联网雏形ARPANET由此产生。

互联网最初的目的是访问和复制文件从一台计算机到另一台远程计算机,两台计算机之间有网络,但速度慢,而且经常专用于大学或者研究机构是昂贵的,不支持大规模用户。1970年,ARPANET主机开始使用网络控制协议(NCP),这就是后来的传输控制协议(TCP)的雏形。

人们基于TCP/IP构建了更快的网络,其中应用层文件传输协议(FTP)规范提供了交换这些文件的标准方法。1973年,文件传输协议(FTP)推出,用于在异构系统之间交换文件。FTP传输的文件并不能有效查看,因此发明了超文本标记语言(HTML),使我们能够在互联网上看到文档。

3.2万维网的产生

1989年蒂姆伯纳斯-李写了一份关于建立一个通过网络传输超文本系统的报告,其中创建了单行 HTTP 协议,这个协议在1991年被命名为HTTP/0.9,万维网由此产生,1996年超文本传送协议HTTP 1.0发布。

尽管FTP可以传输HTML文件,但是并没有提供有效小文件传输机制和无状态管理能力,超文本传输协议(HTTP)才被发明出来专门用于传输HTML文档,HTTP是一种无连接/无状态协议,这使得许多短连接更加有效,而且可以不使用密码就可以获取HTML文档,这让万维网真正到来,真正体现了互联网的快捷、免费思维。

3.3通用网关接口的产生

上面提到了TCP/IP,HTTP,FTP都是通信管道,后来大家把注意力转向内容。我们感兴趣的文件随着IT技术的发展而快速爆发,例如数据库快速发展导致各种应用系统快速发展。同时,数据的更新频度更加快速,这种即时信息推动了互联网流量快速增长。通过基于HTTP的HTML,最终用户可以浏览位于远程服务器上的文件。

当时,远程服务器属于局域网,局域网连接到互联网需要专用设备,可惜的是这种专用设备并不好用(直到后来路由器和交换机被思科发明出来),因此通用网关接口(CGI)规范被制定出来,它允许Web服务器超越文件服务器并从内部数据库中获取数据,并动态更改HTML。

最初,CGI是在1993年由美国国家超级电脑应用中心(NCSA)为NCSA HTTPd Web服务器开发的,当年NCSA内部有一份简单的CGI规范说明,后来在1997年Ken Coar领导的团队制定了CGI1.1规范,并提交RFC。CGI规范是Web应用程序开发中的一个重大突破,确保了相同的CGI程序在不同的Web服务器上工作。

CGI成为传递动态内容的最常用手段。只是互联网发展太快了,CGI的性能无法跟上,每个对CGI脚本的请求都会产生一个单独的进程。这种设计让CGI在高峰负载时也消耗大量资源。解决方案非常多,功能性和可伸缩性成为关键。

许多CGI替代者都采用服务器端编程技术来实现业务逻辑,包括ASP、ColdFusion、PHP和Perl等等,其中至今仍然在大量使用的是PHP ,PHP 继承自一个老的工程,名叫 PHP/FI,PHP/FI 在 1995 年由 Rasmus Lerdorf 创建,最初只是一套简单的 Perl 脚本,用来跟踪访问他主页的人。然后,即使是PHP,最终由于可移植性和面向对象的编程设计,Java超越了PHP和其他CGI平台。

3.4 JSP的产生

Java自1991年诞生以来已经走过了很长的一段路,当时Sun公司推出了“绿色计划”,试图集成数字消费设备,如电视机、CD播放机和计算机。OAK(名字来自高斯林窗外的一棵橡树!)诞生了,但直到出现HotJava和小程序,才开始活跃起来。1995年,Sun发布了开源Java,向微软发起了挑战,反响巨大。这促使Java深入到服务器端开发领域。

Sun在Java中加入了Internet功能,并在1997年6月发布了servlet接口。servlet以CGI替代为目标。与CGI为每个请求启动一个进程不同,servlet使用更细粒度的线程在单个进程中运行。servlet采用了更有效的体系架构,能够应对互联网上的复杂情况。Java servlet为开发Java Web组件提供了基础。servlet优点是每个额外的并发请求带来的额外开销非常小。

servlet技术需要真正的Java编程技能才能有效应用,外观和良好体验为web应用带来了巨大方便,但是图像支持还不是那么良好。于是Sun公司在1998年发布了JavaServer Pages (JSP),这来自于微软ASP的启发,也有些人说是复制的,它使得编写动态HTML页面变得容易。

使用JSP的使用非常简单,有些工具(例如Dreamweaver)能让非程序员来构建WWW网站前端页面,当然要servlet带动后端服务器代码(例如javabean)才能完成完整的WWW网站构建工作,这样构建的WWW网站具有模块化、可维护、可伸缩和可移植优点,从而完成简单网站到复杂Web应用程序的转变,从而实现前后端分离。

JSP官方版本1.0和1.1都出现在1999年,都很受欢迎,版本1.2出现于2001年,是目前最流行的实现。

3.5 Node的产生

JSP终究还是含有Java代码,前后端没有彻底分离,因此人们在2009年发明了node-js,这让前端开发人员崛起,他们单纯使用HTML+CSS+JavaScript前端语言就能完成前端页面的开发,而不需要使用含有各种后端交互印记的标签。

于是,基于node-js的React、Angela、VUE框架成为潮流。

本文【jsp注释方法_jsp调用Java中的一个方法】由作者: 主键 提供,本站不拥有所有权,只提供储存服务,如有侵权,联系删除!
本文链接:https://www.cuoshuo.com/blog/4097.html

(0)
上一篇 2023-03-09 07:17:55
下一篇 2023-03-09 07:24:02

相关推荐

  • 鸿蒙系统和安卓的区别_为什么国家不推广鸿蒙系统

    自从华为推出鸿蒙系统后,关于该系统是不是安卓的争论就从未停止过,有网友认为鸿蒙是安卓,因为主要就是鸿蒙兼容安卓应用,所以很多人脑海里就是这样认为的,很难改变。 但也有很多网友认为鸿蒙完全不同于安卓,因为鸿蒙系统的定位和安卓完全不一样,它不仅是一个手机或设备的单一系统,还是一套可以将所有设备串联在一起的通用性系统。 具体来说,鸿蒙系统能够将多个不同设备如手机、…

    2023-03-11
    500
  • shell编程入门

    Shell脚本编程难,难于上青天!这话不假,尤其很多程序员新人,学了几个月Shell脚本写得还是一塌糊涂,但闻道有先后,术业有专攻,他人能学好Shell脚本编程只是因为比我们早些接触而已。 作为一名优秀的程序员,懂得Shell脚本是基本功,要想后续站得更稳,这个基本功必须得打牢。 今天给大家分享从基础到进阶的Shell脚本编程,共两册,适合不同学习进度的朋友…

    2023-03-09
    2700
  • 指法小游戏

    等了好久终于等到今天—— 盼了好久终于把梦实现—— 五一小长假近在眼前, 小伙伴们一定按捺不住想要放飞自我的心情了吧! 不论你是打算宅在家中尽享温馨的亲子时光, 还是计划全家外出游历秀美河山, 今天小编推荐的这20个好玩的手指游戏, 都会是你陪娃消遣时间的不二神器。 有了它,孩子抱着ipad不撒手,不存在的! 坐车无聊满车闹,不存在的! 一边玩一边还能开发智…

    2023-03-13
    400
  • 存储容量单位之间的换算关系

    KB:全称千字节(Kbyte); MB:全称兆字节(MByte); GB:全称吉字节(GByte)。 计算机存储容量单位,一般用字节(Byte)、千字节(KB)、兆字节(MB)、吉字节(GB)、太字节(TB)、拍字节(PB)、艾字节(EB)、泽它字节(ZB,又称皆字节)、尧它字节(YB)表示。 换算关系是: 1KB=1024B 1MB=1024KB 1GB=…

    2023-03-17
    100
  • mysql安装教程环境配置_完整版MySQL安装配置

    简介:Mysql是最流行的关系型数据库管理系统,Mysql是一款优秀的web管理方面的 RDBMS(Relational Database Management System:关系数据库管理系统)应用工具。现在大多数软件系统使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念…

    2023-03-10
    600
  • 三级数据库技术考什么

    计算机等级证书的含金量并不低,因此每年都有许多同学参加考试。那么,计算机三级都有哪些专业?考哪个比较有用呢?下面,上学吧君就为大家介绍一番计算机考试三级的各专业。 计算机网络技术 考的人最多。 主要考的是:计算机基础知识、网络原理、操作系统、网络应用。都是背的,如果想自己考可以上图书馆借几本书看看背背就能过的。 简单,上机C语言,笔试是填空和选择。 数据库技…

    2023-03-13
    500
  • mysql更改密码后提示过期

    Your password has expired. To log in you must change it using a client that supports expired passwords 该问题提示很明显,说密码已过期。 按照网上的说法,操作了一遍。步骤如下: 1、在my.cnf 的 部分加入 skip-grant-tables 参数。 s…

    2023-03-08
    700
  • 一键清理白名单在哪里

    经常有小伙伴私信问芝麻妹,有没有可以检测微信单删的方法,之前也给大家分享过一些手动检测的教程,对于微信好友比较多的小伙伴一个一个测试就难以实现,那今天芝麻妹给大家分享一款软件,可以一键检测出微信中拉黑删除你的好友,全程傻瓜式操作,免费不要钱。 想要检测自己有没有被好友单删拉黑,芝麻妹以前还特地去淘宝购买过微信查单删服务,我记得还需要给商家提供自己的微信账号密…

    2023-03-20
    000
  • lamp的搭建 LAMP环境搭建

    Linux系统下源代码包方式 安装前准备 本节的源代码包安装方式,使用的Linux操作系统主要以Red Hat Linux操作系统系列为主。 假设读者在电脑中已经安装好了Red Hat系列中的某一版本的操作系统,就可以按下面几种方式做安装前的准备工作了。 获取软件包 检查安装时使用的编译工具是否存在 Gcc -v 卸载默认的低版本环境 目前发行的Linux操…

    2023-03-18
    100
  • 卡雷尔机器人作业答案(机器人学建模控制与视觉课后答案)

    卡雷尔CEO 尹利 双目视觉即深度视觉,以目前的技术搭配雷达可以更好的应用在服务机器人身上。 机器视觉也分种类,像工业机器手采用机器视觉可以定位抓取,工业上用的机器视觉大部分依赖外企产品。 但在双目视觉上,国内与国外企业在技术上差距不大,准确的说是各有差异。 双目视觉可以做到三维空间建模、物体的识别与扫描重建,配合机器手臂还可以做抓取物体。 北京卡雷尔机器人…

    2023-03-16
    100

发表回复

登录后才能评论
返回顶部
错说博客上线啦!