Java和Python的Web开发

在Java里面有一种服务端的软件组件技术,叫做Servlet,其实它的定位就是轻巧的小玩意,比如Java里面的applet也是类似的命名。Servlet能够动态的扩展web服务器的功能,简单来说,就是在Http服务器上提供了一个扩展的接口,是一个接口标注。

按照JavaEE的规范,任何servlet都需要直接或间接的实现Servlet接口,即javax.servlet.Servlet,这个接口里面只定义了5个方法,但是因为servlet是协议无关的,要直接实现还是很困难的,所以,曾经的sun给除了实现Servlet接口的类,是javax.servlet.GenericServlet类。很显然这个通用的类只能是一个抽象类,里面的核心方法是service(),所以由此可以看出,它还是协议无关,依旧和协议无关,所以就有了新的实现类HttpServlet,我们写web应用的时候只需要重点关注如何重写get和post方法即可。原来是从安全和扩展性上更倾向于post方法,但是目前get方法更流行一些。

而到了Python栈,情况会略有一些变化。简单来说,如果不使用任何web框架,我们可以完全使用socket的方式来实现,这也就是Python web应用的本质了。现在流行很火的web框架都是在这个基础之上补充完善。

Python的web开发使得我们更专注于生成HTML文档。因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以,需要一个统一的接口,让我们专心用Python编写Web业务,这个接口就是WSGI(web server gateway interface),感觉和servlet有异曲同工之妙。和Java中servlet中service()不同的是,WSGI接口定义非常简单,只要求Web开发者实现一个函数,就可以响应HTTP请求。比如login,index方法等。所以url的筛选也是重中之重。

而从架构模式的角度来说,Java中更侧重提到MVC,而在Python中则是MTV(不是音乐的那个mtv)。

简单来说,MVC和MTV是类似的,只是归属于不同的开发目录。都是在已有的实现上解耦合,通过配置和扩展来实现复杂的需求。

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2017-12-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小怪聊职场

HTTP|GET 和 POST 区别?网上多数答案都是错的!

34610
来自专栏哲学驱动设计

基于OEA框架的客户化设计(一) 总体设计

    这篇文章还是对工作内容的总结,主要是总结一下这几天做的产品的客户化工作内容。     关于产品线工程中客户化的理论知识和概念,请见金根的《产品线工程》。...

2198
来自专栏个人分享

面向消息的持久通信与面向流的通信

消息队列系统为持久异步通信提供多种支持,本质是提供消息的中介存储能力,这样就不需要消息发送方和接收方在消息传输过程中都保持激活状态。

1054
来自专栏CSDN技术头条

调试大规模服务器集群的五大策略

随着互联网迅速发展,用户访问量以及服务器规模的越来越大,因此,创建一个可靠、稳定、优质的互联网服务是开发者的首要目标。而对于开发者而言,是否具备一个完善的服务器...

2689
来自专栏信安之路

代码审计之 zzzphp

想想很久都没有发布代码审计的文章了,最近忙于开发任务加上最近状态不太好,哎研发dog。

1893
来自专栏phodal

我的职业是前端工程师【十】客户端存储艺术:数据存储与模型

Web或者移动应用的重心,由后台往前台挪动的两个标志是:客户端存储,客户端模型维护。在可见的未来,我们将会见证后端将不存储数据、由前端负责存储数据的应用。 写过...

19310
来自专栏数据之美

玩转 SHELL 脚本之:Shell 命令 Buffer 知多少?

1、问题: 下午有同学问了这么一个问题: tail -n +$(tail -n1 /root/tmp/n) -F /root/tmp/ip.txt 2>...

4236
来自专栏腾讯大数据的专栏

大型web系统数据缓存设计

1. 前言 在高访问量的web系统中,缓存几乎是离不开的;但是一个适当、高效的缓存方案设计却并不容易;所以接下来将讨论一下应用系统缓存的设计方面应该注意哪些...

4726
来自专栏owent

针对Java JIT的优化(转表工具:xresloader)

之前做了一个转Excel表到lua/二进制/json/xml的工具-xresloader。目的一方面是方便策划。另一方面是统一客户端和服务器的转表模式,并且要灵...

782
来自专栏owent

关于BUS通信系统的一些思考(一)

如何保证一个进程或线程能安全稳定地把一段消息发送到另一个进程和线程,甚至是另一台机器的进程或线程,再或是要通过代理转发到另一个进程或线程,一直是一个比较麻烦的问...

1481

扫码关注云+社区

领取腾讯云代金券