直接远程到服务器上写代码有什么好处?

直接远程到服务器上写代码有什么好处?,第1张

本系列教程将和您一起探讨如何利用Java语言一步一步实现自己的web服务器

1需求描述

第1讲我们要实现的效果是:当我们在浏览器的地址栏输入localhost:8080的时候,我们会看到"hello,this is my web server!"。如下:

2实现

做任何事情都不能太急,对于编程来说也不例外。以上的案例虽然简单,但却是我们编写web服务器的非常关键的一步,麻雀虽小,五脏俱全。

21基础知识

首先我们来分析一下,为了实现上面的功能,我们需要具备哪些基础知识。

1)CS架构介绍

CS架构是一种非常常见的软件架构,主要由两部分组成:客户端和服务器端即C端和S端。

图2-1 CS架构

其一般的交互流程为:客户端发送一条请求给服务器,服务器在收到请求后,解析处理该请求,并将结果以响应的方式返回给客户端。

那么在我们要要实现的需求中,客户端特定为浏览器,请求特指>

一般情况CS架构的软件,我们需要分别开发C端和S端的程序,但是由于本题客户端就是我们日常使用的浏览器,所以我们不需要开发C端程序,所以仅需要开发服务器端程序。

这是我们实现需求需要了解的第一个基础知识。

2)>

有了上面的基础知识后,接下来我们需要具体的了解,这个>

下面我们来看一个具体的请求和响应报文的格式:

>

GET / >

>

>

如想了解更多,算法与编程之美公众号的《BS架构基础->

3)Socket编程

有了以上的基础知识之后,我们还需要了解Java在实现CS架构时使用的具体技术,那就是socket编程。socket编程的入门其实并不难,下面为大家做简要介绍:

- socket编程可以分为两部分,一部分为服务器端的编程,另外一部分为客户端。对于服务器端我们使用ServerSocket类,客户端使用Socket类。

-一旦建立连接后,获取了客户端的socket对象,接下来就可以通过socket对象的InputStream来读取请求,而OutputStream来写响应。

只需要了解上面的两点即可,如想了解更多,算法与编程之美公众号的《Socket编程基础》有简单易懂的介绍。

22实现

有了上面的3个基础知识点后,接下来我们可以开始编程实现了。

主要的业务流程为:

1服务器端利用ServerSocket开启8080端口开始监听;

2当有客户端发起的>

3返回>

具体的代码实现如下:

public class WebServer {private ServerSocket serverSocket;public WebServer(){ try {//开启8080端口监听 serverSocket = newServerSocket(8080);} catch (IOException e){ eprintStackTrace();}}public void run(){ try { Socket socket =serverSocketaccept();//读取>

3总结

我们已经按照需求实现了相关功能,但是细心的你可能会发现以下的问题:

1)浏览器刷新一次,服务器端程序就终止了;

2)这个服务器能不能作为静态网页html服务器呢?

3)。。。

如想了解更多,欢迎关注“算法与编程之美”公众号将持续为您带来更多精彩内容。

    将HTML控件用作Server控件

    可以将任何HTML元素转换为服务器控件 只要为该元素添加runat= server 属性即可 如将在第 章看到的那样 当页面提交到服务器的时候 可以使用代码动态地处理任何服务器控件(由HTML元素转换而来的或ASP NET的) 例如 在向页面添加了一个ASP NET TextBox控件之后 可以使用在服务器上运行的代码设置该控件文本区显示的值 然而 一旦为某个元素添加了runat= server 属性(并为其指定一个惟一的ID) 例如一个div元素 接下来就可以使用运行在服务器上的代码动态地指定这个div要显示什么 以及应将它放置在什么位置

    另外 因为可以向任意HTML元素添加runat= server 属性 所以如果喜欢 可以使用Input type= text 控件代替ASP NET的TextBox控件──其他HTML元素只要在ASP NET工具箱中有对应的控件都可以这样使用

    应该使用HTML控件还是ASP NET服务器控件

    这个问题实际上只与页面上简单的元素有关 例如文本框 按钮和表格等 复杂的服务器控件 例如Calendar控件 用户加速站点的开发速度 因此这种情况下不用考虑具体使用哪种控件 在选择向页面添加哪种类型的控件时 绝大多数开发人员的方法是在页面上主要使用ASP NET的Standard Server Control 而在布局时使用静态HTML元素

    虽然在大多数情况下都可以这样做(而且确实在有些情况下需要使用服务器控件才能获得HTML控件无法提供的功能) 但也有例外的情况 例如 向HTML div和table元素添加runat= server 是作者通常使用的一种技术 如果我知道我希望根据用户的输入显示或隐藏页面的某部分 就可以把需要在服务器上处理的元素转换为服务器控件 然后动态地控制它们的可视性 虽然使用标准的服务器控件也很容易创建具有相同功能的站点 但我所在的工作小组只使用简单的HTML元素进行布局 因此有时将某些HTML元素转换为服务器控件比重写代码使用ASP NET内建的服务器控件要容易一些 在这个问题上没有真正的对与错 所以应该根据自己的判断进行选择 但应该注意到 可能会遇到使用其他方法编写的代码 这些方法仍然是有效可行的

ASP NET 入门教程完整版

lishixinzhi/Article/program/net/201311/14697

一、增加系统用户 二、设置idea 1、file 》 settings》File and Code Templates 2、中间的,选择 includes ,选中File Header。 3、右侧会出现 Created by ${USER} on ${DATE} 4、把这个 ${USER} 直接替换掉 Created by myname on ${DATE}

>

这种错误通常与上游服务器的故障、网络故障或代理服务器配置错误有关。可能的解决方案包括:

检查上游服务器是否正常工作,可以通过直接访问上游服务器的IP地址或域名来测试。

检查代理服务器的配置是否正确,包括代理服务器和上游服务器之间的网络连接、代理服务器的缓存设置等。

联系网络管理员或服务提供商以获取更多支持。

如果是网站访问出现问题,可以尝试清除浏览器缓存或尝试使用其他浏览器或设备来访问。

请注意,502错误通常是由服务器端引起的,因此无法通过客户端代码来解决。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13108933.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存