JSP运行机制浅析

刚学习JSP的时候, 很多人都说JSP其实就是servlet草稿, 当时不是很懂(只知道JSP确实是个servlet)。


其实,最早的Web服务器简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器。一种名为SSI(Server Side Includes)的技术可以让Web服务器在返回HTML文件前,更新HTML文件的某些内容,但其功能非常有限。

后来出现了大名鼎鼎的CGI(common gateway interface), 这个技术大大提升了动态的概念。 不过它有明显的缺点就是编写困难, 且以进程方式运行, 所以导致慢, 性能受限。

后来SUN推出Servlet, 随后就推出JSP(当然, 之前还有很多优秀的产品, PHP,PERL等等)。


首先客户端发送request给服务器, 服务器使servlet容器实例化servlet(单实例,多线程)来响应客户端的request。

其实我们编写的JSP文件会被容器首先生成java文件, 然后编译成class文件,再去执行。

还记得可以在servlet里使用如下代码返回给客户端页面吗?

out.println("<html><head><title></title></head><body><h1>hello, jsp</h1></body></html>");
其实我们写的JSP文件会变成类似这样的java文件, 可以在tomcat的项目里查看到相应的.java文件, 打开之后就会看到大量的这种代码。

所以说JSP就是servlet草稿, 以前似乎也有前辈们习惯以上面那种方式编写servlet来响应客户端请求。

JSP容器的职责就是将jsp文件变成java文件, 然后使JVM可以编译运行它。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值