服务器端编程

我们的整个讨论都忽略了服务器端编程的问题。如果向服务器发出一个请求,会发生什么事情?大多数时候 的请求都是很简单的一个“把这个文件发给我”。浏览器随后会按适当的形式解释这个文件:作为HTML 页、 一幅图、一个Java 程序片、一个脚本程序等等。向服务器发出的较复杂的请求通常涉及到对一个数据库进行 操作(事务处理)。其中最常见的就是发出一个数据库检索命令,得到结果后,服务器会把它格式化成HTML 页,并作为结果传回来(当然,假如客户通过 Java 或者某种脚本语言具有了更高的智能,那么原始数据就能 在客户端发送和格式化;这样做速度可以更快,也能减轻服务器的负担)。另外,有时需要在数据库中注册 自己的名字(比如加入一个组时),或者向服务器发出一份订单,这就涉及到对那个数据库的修改。这类服 务器请求必须通过服务器端的一些代码进行,我们称其为“服务器端的编程”。在传统意义上,服务器端编 程是用 Perl 和 CGI脚本进行的,但更复杂的系统已经出现。其中包括基于Java 的 Web服务器,它允许我们 用Java进行所有服务器端编程,写出的程序就叫作“小服务程序”(Servlet)。

 1 package Com.TomTest;
 2
 3
 4 interface  Computerable {
 5        public  double 求面积();
 6     }
 7     class 梯形 implements Computerable {
 8         double a,b,h;
 9     梯形(double a,double b,double h) {
10        this.a=a;
11     this.b=b;
12     this.h=h;
13         }
14     public double 求面积(){
15        return((1/2.0)*(a+b)*h);
16         }
17     }
18     class 圆形 implements Computerable{
19        double r;
20        圆形(double r) {
21         this.r=r;
22        }
23        public double 求面积(){
24         return(3.14*r*r);
25        }
26     }
27     class 堆{
28     Computerable 底;
29        double 高;
30        堆(Computerable 底,double 高) {
31        this.底=底;
32           this.高=高;
33        }
34        void 换底(Computerable 底) {
35         this.底=底;
36        }
37        public double 求体积(){
38       return (底.求面积()*高)/3.0;
39        }
40     }
41     public class TomTest_33 {
42       public static void main(String args[]){
43         堆 zui;
44           Computerable bottom;
45           bottom=new 梯形(2.0,7.0,10.7);
46     System.out.println("梯形的面积"+bottom.求面积());
47           zui=new  堆(bottom,30);
48           System.out.println("梯形底的堆的体积"+zui.求体积());
49           bottom=new 圆形(10);
50       System.out.println("半径是10的圆的面积"+bottom.求面积());
51       zui.换底(bottom);
52           System.out.println("圆形底的堆的体积"+zui.求体积());
53        }
54     }

原文地址:https://www.cnblogs.com/borter/p/9438742.html

时间: 2024-10-08 16:28:38

服务器端编程的相关文章

《Linux多线程服务器端编程》读书笔记第3章

<Linux多线程服务器端编程>第3章主要讲的是多线程服务器的适用场合与常用的编程模型. 1.进程和线程 一个进程是"内存中正在运行的程序“.每个进程都有自己独立的地址空间(address space).将"进程"比喻为"人",每个人都有自己的记忆(memory),人与人通过谈话(消息传递)来交流,谈话既可以是面谈(同一台服务器),也可以在电话里谈(不同的服务器,有网络通信).面谈和电话谈的区别在于,面谈可以立即知道对方是否死了(crash,S

服务器端编程示例

int fd_set_nonblock(int fd) { int rv; rv = fcntl(fd, F_GETFL, 0); if(rv < 0){ printf("fcntl error\n"); return -1; } rv = fcntl(fd, F_SETFL, rv | O_NONBLOCK); if(rv < 0){ printf("fcntl error\n"); return -1; } return 0; } int init_

服务器端编程心得(三)—— 一个服务器程序的架构介绍

本文将介绍我曾经做过的一个项目的服务器架构和服务器编程的一些重要细节. 一.程序运行环境 操作系统:centos 7.0 编译器:gcc/g++ 4.8.3     cmake 2.8.11 mysql数据库:5.5.47 项目代码管理工具:VS2013 二.程序结构 该程序总共有17个线程,其中分为9个数据库工作线程D和一个日志线程L,6个普通工作线程W,一个主线程M.(以下会用这些字母来代指这些线程) (一).数据库工作线程的用途 9个数据库工作线程在线程启动之初,与mysql建立连接,也就

使用C++11网络库Handy进行服务器端编程

Handy是一个简洁优雅的C++11网络库,适用于linux与Mac平台.十行代码即可完成一个完整的网络服务器. 下面是echo服务器的代码: #include <handy/handy.h> using namespace std; using namespace handy; int main(int argc, const char* argv[]) { EventBase bases; //事件分发器 Signal::signal(SIGINT, [&]{ bases.exit

服务器端编程心得(六)—— 关于网络编程的一些实用技巧和细节

这些年,接触了形形色色的项目,写了不少网络编程的代码,从windows到linux,跌进了不少坑,由于网络编程涉及很多细节和技巧,一直想写篇文章来总结下这方面的心得与经验,希望对来者有一点帮助,那就善莫大焉了. 本文涉及的平台包括windows和linux,下面开始啦. 一.非阻塞的的connect()函数如何编写 我们知道用connect()函数默认是阻塞的,直到三次握手建立之后,或者实在连不上超时返回,期间程序执行流一直阻塞在那里.那么如何利用connect()函数编写非阻塞的连接代码呢?

java服务器端编程

由于要做手机端安卓程序,所以使用java来开发.后来又看了javaweb,觉得java还是很不错的,功能很强大,可以做很多事,最重要的是资源非常丰富,有很多开源的库框架之类. 最近用java做一个服务器端程序,于是就记录下吧. 实际上是一个控制台程序,功能并复杂,主要是开一个socket端口,然后有传感器设备连接过来,连上以后就不停的接受和发送数据,收的数据以后做一下解析,再将数据保存到数据库中. 由于要操作数据库,所以就直接把web端用的东西直接拿过来,使用spring+hibernate,这

Servlet服务器端编程之再体验

1.什么是Servlet?    * 服务器端Java程序,servlet需要交给服务器来运行.    * 与javax.servlet.Servlet接口有关的java程序    * sun公司提供一套servlet接口(API)具体实现的是靠web服务器(比如Tomcat.webLogic.JBoss等)    2.如果使用servlet?[必须]    * 创建web项目    * 创建一个类,并实现Servlet接口    * 交给服务器运行 /WEB-INF/web.xml      

游戏服务器端编程必须要注意

1.内存管理(游戏服务器24*7运行的,根本容不得内存泄漏).2.对象池,线程池(提高服务器性能).3.异常捕获,堆栈跟踪.(不要指望在VC的工程中一步一步debug来测试服务器程序)4.数据结构.(栈,队列等都必须自己实现,这是游戏编程的必须,否则无法做深入的跟踪和调试,以及无法捕获跟踪栈和队列中发生的错误)5.高效socket,完成端口的编程. 原文地址:https://www.cnblogs.com/HansZimmer/p/10375221.html

c++服务器端编程

c++的优势在于性能,适合在服务器端完成计算密集型任务.比如CAE,计算机辅助的力学分析,甚至电路图模拟.对于继承电路,其复杂之处在于设计,各种布线,逻辑器件选择,电路逻辑原理等,而电路版制造技术就比较单一. 当然c++也要高效的处理http请求,值处理http请求时比java更加细力度. 参考博文:https://i-beta.cnblogs.com/posts/edit;postId=12199027 原文地址:https://www.cnblogs.com/Robin008/p/12199