范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

经典技术回顾和借鉴JSP编程

  前言:在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创建项目:
  1.2修改文件编码
  进入preferences修改JSP文件的编码:
  1.3 编写简单的JSP文件
  新增一个JSP文件到WebContent目录,如下
  然后检查并修改编码,应该都是UTF-8,如下图:
  如果不是,就修改。1.4运行和测试
  选中项目名称,点邮件菜单的Run as ...-->Run on server
  之后出现如下界面:
  若没有现存的tomcat server,就自己加一个。点Finish。然后自动调用chrome,界面如下:
  自动调用浏览器设置的地方是windows-->Web browser菜单:
  1.5增加功能:显示IP地址
  (1)显示ip地址:getRemoteAddr
  (2)变量声明<%! %>
  (3)表达式<%=%>
  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: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中使用useBea/setProperty/getProperty三个行为标签:
  测试:
  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
  示例如下:
  2.7循环语句
  循环语句包括两种:for和while
  示例如下:
  2.8运算符
  类别
  操作符
  结合性
  后缀
  () [] . (点运算符)
  左到右
  一元
  ++ - - ! ~
  右到左
  可乘性
  * / %
  左到右
  可加性
  + -
  左到右
  移位
  >> >>> <<
  左到右
  关系
  > >= < <=
  左到右
  相等/不等
  == !=
  左到右
  位与
  &
  左到右
  位异或
  ^
  左到右
  位或
  |
  左到右
  逻辑与
  &&
  左到右
  逻辑或
  ||
  左到右
  条件判断
  ?:
  右到左
  赋值
  = += -= *= /= %= >>= <<= &= ^= |=
  右到左
  逗号
  ,
  左到右  2.9变量类型
  布尔值(boolean):true 和 false;
  整型(int):与 Java 中的一样;
  浮点型(float):与 Java 中的一样;
  字符串(string):以单引号或双引号开始和结束;
  Null:null。2.10表单处理
  以下提供一个例子来说明:
  (1)创建FormProcess.jsp文件:
  其中提供了两个input输入框。
  (2)再创建FormProcessMain.jsp文件,如下:
  其中使用request对象的getParameter方法来获取Get参数。2.11过滤器
  JSP过滤器实际上和Servlet过滤器一样。
  以下通过示例来说明:
  (1)在web.xml中增加一个过滤器:
  (2)然后创建过滤器处理类com.hunting.LogFilter,如下:
  2.12JSTL(JSP标准标签库)
  (1)核心标签:
  标签
  描述
  用于在JSP中显示数据,就像<%= ... >
  用于保存数据
  用于删除数据
  用来处理产生错误的异常状况,并且将错误信息储存起来
  与我们在一般程序中用的if一样
  本身只当做和的父标签
  的子标签,用来判断条件是否成立
  的子标签,接在标签后,当标签判断为false时被执行
  检索一个绝对或相对 URL,然后将其内容暴露给页面
  基础迭代标签,接受多种集合类型
  根据指定的分隔符来分隔内容并迭代输出
  用来给包含或重定向的页面传递参数
  重定向至一个新的URL.
  使用可选的查询参数来创造一个URL
  (2)格式化标签:
  标签
  描述
  使用指定的格式或精度格式化数字
  解析一个代表着数字,货币或百分比的字符串
  使用指定的风格或模式格式化日期和时间
  解析一个代表着日期或时间的字符串
  绑定资源
  指定地区
  绑定资源
  指定时区
  指定时区
  显示资源配置文件信息
  设置request的字符编码
  (3)SQL标签:
  标签
  描述
  指定数据源
  运行SQL查询语句
  运行SQL更新语句
  将SQL语句中的参数设为指定值
  将SQL语句中的日期参数设为指定的java.util.Date 对象值
  在共享数据库连接中提供嵌套的数据库行为元素,将所有语句以一个事务的形式来运行
  (4)XML标签:
  标签
  描述
  与<%= ... >,类似,不过只用于XPath表达式
  解析 XML 数据
  设置XPath表达式
  判断XPath表达式,若为真,则执行本体中的内容,否则跳过本体
  迭代XML文档中的节点
  和的父标签
  的子标签,用来进行条件判断
  的子标签,当判断为false时被执行
  将XSL转换应用在XML文档中
  与共同使用,用于设置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框架成为潮流。

涨了就要卖,跌了就要买今天的行情明显是白酒上涨带来的逼空行情。一是周末白酒协会,以茅台五粮液洋河等多家白酒企业的共同发文,呼吁白酒不要下跌。二是长久以来的下跌,之前的医药已经反弹了,但是茅台还是继续下跌凛冬已至,就连大型商超都撑不下去了头条创作挑战赛大家上一次逛超市是什么时候呢?我们都知道这几年日子都不太好过,我家门口的街上好几家店铺不到一年的时间已经换了三次店面了,而且还有不少关了就再也没开。不仅个人店面,就连宣城市宣城。宣城,地处安徽省东南部,毗邻苏浙,地近沪杭,古属吴越。总面积12340平方公里,2021年末常住人口248。7万人。作为G60科创走廊城市之一,宣城同时是长三角城市群成员,皖马斯克再次喊单DOGE!狗狗币或要与推特合并?马斯克(ElonMusk)贴出爱犬穿着社群平台TwitterLOGO衣服的照片,瞬间让狗狗币(Dogecoin)支持者沸腾,半小时内DOGE狂飙11,涨破0。14美元。一只柴犬能影五星房企摇摇欲坠,龙湖做错了什么?最近龙湖地产上了热搜,实际地产在近两年暴雷的事情已经见怪不怪了,如今不爆雷的地产才是头条新闻。龙湖出现热搜的另一个推动力量是其董事会主席吴亚军定居美国的消息,这对于富人圈来说也不是不装了?第二个华为出现,外媒这就是打压华为的副作用点击关注,每天精彩不断!导读不装了?第二个华为出现,外媒这就是打压华为的副作用在国内的科技市场上,华为公司的实力还是比较雄厚的,这些年来,在任正非的带领下,华为一直都在坚持走自主创葛墨林院士说杨振宁关于执教清华关于李政道关于翁帆文金鑫不久前,杨振宁先生度过了他一百岁的生日。我想有一份生日礼物他一定印象深刻,那就是商务印书馆2022年9月刚刚出版的我知道的杨振宁。这本书的作者是南开大学的葛墨林院士,他上世纪入冬喝酒门道多,牢牢记住这3不喝,弄懂再喝也不吃亏寒冷的冬季可谓是白酒发挥作用的最佳季节,这个季节也是最适合喝白酒的时间,一杯白酒下肚,浑身从里到外都是暖洋洋的,连微凉的晚风都变温柔了。中国地大物博,南北差异大,人们在喝酒上的方式布达拉宫秋韵这是从拉鲁湿地方向拍摄的布达拉宫(10月29日摄)。深秋已至,位于西藏拉萨的世界文化遗产布达拉宫在高原秋色的衬托下分外美丽。新华社记者沈虹冰摄这是从朵森格路方向拍摄的布达拉宫(10预计2023年将有超2150万名外游赴泰日前,泰国财政部财政政策办公室(FPO)主任蓬差透露,财政政策办公室预计今年泰国GDP增长将保持在3。4,预计2023年泰国GDP将增长3。8,预计今年出口增长8。1。至于2022上海迪士尼度假区今日起暂时关闭,即刻生效根据疫情防控要求,上海迪士尼度假区(包括上海迪士尼乐园迪士尼小镇和星愿公园)将于2022年10月31日(周一)起暂时关闭,即刻生效。恢复运营时间一旦明确,我们将及时告知。对于在此期
现在的cf充钱是否还有意义?想玩就有意义,不玩就没意义了,充钱一时爽,一直充钱一直爽。我第一次往穿越火线端游里充钱,买了180天的AK47A,后来又买了半年的水晶沙鹰,加上几张改名卡,总共花了一百多块钱。那时中国女排历史上最厉害的副攻是谁?张萍,看看04年奥运会,可以说,没有张萍绝对拿不了冠军,当主攻不下球时,她的快攻,背飞,背平发挥的淋淋尽致,后攻也有出其不意的效果,她的跳发,势大力沉,失误较少。中国女排历史上最历当年陈忠和带的女排到底有多强?陈忠和带领的中国女排被称为黄金一代,你说强不强?雅典奥运会半决赛32战胜古巴队,决赛32战胜俄罗斯队,夺得奥运冠军,你说强不强?他执教中国女排夺得世界大赛4金2铜,你说强不强?中国高二是高中成绩分水岭,高二成绩决定高三吗?高二是高中成绩的分水岭,高二的成绩决定高三,这绝不是夸张。我是高中老师我来谈谈这个问题。一高二所学的知识占高考的三分之二。现在高中一般都是三年教材两年完,高三进行复习。以数学为例高现在是高一党,各科成绩感觉都不太满意,待在挺好的高中,周围人都很厉害,应该怎么办()?作为一个高一的学生,你要庆幸自己选择了一个很好的学校,并且身边有很好的同志向队友。自己各科成绩感觉不太满意,这是因为自己的期望值太高,但是在高一时就有这种意识,值得称赞。我觉得你要11月份中国男篮两战日本,郭艾伦会被征召吗?11月份中国男篮两战日本,郭艾攸会被征召吗?征召是肯定的,是绝对的,就目前郭艾伦的实力,在我们CBA后卫线,说他第二,没人敢说自已第一,而且郭艾伦在上一期参加男篮亚洲杯小组预赛,和中国足球真的没有出路吗?自己翻来覆去的搞不好,就要向别人学习,向足球强国学习。学习人家的足球体制氛围技术等等。我相信只要谦虚地向人家努力学习再加上自己的发挥,一个十四亿多人口的大国,足球真的是有出路的。与中国足球何时能与世界接轨?中国足球现在最大的弊端,就是不懂足球的领导着足球发展,中超联赛杂乱无章,球队名改的没有企业愿意投入,金元足球搞的一地鸡毛。很多国内球员自私自利,对归化球员抵制,压制,不团结,一盘散脂肪肝与轻度脂肪肝有什么区别?脂肪肝是很常见的一种疾病,随着生活模式的改变,脂肪肝的发病率居高不下,变得更为常见,而在年轻人身上,脂肪肝也已经是很常见了。因此,现在很多年轻人在体检时会被告知有脂肪肝或是轻度脂肪中国白酒,为什么不能走向全世界,而俄罗斯伏特加能销向全球?同样是烈酒,俄罗斯伏特加与中国白酒相比,确实出口量要好不少。但是,中国白酒的出口也并不差,比很多国人的预想要好。2020年数据显示,中国白酒出口量是1424。6万升,金额为4599为什么感觉高考省内的前百名,很少有人报考中国科学技术大学?凭本事考的北大,清华,为什么要去上中科大?不仅前200名不远中科大,前500名选中科大的都不多。如果你是清北的分数,选了中科大,很多人都会觉得亏大了。中科大实力毋庸置疑,部分学科强