`
eric_weitm
  • 浏览: 243575 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

web开发java VS python

 
阅读更多

一、基本概念和知识点

1、web server:实现了http协议的tcp服务器

2、application server:实现程序逻辑的服务器

3、web container:提供基础支持的容器

4、proxy:代理,client与目标之间的中介

5、https:安全传输层协议(TLS)之上的http

6、servlet处理资源请求的程序逻辑,程序员自己处理多用户导致多线程问题

7、ServletContext:多个servlet共享的环境

8、servlet容器: 支持servlet执行的runtime

9、forward:server内部流程跳转到别的页面

10、redirect:强制client二次请求,可以体现在client的地址栏

11、session:从客户打开浏览器连接到服务器,到客户关闭浏览器离开这个服务器,称做一个会话。当客户访问服务器时,可能会反复连接这个服务器上的几个页面、反复刷新一个页面或不断地向一个页面提交信息等,服务器应当通过某种方法知道这是同一个客户,这时就需要session对象。  

12、cookie:每次http交互时client都会带上的数据,可以用于标记uid,数据存在client。

13、tomcat的server service connector engine servlet

server:对外暴露service,理论上可以不仅仅是http服务

service:connector+container,http服务

connector:处理外部的请求连接,如socket和传输相关

container:具体的处理逻辑的环境,其分为engine、host、context

engine:servlet的容器(支持多个虚拟主机)

host:虚拟主机(区别于硬件上的主机),对应一个网站(公网ip)

context:一个app的上下文环境(一个host可以有多个app)

14、filter 对每个请求都进行的逻辑

15、listener 事件发生时自动执行的代码,分为ServletContext,HttpSession和ServletRequest

16、csrf:(Cross-site request forgery)跨站请求伪造,利用登陆后的session信息,伪装浏览器发http请求。防御措施:api尽量不用get,因为get是单个的url,很容易被嵌入;每个post添加token域,保证是从固定的页面发起请求;或者直接添加一个账号验证或验证码;判断referer;在 HTTP 头中自定义属性并验证

17、XSS:跨站脚本(Cross-site scripting),在用户的输入中加入自动执行的js代码(可以是<script>也可以是隐藏html的事件触发),防范主要是对用户输入的转义

18、DDoS:Distributed Denial of Service 破坏信息安全“保密性”、“完整性”和“可用性”中的可用性,利用大量肉鸡模仿真实的请求,导致server资源耗尽。包括ARP、ICMP、IP、UDP、TCP和应用层的攻击等几个层次。

19、变量的范围包括 page、request、session、application等

二、java和python(以django为例)对web开发的支持

1、基础设施的层次

python:wsgi服务器、wsgi标准、web框架、app

java:app server、servlet容器、servlet、request+request、session

2、标准 wsgi  vs javaee

3、signal VS listener 

4、middleware  VS Filter

 

5、django middleware tips:

process_request:收到请求后,解析url,确定view之前

process_view:进入view回调之前

view_callback:具体回调

process_template_response:view执行后,模板渲染之前(可以改模板)

process_response:生成response之后

三、实际开发流程

1、springmvc + mybatis

目录结构

pojo/entry/model

dao

service

controller

filter

依次实现数据库模式、model、dao、service、controller

打包成war

deploy到tomcat等服务器

2、django

写model、配url、写view、设置template、写配置文件

打包上线

不需要pojo、dao、service等部分

 

四、总结

1、java是静态类型语言,但是web开发要的是灵活性,所以java做了很多规范来提供web开发的支持,比如 javaee体系、servlet、request、header、cookie、session、filter、listener等的封装,jdbc、orm映射等

2、python是动态类型语言,支持闭包、装饰器,语言的表达能力是远大于java的,所以python没有为web开发设计很细的规范,只是定义了wsgi,使app服务器和web 框架解耦。在web框架内部,因为是脚本语言,不需要抽象request、header、cookie等数据结构(直接用dict就行),orm的映射也是很轻的。

3、python不需要依赖注入和反射(内置直接支持字符串的import)、aop(语言支持高阶函数)、webmvc(支持url直接映射回调)、不需要设计可插拔的架构(直接可以用配置文件来搞定)、不需要处理所有和类型相关的问题

分享到:
评论

相关推荐

    java2python--java代码转python工具

    Python以其简洁的语法和丰富的库而闻名,是数据分析、机器学习和Web开发等领域的首选语言。 在描述中提到的“java2python”工具,可能是一个开源项目或服务,用于自动化这个转换过程。这样的工具通常会解析Java源...

    用java调用python

    Java 在企业级应用、Web 开发和分布式系统中有着广泛的应用,而 Python 则在数据处理、科学计算和机器学习领域表现出色。为了结合两者的优势,我们经常需要在 Java 程序中调用 Python 脚本或库,以便利用 Python 的...

    几份程序员简历参考模板,涵盖Java开发、Python、Web全栈、前端开发、软件工程.rar

    几份程序员简历参考模板,涵盖Java开发、Python、Web全栈、前端开发、软件工程.rar 几份程序员简历参考模板,涵盖Java开发、Python、Web全栈、前端开发、软件工程.rar 几份程序员简历参考模板,涵盖Java开发、Python...

    linux 下配置python web开发环境

    在Linux环境下配置Python Web开发环境是一项重要的任务,它涉及到多个组件的集成与配置。这个过程主要包括以下几个关键步骤:安装Python,设置Python开发环境,安装Eclipse集成开发环境(IDE),安装PyDev插件,配置...

    Python Web开发,高清PDF文字版,带书签

    《Python Web开发》这本书是为那些想要学习如何使用Python语言构建Web应用的初学者和开发者设计的。Python作为一门易学且功能强大的编程语言,在Web开发领域有着广泛的应用。本书内容详细,涵盖了一系列用于Web开发...

    java与python的区别.pdf

    - Python在Web开发、数据科学、人工智能、自动化脚本编写等领域得到广泛应用。 7. 静态变量与动态变量: - Java中强类型的静态变量需要在编译阶段检查类型,有助于减少运行时错误。 - Python的动态变量可以在运行时...

    python 优缺点和java与python的jar

    2. **丰富的库支持**:Python拥有大量的标准库和第三方库,涵盖了数据科学、网络爬虫、Web开发等多个领域,极大地提高了开发效率。 3. **跨平台性**:Python可在多种操作系统上运行,如Windows、Linux、Mac OS等,...

    基于C++开发的WEB服务器,支持C++、Python、Java等多语言混合开发WEB应用.rar

    cppweb易拓展,作者开发Java、Python等模块,用于支持Java、Python等语言开发cgi程序,开发者可以直接使用C/C++、Java、Python等语言进行混合开发。 cppweb追求小而巧,对于开源库是拿来即用,源码工程自带zlib、...

    web开发设计 python为基础的web开发设计

    web开发设计 python为基础的web开发设计 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM...

    java调用python+访问mysql数据实例

    在IT行业中,跨语言通信是常见的需求,例如Java与Python的结合使用。本实例主要探讨如何利用Java调用Python脚本,并通过Python...同时,了解Java与Python之间的交互和MySQL的连接方式对于开发混合语言的应用至关重要。

    Python web接口开发与测试

    知识点梳理: 1. Python基础 1.1 Python版本选择:Python2.x与Python3.x的对比和选择,主要因为Python2.x已停止更新,推荐使用Python3.x。...学习者通过本书可以系统地掌握Python Web开发的基本理论和实践技能。

    Java_Web开发教程.pdf

    ### Java Web 开发教程知识点概览 #### 一、Java Web 开发背景及基础知识 **1.1 Java 语言简介** - **历史与现状:** - Java 是一种跨平台的面向对象编程语言,最初由 Sun Microsystems 在 1995 年发布。 - ...

    各种学习资料 Android Python Java Java web C语言 C++ 教程 视频.zip

    各种学习资料 Android Python Java Java web C语言 C++ 汇编 Android逆向 Arm开发 51单片机 Photoshop 会声会影 Windows Unity cocos2dx 教程 视频 各种学习资料 Android Python Java Java web C语言 C++ 汇编 ...

    基于Python的Java Web开发课程设计源码

    该项目是一个以Python为主要开发语言的Java Web开发课程设计源码,包含共计99个文件,其中包括93个Python源文件、2个XML配置文件、2个数据库文件、1个IPython Notebook文件、1个JSON文件。该项目由段維翰设计,适用...

    基于Django的Python Web开发.pdf

    在Web开发方面,传统的Java Web框架如Struts、Spring、Hibernate,以及*** MVC等,都存在一定的复杂性,需要开发者花费大量时间学习框架技术及框架间的整合。相比之下,使用Python语言开发的Django框架以其简洁的...

    c cpp php java1.8 python3.8 中文帮助文档.zip

    Python 3.8新增了赋值表达式(walrus operator `:=`)、行级异步等特性,适用于Web开发、数据分析、人工智能等多个领域。 这些语言的中文帮助文档对于中国开发者来说是非常有价值的资源,可以帮助他们快速理解和...

    Web后端开发技术PPT介绍

    Web后端开发技术必须具备良好的编程基础知识,其中包括Java、Python、Ruby等编程语言,并熟练掌握数据库相关知识。关于编程语言的选择,目前市面上流行的编程语言有很多,最常用的是Java和Python。 1. Java Java是一...

    eclipse ida 工具介绍 java android python 开发工具

    Eclipse被广泛应用于各种开发项目中,包括Web开发和Android应用开发。 Eclipse IDE提供了丰富的特性,包括代码编辑器、项目管理、版本控制等。它的扩展性极强,用户可以根据自己的需求安装各种插件,例如PyDev插件...

    Python-一个使用Java基于免费的机器人聊天API开发的聊天网站

    【标题解析】 标题"Python-一个使用Java基于免费的...综上所述,这个项目融合了Python和Java的多种技术,涵盖了Web开发的前后端,以及API集成和自然语言处理等复杂功能,是学习和实践多语言协作开发的一个良好实例。

    java、python、PHP、Html 、JS、C、C++

    Python在数据分析、人工智能、Web开发、自动化运维等方面有广泛应用。Python的关键知识点包括数据结构(如列表、元组、字典)、控制结构、函数、模块、面向对象编程、装饰器等。 3. **PHP**:主要应用于服务器端...

Global site tag (gtag.js) - Google Analytics