个人对JSP的理解

在思考JSP之前我们要想一想servlet,servlet用于接收和处理来自页面的请求,请求可以分为交给servlet处理后不需要返回处理结果(向数据库中添加数据。其实也是需要的,比如要给用户一个操作成功的显示)和希望获得servlet处理结果的。

后者servlet在处理后要将结果向用户展示,也就是将数据现在要显示在页面,Java对此有两种实现方式。

  1. 使用servlet生成一个html页面,将数据填到生成的的页面上(包括在页面进行数据的显示和动态控制html元素)我们可以调用HttpServletResponse.write()方法将将html页面一行一行的写出来,但这样会特别麻烦,所以引进了JSP技术,我们知道JSP本质上是一个servlet,其继承了HttpServlet类,我们可以在JSP中直接写html内容,jsp文件会被翻译成_jsp.java进而被编译为_jsp.class文件,在_jsp.java文件中jsp中出现的所有html元素都会在__jsp.java的service方法中使用JSPWrite()逐行输出。这也就可以解释为什么我们使用request.setAttribute(XXX)后要进行页面的转发,因为request域对象中的值可以在一次转发中共享,servlet依托JSP进行数据的显示,当然要把显示的数据给JSP啊
  2. 使用前后端分离的方式,Jsp的一个很大的不足就是我们必须将jsp中的html元素再使用JSPWrite()对象逐行生成一次,也就是说我们JSP中已经有html了,但是不能直接使用,必须再逐行输出一次。其实从本质上来说只是html页面想获得服务端的数据而已这样简单啊.你想要数据我就直接给你啊,这种模式下一般都是前端使用AJAX的技术请求服务端获得数据,我们知道AJAX请求有一来一回,来的时候带来请求,servlet正好可以在回的时候将页面所要的数据转换为JSON传给页面,前端在获得JSON后使用JS对数据进行解析,使用DOM操作控制html元素即可,这样controller(servlet)就不再需要进行页面跳转,把这一切交给前端去做,我们只需要把前端要的数据进行返回即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值