精华内容
参与话题
问答
  • 后端学习路线

    万次阅读 多人点赞 2018-09-13 14:01:26
    有不少初学者问到,我想学习后端,但是又不知道该怎么学,所以我决定把这几年的经验和经历整理成一篇文章,分析后端的路该怎么走,先说明下面仅仅是个人心得,也许与外面的理论有所不同。(文章最后面会附上学习路线...

    有不少初学者问到,我想学习后端,但是又不知道该怎么学,所以我决定把这几年的经验和经历整理成一篇文章,分析后端的路该怎么走,先说明下面仅仅是个人心得,也许与外面的理论有所不同。(文章最后面会附上学习路线地图和一些自己看过的书籍)


    后端初接触

    后端首先需要学习的是html,css和js,也许你会问做网页不是前端做的事情吗?答案是对于真实开发环境后端很多时候还兼顾了前端这个角色,对于架构来说优化不仅仅要考虑后端还需要考虑前端。

    要学到什么样的程度才可以学下一样技能呢?我的建议是能够搭建起一个简单的页面,最重要的是学会dom操作和ajax。

    语言选择

    我相信过来人或者正在入门的人都碰到过这个世纪难题,如果你是初学者我建议您使用java。这里并不是说我喜欢java才推荐你们用java入门,而是java的思想对我们以后开发有很不错的启发。当你学会一种语言的基本语法就可以到下一步了(仅仅是语法,任意语言)。

    hello world!

    没错,这个时候,你得让浏览器可以看到hello world! 为了实现这个小目标,我们就需要根据语言配置不同的运行环境。由于入门,我建议可以使用一些集成的一键配置环境软件,例如php可以用phpstudy,java看看教程,下载一个tomcat然后跟eclipse集成就好,而python或则ruby则使用一个轻量级的web框架,copy一下官网提供的hello world!例子即可。

    高级一些的hello world

    这个阶段,你需要实现的是通过浏览器输入不同的网址,你可以输出不同的内容。然后要弄明白什么是get参数,什么是post参数。然后要实现根据不同get参数或者post参数输出不同内容。因为后端研发从根本上来说就是处理这些不同输入,输出特定的内容回去而已,所以这一步,最关键。

    数据库

    为什么我们要用数据库呢?以一个新闻网站为例,它要保存新闻数据,还得保存用户信息,也要保存评论信息。也许你会问用文件保存就好了,为何还要学习数据库这么庞大的东西呢?首先,我们来看一下什么是数据库,我们可以把数据库每一个table看成excel的sheet,每一个db就是一个excel文件。而sql语句就是一条条指令,可以帮我们操作里面的数据,可以节省我们大量的操作。开始学习数据库的时候,我建议学习mysql。


    模板引擎

    一项技术的出现,往往在于解决了一些开发难题。在没有模板引擎之前,我们得使用字符串拼接方式,弄成html字符串,但是这种方式很容易出错的。而模板引擎无需字符串拼接,并且可以处理字符串转义问题,并且模板集成,模板引用等功能,可以使代码可以重用,大大提高了开发效率,工程也更容易维护。

    MVC框架

    首先,我们得明白为什么要用框架?假如是第一次接触,我相信第一感受是用了框架加重自己的开发负担。然后框架存在必然有自己的合理性,我们来看看框架有什么优点。

    1. 框架提供了大量的方法封装,我们可以直接调用来解决业务问题,这可以大大提高开发效率。

    2. 框架能够帮我们分层编写代码,能够在后期更好的维护我们的项目。

    3. 做一些安全防护,处理一些常见的攻击。

    所以对于各种语言,大家可以选择一个对应的框架来学习。那么我们应该如何挑选一个框架呢?

    1. 多人用的(最起码使用过程中遇到问题,都能找到人问)

    2. 文档详细的(文档不详细,怎么去学习呢?)

    3. 简单的(未来的趋势估计都是往轻量级框架走的)

    Linux与应用部署

    开发用window没什么问题,但是我们做的应用绝大部分是要放在linux系统来对外提供服务器,所以不懂linux的操作是不行的,并且服务器为了尽可能节省资源,都是不使用界面的,所以我们要学好大量的linux命令。

    服务器环境我们一般就不会用外面的通用的一键安装环境,往往需要优化的。所以基本的软件安装和配置需要学会,特别是近年来很火的docker,越来越多都是基于docker来部署的啦。

    缓存

    缓存可是处理高并发的万能药,每当你写的功能慢的时候,基本上你都可以通过缓存来大大提高网站性能。实现缓存的方法很简单,但是一当在并发下和海量数据面前一切都不容易,还得上分布式集群这些。

    http协议

    如果上面的你都接触了,恭喜您普通开发估计是没问题了,如果你说很多需求还是做不出,没关系,其实你只是缺乏开发经验而已,只要多写多请教,你就会发现,其实后端研发也没什么难度。这个时候,如果我们想往高级研发工程师方向走,一些底层的高级的东西我们得学会。

    浏览器与服务器通过http协议交互,其实就是相互之间传递一串特定格式的字符串。get参数,post参数,url,和cookie等信息其实都包含在这字符串里面。我们平时虽然没有怎么碰到这些底层的东西,其实是框架和tomcat这种软件帮我们处理了。

    就像平时一个重定向,其实就在header里面有一句Location: XXX。而我们平时声明返回的是html还是json其实是headers有一句Content-Type:XXX,一切神奇的功能其实仅仅是一段特定的字符串而已,所以http协议怎么可以不研究呢。

    nosql

    非关系型数据库有很多,例如memcached,redis,mongodb,coundb等。这些东西都有自己的适用场景,合理利用可以加快开发效率,对提高应用性能有很大的帮助的。

    消息中间件

    这种技术的出现是为了解耦,当我们业务过于庞大的时候,就会相应的拆分成几个小系统,系统之间的通讯往往是通过http协议调用和基于消息中间件。通过http协议有一个弊端,就是某个系统一旦修改了地址,那么就必须修改调用该服务的系统。如果通过消息中间件调用,那么应用如何迁移,也不会影响到别的系统。

    一点点话

    你跟所谓的大牛差距在哪里呢?我的看法是差距仅仅在于项目经验。也许你会说后端怎么需要学习这么多东西,并且年年都有新的技术出现怎么学呢?其实对于一种新技术,我们主要是要弄明白我们为什么要用这种技术,因为存在即合理,新技术的出现必然有自己的原因,所以新技术不一定要追求,但是底层建议要理解。然后什么海量数据和高并发下系统优化,一个原则,找到性能瓶颈并解决它而已。

    附录

    路线图

    书单(下面仅仅是一些个人以前看过的书籍,并不是推荐要看,个人建议看看哪种讲解核心的书籍,怎么制作比怎么用更总要)

    LINUX操作系统(第2版)

    LINUX指令范例速查手册

    JSP & SERVLET学习笔记

    STRUTS 2.X权威指南(第3版)

    HTML 5从入门到精通

    JAVA入门经典(第6版)

    看透Spring MVC:源代码分析与实践

    大型分布式网站架构设计与实践

    Docker 容器与容器云

    Python Cookbook(第3版)中文版

    Go语言程序设计

    MongoDB大数据处理权威指南(第2版)

    NoSQL数据库技术实战

    构建高可用Linux服务器(第3版)

    大型网站技术架构 核心原理与案例分析

    Linux运维之道

    高性能MySQL(第3版)

    Java核心技术 卷I

    Java核心技术 卷II


    展开全文
  • 后端开发学习阶段总结

    万次阅读 2018-08-05 11:24:51
    最近开始接触后端开发,学海无涯,对于知识这座高峰,仰之弥高,钻之弥坚,我只能拾级而上,一个阶段来慢慢总结一下。 一、工欲善其事,必先利其器。首先是基本工具的安装: ... ...JDK 、 eclpise(java EE)、 svn ...

     

    最近开始接触后端开发,学海无涯,对于知识这座高峰,仰之弥高,钻之弥坚,我只能拾级而上,一个阶段来慢慢总结一下。

     

    一、工欲善其事,必先利其器。首先是基本工具的安装:

    https://blog.csdn.net/moneyshi/article/details/77319445

     

    JDK 、 eclpise(java EE)、 svn 插件 这些以前有所了解

    Tomcat,目前的理解用来进行发布的容器。

    Maven,  项目管理工具,可以很好地帮助开发者引用公用库。

     

    装好这些之后,就用同事给的已经有的项目,将代码用svn插件导出到Eclipse中,然后更新下载maven库,pom.xml中的文件很多,用了一个上午的时间才下载完,然后查看编译结果,还是有几个JAR包没有下载成功,导致引用不到报错,然后手动放置了。

    Pom.xml文件定义:

    <dependency>

    <groupId>XXX</groupId>

    <artifactId>XXXX</artifactId>

    <version>XXXX</version>

    </dependency>

     

    发布成功之后,就可以根据Tomcat中指定的端口和根目录中通过浏览器进行访问了:

     

    127.0.0.1::8080/项目根目录

     

     

    二、数据库操作

    后台服务器中提供数据,并且提供接口操作数据。

    工具:

    MySql server

    https://dev.mysql.com/downloads/mysql/

    数据库查看管理工具:

    Navicat

     

    JDBC驱动:

    mysql-connector-java-5.1.38.jar

     

    简单DEMO

     

    注意数据库连接的时候访问路径,账号,密码要正确:

    String url = "jdbc:mysql://localhost:3306/t_student";

    String username = "admin";//数据库账户,一般为root

    String password = "123";//数据库密码

     

     

    在使用JDBC的时候碰到了使用本地mysql当server时无法成功操作数据库的问题,在网上搜索报出的各种问题,解决一个又冒出一个,最后无奈降级数据库服务器版本才解决问题(之前server用的最新版本8.1,然后将驱动jar包替换成最新还是不行,最后sever和jdbc 驱动jar 都降级到5.0后OK)。新版本会又很多新功能,但是可能会存在使用的兼容问题,在初学某个东西的时候,还是尽量用保守稳定的匹配版本来进行调试,否则会让自己陷入漩涡中。

     

     

    三、框架了解学习

       如果要搞后端开发,相信那些常见的框架都有所耳闻,现在入门看到的两个框架。

     

    MyBatis 主要是数据库操作,可以将接口映射到xml文件中处理:

    http://www.mybatis.org/mybatis-3/zh/index.html

     

     

     

     

    配置文件及内容:

     

     

    静态方法加载xml文件,构建会话session:

     

     

     

     

     

     

     

    Spring 框架:

    目前来看就是可以通过配置xml中来执行不同的实现。

     

     

     

     

     

    四、注解

       其实之前也看到过比如 @Deprecated 这种符号,但是当时还是不了解注解的概念,关于这个解释,下面这篇文档说的比较容易理解。

    https://blog.csdn.net/briblue/article/details/73824058/

     

    后来遇到一堆:

    @RequestMapping

    @ResponseBody

    @ApiOperation

    @ModelAttribute

     

    五、项目实际工作

     

    由PowerDesigner画出业务数据关系图,由图生成数据库,然后由数据库通过jar 包工具,可以生成基本的mapper操作接口以及entity和 Dao 文件:

     

     

    这里将他人的工具说明引用列出:

    1、首先保证安装了jdk,并配置环境变量

    2、根据自己需要,修改generator.xml

        修改数据库url、用户名,密码及路径等。

    3、运行cmd,执行命令:java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite

     

    4、详细请参考博客:http://blog.csdn.net/tolcf/article/details/50835165

     

     

    一路下来了解到这么多,感觉后端涉及的点很多,面很广,还有相关前端知识没有了解,后续再看。

    展开全文
  • 详细后端开发知识讲解

    万次阅读 多人点赞 2018-05-15 16:13:07
    前言本片文章面向后端开发,讲述后端在进行开发时所使用的WEB服务器的工作流程,正所谓知根知底,WEB服务器是后端开发人员日常用于调试WEB程序和与前端通讯的一种方式!WEB服务器最为强大的地方是能够执行WEB程序,...

    一. 前言

    本片文章面向后端开发,讲述后端在进行开发时所使用的WEB服务器的工作流程,正所谓知根知底,WEB服务器是后端开发人员日常用于调试WEB程序和与前端通讯的一种方式!

    WEB服务器最为强大的地方是能够执行WEB程序,其WEB程序的编程语言并没有明确的规定,因为只要你所使用的服务器支持这样的程序就可以了!

    WEB服务器更像是一个平台,在此平台上编写软件我们称其为WEB编程,注:WEB编程下有许多规范比如CGI,FastCGI等等,这个是要看服务器的支持范围!

    不同服务器所使用的规范不同,比如JSP服务器只能运行由JAVA EE编写的WEB程序,不能用于运行像C/C++、Python等编程语言编写而成的WEB程序!

    通常情况下的WEB服务器所使用的编程规范均为CGI编程、只能运行CGI规范的程序,除了一些例外的WEB服务器,比如JSP服务器!

    二. CGI规范,WEB服务器执行过程

    什么是CGI规范?

    CGI是Common Gateway Interface的缩写,其意义为公用网关接口,意思可以理解为:在WEB服务器上运行一个程序或脚本,并且WEB服务器要将脚本执行结果返回给浏览器(客户端)!

    规范从何而谈?

    规范的意思是,无论你使用任何语言编写,都必须使用输出函数(cout,printf,print)输出HTML格式的数据信息,WEB服务器根据这些信息传递给浏览器,浏览器HTML树并将其显示到浏览器当中,即为一个WEB页面!

    更加深层次的来说其实,无论你使用什么语言编写,只要在WEB服务器中的配置文件中,使其支持CGI编程,然后将你编译完成的二进制可执行文件后缀名改为.cgi,最后前端页面在使用get或post方法请求这个WEB程序,WEB服务器会自动执行这个程序并将其结果送回给浏览器(TCP/IP协议)!

    实际执行是由操作系统来完成的,只是WEB服务器将程序中打印输出的字符信息给重定向到WEB服务器当中了,即WEB服务器在调用你的CGI程序时会使用一条操作系统都有的命令,重定向:

    >>

    printf或cout等打印函数的底层实现过程是将数据写入到显存中,根据要打印字符的位置并把位置写入到显存下,GPU会根据显存数据在屏幕点亮像素点中对应的二极管(RGB),一般字符字体都是由操作系统来完成的,因为字体的不同,笔画也就不同!printf会把要打印的字符数据转交给操作系统,在从用户态到内核态之间的转换,在到显存,且也要考虑编码的问题,因为不同的编码对应不同的数据,printf只会移交ASCII(最底层是没有字符这个概念的只有二进制码,而二进制码可以转换成ASCII码)码,操作系统需要根据当前程序使用的编码,并将ASCII码转换成当前编码要输出的字符,并且操作系统也要考虑屏幕分辨率,比较分辨率的不同像素点占用就不同!

    其当服务器在执行CGI程序时,也可以不用把程序后缀改为.CGI,你可以在配置文件中增加支持的扩展后缀名:.exe、.py、.c、.elff(ARM可执行文件/Linux可执行文件,Linux就是为ARM设计的)

    注意如果你配置成源文件的格式需要WEB服务器的支持,比如apache服务器,仅支持py文件,apache服务器会自动编译.py文件并执行!

    如果是在Linux或MAC系统下需要设置目录权限:

    chown -R 555 //所有访问权限

    如何接受从服务器传递来的信息?

    当我们前端页面向WEB服务器发送一个请求时(get/post)会有一个传参,里面包含着请求数据,比如:

    https://www.zzhblog.cn/c.cgi/?utm_source=csdnbar

    其意思为,请求www.zzhblog.cn服务器下的c.cgi程序,并向其传递一个参数,参数名为:utm_source,参数数据为:csdnbar

    也有这样的:

    https://www.zzhblog.cn/?utm_source=csdnbar

    没有请求的程序名,其实是WEB服务器后台给隐藏掉了,你可以在自己的WEB后台中配置默认文件,即输入网站地址而无需指定文件名,访问即返回默认文件!

    或者隐藏请求文件名,WEB服务器会把这些信息放到报文头了,浏览器接受到之后会自动隐藏!

    那么我们要怎样得到传递来的信息呢?这里就需要使用CGI提供的模块了,CGI提供了C/C++版的模块和Python等的模块,使用这些模块里的Get方法可以轻而易举的获取后台服务器传递过来的信息,然后在对这些数据进行处理,并把处理结果重定向给WEB服务器,最后WEB服务器将结构返回给浏览器,注意结果必须以HTML格式返回!

    整个执行过程都是经过HTTP协议格式规范来的!

    不过目前有的WEB服务器已经开发出自己的WEB服务器编程语言,也就是说该WEB服务器只能运行指定运行编译的程序,并且该语言下提供了很多较为方便的模块,可以调用直接读取一些相关数据,和处理数据的模块!

    关于C/C++方面的WEB程序开发

    C/C++编写WEB程序开发效率实在是非常之低,因为通常情况下我们做WEB服务器处理,一般都是对字符的解析,而C/C++传递过来的GET或POST数据是一个完整的URL和报文,需要C/C++自己去解析这些数据,不像其他编程语言已经为其解析完成,拿过来直接处理即可,而且C/C++对字符处理方面库支持本身就很差,需要开发人员手动编写字符处理库,所以这也是为什么大家不愿意使用C/C++做WEB服务器开发,因为要写很多代码,即使是由CGI模块的支持,但CGI模块只能用于获取WEB服务器传递过来的数据!

    再则,C/C++本身就是一个不是易学,且要考虑内存泄漏问题的一个编程语言,现在很多编程语言会自动帮你释放不用且丢失的内存,解决内存泄漏,也就是托管式代码平台,经典的有:.net

    C/C++WEB服务器开发效率与其他编程语言对比

    C/C++需要编写很多代码来完成某个任何,极其降低后端开发效率,但是也提高个人编程能力,现在很多编程语言都提供了很多模块,来完成某些任何,甚至可以说不是编程语言,是脚本,专门调用C/C++写的代码,比如Python!

    由于Python简单,模块多,可以简单调用模块处理许多复杂模块,所以很收后端开发人员的欢迎!

    有的时候没有CGI模块,WEB服务器在开发文档中会告诉你,参数会存放在哪儿,哪个临时文件中,或直接利用C/C++传参的方式传递:

    a.out aaa aaa

    a.out代码:

    int main(int x,int *a[]){
    }

    这是最经典的方式,x代表参数数量,a代表参数!

    a一般是个数组指针,指向每个参数!

    for(int i = 0;i < x;++i){
    printf("%s",*a[i]);
    }

    CGI与FastCGI

    CGI程序只能被请求一次,也就是说一次只能执行一个客户端发来的请求,假如说有一百个客户端同时请求这个程序,那么该程序要一个一个的执行!

    FastCGI就是CGI的升级版,该规范可以同时以多线程的方法来执行CGI程序,一百个客户端同时请求CGI程序时,服务器就会同时执行一百个CGI程序来处理这些客户端,可以在WEB服务器的配置文件中修改选择对应的CGI和FastCGI方法,WEB服务器会根据这些方法来做对应的规范!

    执行效率与算法

    在前端把数据传递到后端以后,后端要着手处理这个数据,就拿搜索引擎为例子:当我们在搜索引擎中输入相关数据时,要知道,在庞大的万维网平台中,网页资源几乎数不胜数,每天都会要上亿的新网页诞生。

    搜索引擎中有一个叫蜘蛛的模块,用于将这些数据爬下来,也就是网络爬虫,保存到服务器本地上,假设你的搜索引擎服务器中有数百亿条数据,并且网页路径和域名,网页名在数据库里存储好的,那么当用户在浏览器里输入某个关键字时,就会找到海量的相同数据,那么后端人员要做的是将这些数据以热度并排名按从大到小的方式出现在搜索页面的下拉框里,供用户挑选,那么此时就考虑到算法的要求了,倘若算法太复杂,那么后端执行个一两分钟才返回结果那么用户体验是不是就很差?

     

    三. HTTP协议规范

    这里不做详细介绍,因为博主之前有写过对HTTP/HTTPS协议规范的详细介绍,所以这里简明摘要!

    HTTPS之所以叫HTTPS是因为在使用TCP协议加密时通过SSL算法进行加密,HTTPS传输过程比HTTP要更加耗时!

    其次使用HTTPS握手过程需要证书验证,所以WEB服务器方也必须支持SSL协议!

    在浩荡的互联网中,就像开车一样,当我们开一辆货车运载资源时,难免会遇上堵车,那么此时就需要交通法则,来规定我们怎样传输,从而避免网络堵塞的情况,同时也要避免两辆车互相撞在一起导致数据丢失,发生丢包的状况,所以HTTP协议规范用语规定互联网中应该怎样传输数据,比如HTTP协议规范确定使用TCP协议来传递数据,防止因为网络拥堵或堵塞导致丢包的现象,实则上路线的选择是由猫(调制转换器)来决定的,猫会根据当前连接的线路状况来确定最优的传输路线,而TCP只是规定怎样来完成这次的传输,传输路线是由猫来完成的,以及收,收到之后猫会把数据发送给网卡,网卡解析数据在发送给上层,也就是形成了网络七层的概念!

    以上的APDU、PPDU即为封装,因为上层需要把自己的数据封装到一个包里,然后发给下层,下层在把这个数据拆开翻译意思,在根据意思添加自己的报文格式进去,即形成了APDU、PPDU包格式!

    假如我要向IP为1.0.0的地方发送一个A的字符,那么需要填写IP地址和数据段信息,然后发送给传输层,传输层在把这个数据拆开分析其意思,然后在进行格式转换,压缩,确定传输方式,在传送给下一层,这样做的方法是为了确保不同的数据结果格式上的歧义问题(表示层以后的层格式是统一的,所以需要表示层来统一格式),然后在到物理层在转换成BIT的电路信号方式确定最优路线发送到指定路由下,路由器接收到之后呢,在一步一步按照前面的步骤拆包,一步一步分析包,最终发送到电脑上的指定程序下!

    其实像应用服务器,是没有七层这么个概念的,实则上就三层,应用层选择好路径,数据和方法,表示层分析数据和方法,并对这些格式进行压缩,加密然后传递给传输层,传输层在拆开确定方法,修改报文格式,增加新的包头,直接发送给物理层,由猫直接发送出去,在TCP协议中无需经过HTTP协议,HTTP协议只在WWW开头的万维网域名下有效!

     

    相关连接:HTTP/HTTPS协议原理HTTP/HTTPS协议原理HTTP协议层开发

    展开全文
  • Web后端开发入门(1)

    万次阅读 2018-07-10 20:23:48
    Web概述: 在英语中web表示网页的意思,它用于表示Internet主机上供外界访问的资源。Internet上供外界访问的Web资源分为: 1....动态Web应用的实现手段: 静态web开发技术有html,常用动态web开发...

    Web概述

        在英语中web表示网页的意思,它用于表示Internet主机上供外界访问的资源。

    Internet上供外界访问的Web资源分为:

        1.静态Web资源(如html页面):指web页面中始终不变的数据。

        2.动态Web资源:指web页面中供人们浏览的数据是由程序产生的,也就是实时变化的数据。

    动态Web应用的实现手段:

        静态web开发技术有html,常用动态web开发技术有:JSP/Servlet、Microsoft  ASP、ASP.NET、PHP等。

        1.Microsoft  ASP、ASP.NET

            微软公司动态web开发是比较早的,而且最早在国内最流行的就是ASP。ASP就是唉HTML语言之中增加了VB脚本,但是标准的开发应用应该是使用ASP+COM,但是实际情况来看,在开发ASP的时候基本上都在一个页面中写上成百上千行的代码,这就使得页面代码极其混乱。

            ASP本身有开放平台的限制:Windows+IIS+SQL Server/Access,ASP只能运行在Windows操作系统上,ASP现在基本上已经淘汰,取而代之的是ASP.NET,它在性能上有了很大的改善,并且开发迅速,但是依然受限于平台。ASP.NET中主要是使用C#语言。

        2.PHP

            PHP开发速度很快,功能强大,跨平台,而且代码也简单。但是只适用于开发小型网站,

        3.Servlet/JSP

            这是SUN公司主推的B/S架构的实现语言,是基于JAVA语言发展起来的,因为JAVA语言足够简单,而且很干净。

            Servlet/JSP技术的性能是非常高的,不受平台限制,各个平台基本上都可以使用,而且在运行中是使用多线程的处理方式,所以性能非常高。

            SUN公司最早推出的WEB技术推出的是Servlet程序,Servlet程序本身使用的时候有一些问题,所有的程序是采用JAVA代码+HTML的方式编写的,也就是说,要使用JAVA输出语句,一行一行的输出所有的HTML代码,之后,SUN公司受到了ASP的启发,发展出了JSP。 JSP的某些代码的编写效果与ASP是非常相似的。这样可以很方便地使用一些ASP程序员转向JSP的学习,加大市场的竞争力度。

    JavaWeb应用程序

        在SUN的Java Servlet规范中,对JavaWeb应用作了这样的定义:“JavaWeb应用由一组Servlet、HTML页、类、以及其它可以被绑定的资源构成。它可以在各种供应商提供的实现Servlet规范的Servlet容器中运行”。

        JavaWeb应用中可以包含如下内容:

    • Servlet
    • JSP
    • 实用类
    • 静态文档如HTML、图片等
    • 描述Web应用的信息(web.xml)

        Servlet和Servlet容器


            我们首先通过web浏览器发送一个HTTP请求,这个HTTP请求会到web容器中,web容器把它定位到一个具体的servlet中,servlet中包含具体的servlet和jsp,然后servlet会访问数据库,之后数据库再把数据返回给servlet,servlet再返回给web服务器,web服务器再通过HTTP响应给到web浏览器,之后我们就能看到请求的数据。

    request  请求          response  响应

    WEB服务器

        简介:Web服务器是指驻留于因特网上某种类型计算机的程序,是可以向发出请求的浏览器提供文档的程序。当Web浏览器(客户端)连接到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。


        服务器是一种被动程序:只有当Internet上运行在其他计算机中的浏览器发出请求时,服务器才会响应。


          Servlet容器为JavaWeb应用提供运行时环境,它负责管理Servlet和JSP的生命周期,以及管理它们的共享数据。Servlet容器也称为JavaWeb应用容器,或者Servlet/JSP容器。

        常见的Web服务器:

        1.WebLogic

            WebLogic是美国bea公司出品的一个application server。BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。是目前应用最广泛的Web服务器,支持J2EE规范,而且不断的完善以适应新的开发要求

        2.WebSphere

            WebSphere Application Server是一种功能完善、开放的Web应用程序服务器,是IBM公司电子商务计划的核心部分,它是基于Java的应用环境,用于建立、部署和管理Internet和Intranet Web应用程序。这一整套产品进行了扩展,以适应Web应用程序服务器的需要,范围从简单到高级到企业级。

        3.Tomcat

            Tomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apachc软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。应为Tomcat技术先进、性能稳定,而且开源免费,因而深受JAVA爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。该服务器支持全部JSP以及Server规范。



    展开全文
  • 什么是后端开发

    万次阅读 多人点赞 2017-12-08 00:00:00
    点击上方“中兴开发者社区”,关注我们每天读一篇一线开发者原创好文英文:https://dzone.com/articles/what-is-back-end-development软件...在Web开发的篇章中,我们主要讨论Web开发,因为它涉及与最终用户的直接互动
  • 转载关于后端开发需要学习的内容

    千次阅读 2019-04-24 21:01:22
    今天的网站开发已经大不同以往,有很多的东西会对进入此领域的人造成困惑,这就是我们写这系列文章的原因——给大家指导如何在开发过程中胜任特定的角色。 大约1周以前,我们发布了一篇名为“现代前端开发--2018”...
  • 首先,网页设计师是对网页的架构、色彩以及网站的整体页面代码负责,网页美工只针对UI设计,比如网站是否做的漂亮,Web前端开发工程师是负责交互设计的,需要和程序猿进行交互设计的配合。 出色的Web前端开发工程师...
  • 后端开发常见问题汇总场景1场景2场景3场景4 场景1 一 描述 1 抖动处理,多次提交间隔时间较短 2 并发操作 二 方案 redis.setnx_ex u_t 场景2 一 描述 进入同一条数据的修改页面,两人前后两次保存修改数据,前后间隔...
  • 你如何理解后端开发

    2019-11-25 13:16:40
    你如何理解后端开发 拿支付宝来举例,曾经的支付宝用户数并不多,一台服务器,一个数据库就可以支持所有的业务了。 当支付宝的用户越来越多的时候,一台服务器无法同时满足海量用户的需求,于是开始出现了多台服务器...
  • 聊聊开发中经历的几种后端语言

    千次阅读 2019-03-13 22:21:27
    前言 谈这个话题,没有任何语言之争,只是个人开发的经历。有时候的开发语言的选择也只是趋势的选择,
  • Web后端开发入门(2)

    万次阅读 2018-07-10 23:21:37
    搭建JavaWeb应用开发环境--Tomcat服务器下载与安装首先,搜索Tomcat,找到如图网址点击,进入Tomcat官网在最左边一栏,有个Download,找到最新版Tomcat 9 ,点击下拉,找到如上图所示位置,Core 核心:zip版,tar.gz...
  • web项目前后端开发过程和体会

    万次阅读 多人点赞 2018-08-10 22:39:01
     小学期中主要学习了spring mvc作为框架来开发后台接口,能有效地通过本地ip(localhost)+映射的方法名字来访问接口,但其主要着重点在于后台的开发和部分前台并行的开发。因为是java web项目,用的都是jsp的文件...
  • 后端开发框架

    万次阅读 2017-10-22 03:35:32
    Python目前主流的应用包括:Web开发、图形界面开发、系统网络运维、网络编程、科学数字计算、3D游戏开发等。 Python的web框架很多很多,百花齐放。 个人接触最多的是这四个大佬:Django、Flask、Tornado、Aiohttp...
  • 漫谈Go语言后端开发

    万次阅读 2019-02-14 21:47:08
    为什么使用Go语言后端开发? 简单高效:几乎所有主流的编程语言如Java、C++、PHP、Python、JavaScript等等都是可以用于服务端开发的,Go语言作为后起之秀,在语言层面具有语法简洁、执行效率高(底层语言)的...
  • 后端开发书单

    千次阅读 2016-10-20 13:59:02
    《数据结构与算法分析-Java语言描述 第3版》 《数学之美》 《编程珠玑》Java语言基础《Java核心技术(卷1):基础知识(第9版)》 《Thinking in Java》 《Effective Java》并发编程《Java并发编程实战》Sp
  • python后端开发

    千次阅读 2019-08-02 09:46:19
    学习python多线程的缺点进程,线程和协程进程,协程的上下文切换线程和进程的实现方式如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...
  • Linux后端开发

    千次阅读 2017-09-09 09:29:13
    C程序设计语言 C和指针 C陷阱与缺陷 C专家编程 C语言解惑 2.数据结构和算法 数据结构与算法分析 leetcode 3.熟悉Linux操作环境 在Linux平台上面会基本操作,常用指令熟悉,鸟哥私房菜。 4.熟悉底层,...
  • java后端开发(三):开发框架解读

    万次阅读 多人点赞 2018-09-03 21:40:21
    本篇旨在带领读者对框架有个宏观的印象,并了解框架的意义和种类
  • 后端开发语言基础介绍与比较

    千次阅读 2019-03-17 22:46:00
    后端开发语言基础介绍与比较(纯图文) 文字版介绍推荐这篇博文:https://blog.csdn.net/kenkao/article/details/53906021 目录 C/C++ 语言介绍 JAVA语言介绍 Python 语言介绍 GO语言介绍 Shell 语言介绍 ...
  • 2018最新后端开发人员的路线图

    万次阅读 2018-05-22 15:17:57
    简评:之前,后端开发路线图仅仅是一个技术推荐,且没有明确的方向指明应该遵循的顺序,这份重新制作的指南将会给你一个更好的方向。 现在的 Web 开发与几年前完全不同了,有很多不同的东西可以轻易地把人拒之门外...

空空如也

1 2 3 4 5 ... 20
收藏数 305,380
精华内容 122,152
关键字:

后端开发