一文看懂jsp

本来想写一篇关于jstl和el的文章,但是写起来之后发现,先要说清楚jsp。

jsp:java server page

明确一点:我们的web工程实现了什么?  其实说到底就是数据的展示和收集。

数据的收集:用户在浏览器中输入一个地址,填写一个姓名,点击一下,滑动一下,甚至是盯着屏幕看,都可以看做数据收集。这个过程在客户端实现。

数据的展示:将一段新闻,一个页面等等,返回给到前端,这就是展示。jsp页面就是为了让显示更好看。

 

可能你听到这个比较纳闷,让页面显示不应该是html,css的作用吗?

是这样的?但是这有个前提,就是你html必须将需要展示数据展示出来。  记住数据才是重点,样式反倒是其次(当然,一个赏心悦目的页面现在同样非常重要)。

 

其实说到底:这里就是一个如何把样式和数据统一起来。

如果仅仅有数据,太丑,仅仅有样式,没意义。两种解决方案

1. 先给客户端一个样式,然后获取数据,通过js将数据显示在页面。也就是前后端分离思想。

2. 将数据直接填写到样式中,然后将数据和样式一起返回到客户端。

 

优缺点:

1. 前后端分离优点:可以让前后端的工作互不相关。专业的人做专业的事情。加快项目进度。            缺点:需要增加人员,后端人员对前端的理解减弱。可能会有多余数据传输(很多时候,一个接口多个地方使用,同一个api)。数据直接暴露,增加风险(有部分)。

2. 数据样式一起  优点:加深后端人员对前端技术理解。数据使用粒度容易把握。      缺点:不利于快速开发,前后端人员工作耦合,前后端代码也有耦合。前端调试麻烦。

ps:这里的优缺点个人见解,网上有成篇大章有关优缺点的。   这都是一些题外话,想到了就写上了。

 

jsp就是数据样式一体的具体体现。它的做法是,在样式上,将数据进行解析,嵌套到页面上,然后将整个页面返回到客户端(浏览器)。

例如:有个a标签,服务器需要动态展示一个名字,比如登录的是张三,就出现张三。  那就在返回前  将战三两个字,嵌入到a标签中。   <a>张三</a>

这就是我们所说的,jsp为动态资源(里面的内容能够动态发送变化),而js和css等为静态资源的原因。  有人说我的js也可以,我前端页面点击,填写等等。这里的动态指的是在服务器上,资源能否变化。

 

前面只说了jsp是数据样式一体的。它是如何实现的。  这里只说原理,不做深入说明。

我们都知道一句话,jsp就是servlet,可是我们每次看到的就是一个.jsp文件,servlet至少也是一个类,两者差距有点大。

这里就有一个jsp的翻译工作,其实就是在客户端访问jsp的时候,将jsp转化为一个servlet类。  归根结底,在java中,资源都是通过流输出的,只要遇到 html啊,a标签这些,全部输出,遇到jsp中的数据处理,按照规则转为java代码。

例如${username}这个,就是从几大域对象中获取这个属性的值就可以啦。

最终类似返回了一个静态页面,只不过是将数据放到的指定的地方。

 

 

说到底,就是拿到一个html的页面,在里面响应位置添加了一些数据而已。

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值