精华内容
下载资源
问答
  • Web应用程序  (1)什么Web应用程序  应用程序有两种模式C/S、B/S。C/S是客户端/服务器端程序,也就是说这类程序一般...Web应用程序首先是应用程序,和标准的程序语言,如Java、PHP等编写出来 的程序没有什

             一Web应用程序

            (1)什么是Web应用程序

            应用程序有两种模式C/S、B/S。C/S是客户端/服务器端程序,也就是说这类程序一般独立运行。而B/S就是浏览

    器端/服务器端应用程序,这类应用程序一般借助浏览器来运行。

            Web应用程序一般是B/S模式。Web应用程序首先是应用程序,和用标准的程序语言,如Java、PHP等编写出来

    的程序没有什么本质上的不同。然而Web应用程序又有自己独特的地方,就是它是基于Web的,而不是采用传统方法

    运行的。换句话说,它是典型的浏览器/服务器架构的产物。

            一个Web应用程序是由完成特定任务的各种Web组件(web components)构成的并通过Web将服务展示给外界。

    在实际应用中,Web应用程序是由多个Servlet、JSP页面、HTML文件以及图像文件等组成。所有这些组件相互协调

    为用户提供一组完整的服务。

            Web应用程序是一种可以能通过Web访问的应用程序。Web应用程序的一个最大好处是用户很容易访问应用程

    序。用户只需要有浏览器即可,不需要再安装其他软件。

            Web应用程序,首先,web是互联网的总称。包括HTML,CSS,HTTP协议等。也就是说只要是基于网络技术

    运行的网站或软件(实际上也是网站,比如在线的画图板)就叫Web应用程序。

            (2)我们生活中最常见的Web应用程序有哪些呢?

            电商网站:淘宝、天猫、当当等;

            门户站点:搜狐、新浪、腾讯等。


            二Web应用程序架构优点

            浏览器/服务器架构(Browser/Server,简称B/S)能够很好地应用在广域网上,成为越来越多的企业的选择。浏览器/

    服务器架构相对于其他几种应用程序体系结构,有如下3方面的优点:

           1)这种架构采用Internet上标准的通信协议(通常是TCP/IP协议)作为客户机同服务器通信的协议。这样可以使位于

    Internet任意位置的人都能够正常访问服务器。对于服务器来说,通过相应的Web服务和数据库服务可以对数据进行处

    理。对外采用标准的通信协议,以便共享数据。

           2)在服务器上对数据进行处理,就处理的结果生成网页,以方便客户端直接下载。

           3)在客户机上对数据的处理被进一步简化,将浏览器作为客户端的应用程序,以实现对数据的显示。不再需要为

    客户端单独编写和安装其他类型的应用程序。这样,在客户端只需要安装一套内置浏览器的操作系统,如Window 7或

    Windows 8或直接安装一套浏览器,就可以实现服务器上数据的访问。而浏览器是计算机的标准设备。

           三为什么要学习Web应用程序

           (1)软件三大领域

            我们说Web应用程序开发,是目前软件开发领域的三大方向之一。

           软件开发三大领域包括:

           桌面应用程序:QQ,Office等(使用的是C/S架构);

           Web应用程序:京东,天猫等(使用的是B/S架构);

           嵌入式应用程序:IOS,Android等。


           (2)Web应用程序属于JavaEE方向

           JavaEE方向需求一直很大的,也是就业比较容易个稳定的,在一线城市有两年以上JavaEE开发经验的工程师起

    薪就有10-15K。

           Java Web,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。

    Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三

    方框架等等。Java技术对Web领域的发展注入了强大的动力。

           四Web应用程序开发的相关知识

           (1)Web开发的相关知识

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

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

           静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。

           动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不同。

      静态web资源开发技术:HTML、CSS等。

      常用动态web资源开发技术:JSP/Servlet、ASP.NET、PHP等。

      在Java中,动态web资源开发技术统称为Javaweb。

           (2)Web应用程序

      Web应用程序指供浏览器访问的程序,通常也简称为Web应用。例如有a.html 、b.html…..多个Web资源,这多个

    Web资源用于对外提供服务,此时应把这多个web资源放在一个目录中,以组成一个Web应用(或Web应用程序)

      一个Web应用由多个静态Web资源和动态Web资源组成,如:html、css、js文件,Jsp文件、java程序、支持jar

    包、配置文件等等。

      Web应用开发好后,若想供外界访问,需要把Web应用所在目录交给Web服务器管理,这个过程称之为虚似目录

    的映射

           (3)Web发展史

      Web发展的两个阶段:静态、动态。

           (4)静态Web

       *htm、*html,这些是网页的后缀,如果现在在一个服务器上直接读取这些内容,那么意味着是把这些网页的内

    容通过网络服务器展现给用户。整个静态Web操作的过程图如下:


      在静态Web程序中,客户端使用Web浏览器(IE、FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议

    发起一个请求(Request),告诉服务器我现在需要得到哪个页面,所有的请求交给Web服务器,之后Web服务器根据

    用户的需要,从文件系统(存放了所有静态页面的磁盘)取出内容。之后通过Web服务器返回给客户端,客户端接收到

    内容之后经过浏览器渲染解析,得到显示的效果。

      静态Web中存在以下几个缺点:

      1)Web页面中的内容无法动态更新,所有的用户每时每刻看见的内容和最终效果都是一样的。

      为了可以让静态的Web的显示更加好看,可以加入了JavaScript以完成一些页面上的显示特效,但是这些特效都

    是在客户端上借助于浏览器展现给用户的,所以在服务器上本身并没有任何的变化。

      实现静态Web客户端动态效果的手段:JavaScript和VBScrip。在实际的开发中JavaScript使用得最多。

      2)静态Web无法连接数据库,无法实现和用户的交互。

      使用数据库保存数据是现在大多数系统的选择,因为数据库中可以方便地管理数据,增删改查操作可以使用标准

    的SQL语句完成。

           (5)动态Web

      所谓的动态不是指页面会动,主要的特性的是:“Web的页面展示效果因时因人而变”,而且动态Web具有交互

    性,Web的页面的内容可以动态更新。整个动态Web操作的过程图如下:


      动态Web中,程序依然使用客户端和服务端,客户端依然使用浏览器(IE、FireFox等),通过网络(Network)连接到

    服务器上,使用HTTP协议发起请求(Request),现在的所有请求都先经过一个Web Server Plugin(服务器插件)来

    处理,此插件用于区分是请求的是静态资源(*.htm或者是*.htm)还是动态资源。

      如果Web Server Plugin发现客户端请求的是静态资源(*.htm或者是*.htm),则将请求直接转交给Web服务器,之

    后Web服务器从文件系统中取出内容,发送回客户端浏览器进行解析执行。

      如果Wev Server Plugin发现客户端请求的是动态资源(*.jsp、*.asp/*.aspx、*.php),则先将请求转交给Web 

    Container(Web容器),在Web Container中连接数据库,从数据库中取出数据等一系列操作后动态拼凑页面的展示内

    容,拼凑页面的展示内容后,把所有的展示内容交给Web服务器,之后通过Web服务器将内容发送回客户端浏览器进

    行解析执行。

           (6)动态Web应用的实现手段

      动态Web现在的实现手段非常多,较为常见的有以下几种:

           Microsoft ASP、ASP.NET

           PHP

           JAVA Servlet/JSP

           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在性能有了很大的改善,而且开发迅速,但

    是依然受限于平台。ASP.NET中主要是使用C#语言。

           2)PHP

      PHP开发速度很快,功能强大,跨平台(平台指的就是运行的操作系统),而且代码也简单。

           3)Servlet/JSP

      这是SUN公司(SUN现在已经被Oracle公司收购)主推的B/S架构的实现语言,是基于Java语言发展起来的,因为

    Java语言足够简单,而且很干净。

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

    程的处理方式,所以性能非常高。

      SUN公司最早推出的Web技术推出的是Servlet程序,Servlet程序本身使用的时候有一些问题,所有的程序是采用

    Java代码+HTML的方式编写的,即,要使用JAVA输出语句,一行一行地输出所有的HTML代码,之后,SUN公司受

    到了ASP的启发,发展出了JSP(Java Server Page),JSP某些代码的编写效果与ASP是非常相似的。这样可以很方便

    地使一些ASP程序员转向JSP的学习,加大市场的竞争力度。

           常见动态网站开发技术对比:

           JSP:Java平台,安全性高,适合开发大型的,企业级的Web应用程序。基于Java架构的分布式的框架hadoop。

    适合做电子银行,网上证券交易所,三大运营商的网上营业厅,12306等。

           ASP.NET:.NET平台,简单易学,但是安全性以及跨平台性差。

           PHP:简单,高效,成本低开发周期短,特别适合中小型企业的Web应用程序开发。开发黄金组合LAMP:

    Linux+Apache+MySQL+PHP。

           五Web服务器

            (1)WEB服务器简介

      1)Web服务器是指驻留于因特网上某种类型计算机的程序,是可以向发出请求的浏览器提供文档的程序。当Web

    浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏

    览器如何查看该文件(即文件类型)。


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


           (2)常见的Web服务器介绍

      1)WebLogic

      WebLogic是美国bea公司出品的一个application server。BEA WebLogic是用于开发、集成、部署和管理大型分

    布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和JavaEE标准的安全性引入大型网络

    应用的开发、集成、部署和管理之中。是目前应用最广泛的Web服务器,支持JavaEE规范,而且不断的完善以适应

    新的开发要求,启动界面如图:


      2)WebSphere

      WebSphere Application Server 是一种功能完善、开放的Web应用程序服务器,是IBM公司电子商务计划的核心

    部分,它是基于 Java 的应用环境,用于建立、部署和管理 Internet 和 Intranet Web 应用程序。这一整套产品进行了

    扩展,以适应 Web应用程序服务器的需要,范围从简单到高级直到企业级。启动界面如图:


      3)Tomcat

      Tomcat是一个实现了JavaEE标准的最小的WEB服务器,是Apache软件基金会的Jakarta项目中的一个核心项

    目,由Apache、Sun和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且开源免费,因而

    深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。学习Java Web开发

    般都使用Tomcat服务器,该服务器支持全部JSP以及Servlet规范,启动界面如图:


       4)IIS

       Microsoft的Web服务器产品为Internet Information Services(IIS),IIS 是允许在公共Intranet或Internet上发布

    信息的Web服务器。ⅡS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在ⅡS的平 台上。IIS提供了

    一个图形界面的管理工具,称为Internet信息服务管理器,可用于监视配置和控制Internet服务。

       IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏

    览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的

    事。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连

    接器,可以实现对数据库的查询和更新。

     


    展开全文
  • 网页游戏什么编程语言 ...网页游戏也分很多种,一般市面上的网页游戏就是沿用的网页的交互模式,基于HTTP实现与服务器的交互,这些游戏的后端可以使用任何Web开发语言来实现,比如PHP,Java,C#,http://...

    网页游戏用的什么编程语言

    一、总结

    一句话总结:

    1、找好工具就好,就在下面

    2、系统学游戏编程(或许不用)

    3、前后台是分离的,以数据库为链接

     

     

    二、网页游戏用的什么编程语言

    网页游戏也分很多种,一般市面上的网页游戏就是沿用的网页的交互模式,基于HTTP实现与服务器的交互,这些游戏的后端可以使用任何Web开发语言来实现,比如PHP,Java,C#,http://VB.NET,Ruby,Python这些,都没有问题。游戏的前端现在普遍依然使用Flash平台,开发语言就是ActionScript,比较前卫的游戏有使用HTML5的,就是JavaScript,还有一些社交平台上的游戏直接使用HTML页面来做交互,有一些传统游戏厂商转过来做网页游戏的也有采用ActiveX技术直接把现有的游戏移植过来的,这些游戏前端往往采用C++这些来开发。有些游戏需要实时与服务器交互(比如MMORPG),这些游戏的后端往往就是和传统的网游一样的架构,开发语言也一般会比较传统的采用C++,也有一些采用Erlang来搞定网络及分布式计算的平台部分。值得一提的是Lua语言,Lua在网页游戏的客户端用的不多,但是在服务器端依然有不少采用,主要是用在游戏的实际逻辑部分

     

    flash和flash builder

    不懂就别乱说,h5不成熟,做网页还行。做游戏。。。你给我找个H5大作游戏,让我涨涨见识吧

    手机页游和电脑页游,本来就是两个概念

    h5可以通用

    谁不知道通用,一个键盘鼠标,一个触摸屏,操作性都不一样,连大的H5网页,在电脑和手机上都是两手UI,两手程序,两别说页游。现在电脑就是页游就是flash,没什么可疑惑的

    国外SE,卡婊手游大厂都是用flash做网页端,移动端用原生的,国内出成绩的有弹弹堂,各种传奇页游。哪个是用h5的?神经猫那叫游戏?从11年开始年年喊元年,但到现在毛也没有,都是资本在高潮,虽然as3也不是什么好东西

     

    Construct 2

     

    emscripten   Mozilla的神器,用c++写网页

     

    html5 flash 或者unity3d ue 

    11年的时候 html5 是个玩具 现在大概算个大玩具吧 做个小点的用html5还行 RPG就算了

    网络RPG现在用的比较多的应该是Flash (一刀9999级 一套狗屎代码用N年 就是有人充钱 就问你服不服 )
    unity3d UE4都能导出成Web游戏 不过好像都得装插件 unity 得装unity webplayer UE4不清楚


    至于LZ问用哪个? 洗洗睡吧。或者你可以先学个C语言写个贪食蛇。然后在考虑考虑。 不要一言不合就上天

     

    个人会前端的一些基础知识,CSS,JS,HTML5,PS,近来想开发一款网页类似斗地主的游戏,求思路,求工具框架推荐。添加评论分享赞同反对0Yop,独立开发过各个平台的小游戏。开发的均是…虽然你有 js 基础,不过看你的技能应该偏向于网页前端开发,还得系统地学习一下游戏编程。 对我个人而言,最快速地实现你的需求的方式是使用 cocos2d-html5 + firebase, 你也可以了解一下网易的页游开发框架 Pomelo home这两个方案都是用 javascript 实现的(Pomelo 是 Node.js),但如果你不熟悉编程的话,上手还是有相当的难度的。

     

    转载于:https://www.cnblogs.com/Renyi-Fan/p/9168076.html

    展开全文
  • 一般那些桌面版的管理软件,比如医药、餐饮、服饰专卖店、售票等用的,它们是用什么语言写的,delphi,foxpro,vb,pb,VC这些吗?还有没有别的语言可以写c/s管理软件。 [b]问题补充:[/b] to lovewhzlqvc: 对于...
  • Tomcat:web应用服务器 包括以下几个文件夹: 1.bin:存放各个平台下启动和停止Tomcat服务的脚本文件 2.conf:存放服务器的配置文件 3.lib:存放服务器所需要的java包 4.logs:日志 5.temp:运行时的临时文件,一般...

    Tomcat:web应用服务器
    包括以下几个文件夹:
    1.bin:存放各个平台下启动和停止Tomcat服务的脚本文件
    2.conf:存放服务器的配置文件
    3.lib:存放服务器所需要的java包
    4.logs:日志
    5.temp:运行时的临时文件,一般用于上传下载
    6.webapps:存放允许客户端访问的资源,即java程序等
    7.work:存放Tomcat将JSP转换之后等Servlet文件

    访问格式
    localhost:8080/。。。/
    IP。 端口。应用

    展开全文
  • 一、什么Web服务器##网页服务器(Web server)一词有两个意思:一台负责提供网页的电脑,主要是各种编程语言构建而成,通过HTTP协议传给客户端(一般是指网页浏览器)。一个提供网页的服务器程序。虽然每个网页服务器...

    一直以来都是用Java写Web,但是呢,还没好好去了解实现一个Web Server,由此开始要逐步写出一个完善的WebServer,努力实现高性能的Web站点。

    一、什么是Web服务器##

    网页服务器(Web server)一词有两个意思:

    一台负责提供网页的电脑,主要是各种编程语言构建而成,通过HTTP协议传给客户端(一般是指网页浏览器)。

    一个提供网页的服务器程序。

    虽然每个网页服务器程序有很多不同,但有一些共同的特点:每一个网页服务器程序都需要从网络接受HTTP request,然后提供HTTP response给请求者。HTTP回复一般包含一个HTML文件,有时也可以包含纯文本文件、图像或其他类型的文件。

    二、HTTP协议##

    简介

    HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。

    HTTP协议的主要特点可概括如下:

    1.支持客户/服务器模式。

    2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

    3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

    4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

    5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

    HTTP协议详解-请求

    http请求由三部分组成,分别是:请求行、消息报头、请求正文

    1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF

    其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。

    请求方法(所有方法全为大写)有多种,各个方法的解释如下:

    GET 请求获取Request-URI所标识的资源

    POST 在Request-URI所标识的资源后附加新的数据

    HEAD 请求获取由Request-URI所标识的资源的响应消息报头

    PUT 请求服务器存储一个资源,并用Request-URI作为其标识

    DELETE 请求服务器删除Request-URI所标识的资源

    TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断

    CONNECT 保留将来使用

    OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

    应用举例:

    GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源,eg:GET /form.html HTTP/1.1 (CRLF)

    POST方法要求被请求服务器接受附在请求后面的数据,常用于提交表单。

    eg:POST /reg.jsp HTTP/ (CRLF)

    Accept:image/gif,image/x-xbit,... (CRLF)

    ...

    HOST:www.guet.edu.cn (CRLF)

    Content-Length:22 (CRLF)

    Connection:Keep-Alive (CRLF)

    Cache-Control:no-cache (CRLF)

    (CRLF) //该CRLF表示消息报头已经结束,在此之前为消息报头

    user=jeffrey&pwd=1234 //此行以下为提交的数据

    HEAD方法与GET方法几乎是一样的,对于HEAD请求的回应部分来说,它的HTTP头部中包含的信息与通过GET请求所得到的信息是相同的。利用这个方法,不必传输整个资源内容,就可以得到Request-URI所标识的资源的信息。该方法常用于测试超链接的有效性,是否可以访问,以及最近是否更新。

    2、请求报头后述

    3、请求正文(略)

    三、实现自己WebServer

    1、实现一个单线程的SingleThreadWebServer

    首先开启一个ServerSocket来监听9000端

    一但获得一个连接请求,回复一条信息

    public class SingleThreadWebServer implements Runnable{

    protected int serverPort = 8080;

    protected ServerSocket serverSocket = null;

    protected Thread runningThread= null;

    public SingleThreadWebServer(int port){

    this.serverPort = port;

    }

    public void run(){

    synchronized(this){

    this.runningThread = Thread.currentThread();

    }

    openServerSocket();

    System.out.println("Web服务器开启了");

    while(true){

    Socket clientSocket = null;

    try {

    clientSocket = this.serverSocket.accept();

    } catch (IOException e) {

    e.printStackTrace();

    }

    try {

    processClientRequest(clientSocket);

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    private void processClientRequest(Socket clientSocket)

    throws IOException {

    InputStream input = clientSocket.getInputStream();

    OutputStream output = clientSocket.getOutputStream();

    long time = System.currentTimeMillis();

    output.write(("HTTP/1.1 200 OK\n\n

    " +

    "木木彬的singleThreadWebServer: " +

    time +

    "").getBytes());

    output.close();

    input.close();

    System.out.println("接收到请求: " + time);

    }

    private void openServerSocket() {

    try {

    this.serverSocket = new ServerSocket(this.serverPort);

    } catch (IOException e) {

    throw new RuntimeException("Cannot open port 8080", e);

    }

    }

    public static void main(String[] args) {

    SingleThreadWebServer singleThreadWebServer = new SingleThreadWebServer(9000);

    new Thread(singleThreadWebServer).start();

    }

    }

    单线程的WebServer,接受connection连接和处理请求都在一个线程中,因此一次只能相应一个请求

    2、实现MultiThreadWebServer

    首先开启一个ServerSocket来监听9000端口

    一单获得一个连接请求,把它传递给另一个处理线程,这样才能让你的ServerSocket去接受其它的请求

    写一个响应。

    实现很简单,把单线程的processClientRequest函数改成WorkThread就好

    public class MultiThreadWebServer implements Runnable{

    protected int serverPort = 8080;

    protected ServerSocket serverSocket = null;

    protected boolean isStopped = false;

    protected Thread runningThread= null;

    public MultiThreadWebServer(int port){

    this.serverPort = port;

    }

    public void run(){

    synchronized(this){

    this.runningThread = Thread.currentThread();

    }

    openServerSocket();

    while(true){

    Socket clientSocket = null;

    try {

    clientSocket = this.serverSocket.accept();

    } catch (IOException e) {

    e.printStackTrace();

    }

    new Thread(

    new WorkThread(

    clientSocket, "mumubin's Multithreaded Server")

    ).start();

    }

    }

    private void openServerSocket() {

    try {

    this.serverSocket = new ServerSocket(this.serverPort);

    } catch (IOException e) {

    throw new RuntimeException("Cannot open port 8080", e);

    }

    }

    public static void main(String[] args) {

    MultiThreadWebServer multiThreadWebServer = new MultiThreadWebServer(9090);

    new Thread(multiThreadWebServer).start();

    }

    }

    public class WorkThread implements Runnable {

    protected Socket clientSocket = null;

    protected String serverText = null;

    public WorkThread(Socket clientSocket, String serverText) {

    this.clientSocket = clientSocket;

    this.serverText = serverText;

    }

    @Override

    public void run() {

    try {

    InputStream inputStream = clientSocket.getInputStream();

    OutputStream outputStream = clientSocket.getOutputStream();

    long time = System.currentTimeMillis();

    outputStream.write(("HTTP/1.1 200 OK\n\nWorkerThread: " +

    this.serverText + " - " +

    time +

    "").getBytes());

    inputStream.close();

    outputStream.flush();

    System.out.println("接收到请求");

    outputStream.close();

    }

    catch (Exception e)

    {

    e.printStackTrace();

    }

    }

    }

    但是呢,之前那些,都没实现HTTP最基本的GET、POST请求,

    3、实现Post、Get方法

    流程如下:

    首先开启一个ServerSocket来监听10000端口

    一单获得一个连接请求,把它传递给另一个处理线程,这样才能让你的ServerSocket去接受其它的请求

    解析请求,看它是GET还是POST,还有传递过来的参数

    根据相应的请求写一个响应。

    接下来我们先看下其实现代码

    InputStream inputStream = clientSocket.getInputStream();

    InputStream input = clientSocket.getInputStream();

    byte[] byteBuffer = new byte[1000];

    do{

    input.read(byteBuffer);

    for (byte a :byteBuffer)

    System.out.print((char)a);

    }

    while (input.read() != -1);

    Request的具体信息

    GET / HTTP/1.1

    Host: 127.0.0.1:9090

    Connection: keep-alive

    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

    User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36

    Accept-Encoding: gzip, deflate, sdch

    Accept-Language: zh-CN,zh;q=0.8

    Cookie: _ga=GA1.1.413734972.1430379491

    因此通过解析Request就可以构建doPost和doGet方法,修改后的WorkThread

    public class WorkThread implements Runnable {

    protected Socket clientSocket = null;

    protected String serverText = null;

    public WorkThread(Socket clientSocket, String serverText) {

    this.clientSocket = clientSocket;

    this.serverText = serverText;

    }

    public void doPost()

    {

    try {

    OutputStream outputStream = clientSocket.getOutputStream();

    outputStream.write(("HTTP/1.1 200 OK\n\nWorkerThread: " +

    "this is by post").getBytes());

    outputStream.flush();

    outputStream.close();

    }

    catch (Exception e)

    {

    e.printStackTrace();

    }

    }

    public void doGet()

    {

    try {

    OutputStream outputStream = clientSocket.getOutputStream();

    outputStream.write(("HTTP/1.1 200 OK\n\nWorkerThread: " +

    "this is by get").getBytes());

    outputStream.flush();

    outputStream.close();

    }

    catch (Exception e)

    {

    e.printStackTrace();

    }

    }

    @Override

    public void run() {

    try {

    InputStream input = clientSocket.getInputStream();

    byte[] byteBuffer = new byte[1000];

    input.read(byteBuffer);

    for (byte a :byteBuffer)

    System.out.print((char)a);

    if(byteBuffer[0] == 'G' && byteBuffer[1] == 'E' && byteBuffer[2] == 'T')

    {

    doGet();

    }

    else {

    doPost();

    }

    input.close();

    System.out.println("接收到请求");

    }

    catch (Exception e)

    {

    e.printStackTrace();

    }

    }

    }

    4、基于JDK实现简单的Web服务器

    其实JDK中已经有了对HTTPServer的支持,我们来简单应用下

    public class APITest {

    public static void main(String[] args) throws Exception {

    HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);

    server.createContext("/test", new MyHandler());

    server.setExecutor(null); // creates a default executor

    server.start();

    }

    static class MyHandler implements HttpHandler {

    @Override

    public void handle(HttpExchange t) throws IOException {

    String response = "This is the APITest";

    t.sendResponseHeaders(200, response.length());

    OutputStream os = t.getResponseBody();

    os.write(response.getBytes());

    os.close();

    }

    }

    }

    展开全文
  • 前言关键词:NodeJs、express、http服务器一、搭建一个http的服务器1....弱联网技术一般需要访问服务器,通常采用http服务器 ,也就是web服务器+数据库。用什么技术?主流的服务器开发语言,都有ht...
  • 在做WEB服务器的时候,就一直在抱怨,我们的WEB服务器怎么就是那么慢,TPS总是上不去。一般谈及高性能的网络服务,总是不由自主的想到C语言去开发服务应用,以确保性能。 难道Java语言的性能,就真的是远远...
  • Web是一种分布式应用架构,旨在共享分布在网络上的各个Web服务器中所有互相连接的信息。Web采用客户/服务器通信模式,各户与服务器之间http协议通信。Web使用HTML来连接网络上的信息。用户可以通过浏览器获取Web...
  • 单页Web应用

    2018-05-18 03:18:52
    Web应用程序首先是“应用程序”,和标准的程序语言,如C、C++等编写出来的程序没有什么本质上的不同。然而Web应用程序又有自己独特的地方,就是它是基于Web的,而不是采用传统方法运行的。换句话说,它是典型的...
  • 在做WEB服务器的时候,就一直在抱怨,我们的WEB服务器怎么就是那么慢,TPS总是上不去。一般谈及高性能的网络服务,总是不由自主的想到C语言去开发服务应用,以确保性能。难道Java语言的性能,就真的是远远不如C吗...
  • 单页Web应用:

    2019-09-27 19:08:16
    Web应用程序首先是“应用程序”,和标准的程序语言,如C、C++等编写出来的程序没有什么本质上的不同。然而Web应用程序又有自己独特的地方,就是它是基于Web的,而不是采用传统方法运行的。换句话说,它是典型的...
  • 什么 vue

    2019-05-28 14:28:00
    Web 项目中,最核心的是两个部分,一个是后端,在服务器上运行,可以各种语言编写,例如 C# Java 等,有很多成熟的框架,如 ASP.NET Core; 另一个就是前端,主要是 HTML CSS 和 JavaScript,用户通过浏览器从...
  • Web程序访问流程

    2020-08-18 08:57:53
    Web程序访问流程 Web应用程序:Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很...Web应用程序首先是“应用程序”,和标准的程序语言,如C、C++等编写出来的程序没有什么本质上的不同。然...
  • 弱联网技术一般需要访问服务器,通常采用http服务器 ,也就是web服务器+数据库。 用什么技术? 主流的服务器开发语言,都有http的技术,成熟的应用。Java:Tomcat,Python:tornado,C#:IIS; Node.j
  • CTF-web 第十部分 webshell基础与免杀

    千次阅读 2018-11-15 15:24:37
     webshell,顾名思义:web指的是在web服务器上,而shell是脚本语言编写的脚本程序,webshell就是就是web的一个管理工具,可以对web服务器进行操作的权限,也叫webadmin。webshell一般是被网站管理员用于网站管理...
  • 1、web应用 1.1 web应用程序 ...Web应用程序首先是应用程序,和标准的程序语言,如Java,PHP,Python等编写出来的程序没有什么本质上的不同。 这里,基于socket实现一个最简单的web应用程序! import socket s
  • python_web应用雏型

    2018-06-21 20:02:09
    python_web应用雏型 Web应用程序顾名思义,就是一种可以通过Web访问的应用...Web应用程序首先是“应用程序”,和标准的程序语言,如java,python等编写出来的程序没有什么本质上的不同。 而在网络编程的意义下,...
  • 第1节:最简单的web应用程序 Web应用程序指供浏览器访问的程序,通常也简称为Web应用。应用程序有两种模式C/S、...Web应用程序首先是应用程序,和标准的程序语言,如Java,PHP,Python等编写出来的程序没有什么本质...
  • 实验问题回答 1.什么是表单 表单在网页中主要负责数据采集功能 一个表单有三个基本组成部分: 表单标签 ...表单按钮:包括提交按钮、复位按钮和一般按钮.表单按钮可以用于将数据...2.浏览器可以解析运行什么语言 超文...
  • 增强了 <em>WEB</em> 与服务端的交互的安全性、起来也更加简单,但随着各个公司WEB业务的复杂性,缺点也逐渐暴露出来: <p><strong>1、技术单一,难以维护</strong></p> <p><img alt="" ...
  • 实验问题回答 1.什么是表单 表单在网页中主要负责数据采集功能 一个表单有三个基本组成部分: 表单标签 ...表单按钮:包括提交按钮、复位按钮和一般按钮....2.浏览器可以解析运行什么语言 超文本...
  • Java编写的服务器端程序,其主要功能在于交互式地浏览和 修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个 Servlet接口的类,一般情况下,人们将Servlet...
  • Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。 狭义的Servlet是指...
  • Java编写的服务器端程序,其主要功能在于交互式地浏览和 修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个 Servlet接口的类,一般情况下,人们将Servlet...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 225
精华内容 90
关键字:

web服务器一般用什么语言