趣文网 > 作文大全

jsp技术被淘汰了?那还要不要学它?

2020-12-02 04:15:01
相关推荐

今天是刘小爱自学Java的第92天。

感谢你的观看,谢谢你。

话不多说,开始今天的学习:

首先声明:jsp这个技术基本被淘汰了,不太重要,用到它的可能性很低,但是有些企业还是会用到的。

花一天时间对其做一个简单的了解。

一、jsp概述

1jsp出现的原因

jsp这个技术的出现是为了解决一个什么问题?

先看如下情况:

在Java代码中,服务器要响应一个HTML页面给浏览器,需要将标签拼接在代码中。

这样一顿操作下来就会显得十分地繁琐,操作麻烦不说,阅读性还差。

那有没有什么方法解决这个问题呢?

jsp技术就应运而生了,在jsp文件中,既能写Java代码,又能写HTML代码,特别地厉害。

2jsp定义

JSP全名为Java Server Pages,翻译为java服务器页面,其本质是一个简化的Servlet。

它是由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准。

大白话就是一个既能书写Java代码又能书写HTML代码的文件。

3jsp为什么被淘汰了?

jsp被淘汰本身并不是因为技术落后的原因,它之所以被淘汰是因为行业趋势。

现在强调前后端分离,前端写前端的代码,后端写后端的代码,没有必要将前端和后端代码融合在一起,所以jsp使用就受限了。

当然也并不是完全就没人用了,只是用的少了。

二、jsp语法

1在jsp中书写代码

①注释格式

在jsp中的注释格式为:<%--注释--%>

②Java代码编写

格式为:<%Java代码%>,在该格式里面就能编写Java代码。

这样编写以后,在浏览器上输入对应的路径,就能发现能用Java语法在浏览器上输入内容了。

以上也就完成了在jsp文件中写Java代码了。

2jsp执行流程

jsp文件为何可以写Java代码,其底层是怎么样的一个执行流程呢?画图讲解:

①浏览器访问demo01.jsp

根据对应的路径来访问jsp文件,该jsp文件会被转化成两个文件:

demo01_jsp.java和demo01_jsp.class。

这两个文件对于Java开发者来说简直不要太熟悉了:一个是Java源码文件,一个是其对应的字节码文件。

也就是说jsp文件其实底层被转换成了Java文件,再执行的Java代码。

②关于转换后的Java源码

打开对应的Java源码文件,当然上图中我只截图了一部分做一个说明,其实源码远不止这么点。

从截图中的部分代码可以看出:

<%%>中的代码被直接解析成java代码。html部分都被out.write("")方法以字符串的形式拼接,然后响应给浏览器。绕来绕去其实还是拼接,和最先开始的方法一样,只不过说jsp中拼接被封装了,不用我们写。

3三种书写Java代码的方式

①脚本声明

格式:<%! 书写Java代码 %>

中间有一个感叹号,这里面也是可以编写Java代码的。

查看其对应的Java源码文件,会发现这块代码对应于源码中的成员变量和成员方法

②脚本片段

格式:<%书写Java代码 %>

它比①就少了一个感叹号,其对应的是源码中_jspService方法的Java代码。

在Java中,方法里面是不能定义一个新的方法的,所以方法定义只能用①的格式来编写。

③脚本表达式

格式:<%="表达式" %>

其对应的Java代码就是out.print()。

三、EL表达式

EL表达式就是专门来取代上面三种格式中③脚本表达式的。

格式为:${str}。其就相当于<%=str%>,其中str为一个变量。

1四大域对象

根据其范围从小到大排列:

page域:只能在当前页面有效。request域:只在一次请求或请求域中有效。session域:一次会话(一次或多次请求和响应)过程中有效。application域:整个项目过程中都有效。2从四大域对象中取值

①设定域对象的值

使用的方法都是setAttribute()方法,参数以键值对的方式存值,

②普通方式取值

以page域对象为例,其格式为:

${pageScope.pageKey}

pageKey为page域对象对应的key,使用这种方式就能取出域对象中的值了。

③简写方式取值

以page域对象为例,格式为:${pageKey}

将pageScope简化了,直接就是一个key。

但是这样就会有一个问题,key可能会重复。

毕竟key是人为命名的,page域对象中的key和request域对象中的key可能一样。

如果key重复了,会按照从小到大逐级查找。

3从Cookie中取值

①保存Cookie到浏览器

在LoginServlet中保存两个Cookie到浏览器:

usernameCookie:名为username,值为请求中的数据,即登录界面输入的用户名。passwordCookie:名为password,值为请求中的数据,也就是登录界面输入的密码。②取出Cookie对应的值

以usernameCookie为例,这个Cookie中的key为usename,根据key来取值。

格式为:${cookie.username.value}

这样做有什么好处?做一个测试:

在第一次登录输入用户名和密码后,其数据会被保存在cookie中,从而被页面读取到。

再次刷新时,用户名和密码会自动出现,就不用再次输入用户名和密码了。

最后

谢谢你的观看。

如果可以的话,麻烦帮忙点个赞,谢谢你

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

议论文600字初中作文 这是我的选择作文 优秀记叙文作文600字 吃火锅作文300字 难忘的一天作文开头 精彩瞬间作文600字 有关除夕的作文 理想与信念作文 写景物的作文300字 作文类型有哪几种 名人名事作文素材 失败乃成功之母作文 开学后的感受作文 元宵节作文50字 挠老师脚心作文 高中英语作文万能句子 最懂我的那个人作文 打屁股机器作文 中考优秀作文800字 什么让我陶醉作文 开学的打算作文 myschool英语作文 那些温暖的时光作文 劳动使我快乐作文 史铁生作文素材 介绍长城的英语作文 犯错作文600字 什么的那一刻作文 过年作文250字 有关创新的作文素材