我用c#在web服务器上取数据保存道sql数据库。如果数据库中没有这条数据就INSERT有就更新Updata。
drop procedure usp_NewData
go
create procedure usp_NewData
@FieldA 类型A,
@FieldB 类型B,
@FieldC 类型C,
@FieldD,类型D--唯一条件
as
begin
if exists (select 1 from tableA where FieldD=@FieldD)
begin
update tableA set where FieldD=@FieldD
end
else
begin
insert into tableA() values()
end
end
return
go
--------------------------------------------------数据存储过程----------------------
类方法不用修改,如
private int NewData(Entity obj)
{
String sql="usp_NewData @FieldA=@a,@FieldB=@b"
SqlCommand cmd
cmdParametersAdd()
cmdExec
}
51各种形状和尺寸的Web服务器
Web服务器会对HTTP请求进行处理并提供响应。术语“Web服务器”可以用来表示Web服务器的软件,也可以用来表示提供Web页面的特定设备或计算机。
Web服务器有着不同的风格、形状和尺寸。有普通的10行Perl脚本的Web服务器、50MB的安全商用引擎以及极小的卡上服务器。但不管功能有何差异,所有的 Web服务器都能够接收请求资源的 HTTP请求,将内容回送给客户端(参见图1-5)。
511Web服务器的实现
Web服务器实现了HTTP和相关的TCP连接处理。负责管理Web服务器提供的资源,以及对Web服务器的配置、控制及扩展方面的管理。
Web服务器逻辑实现了HTTP 协议、管理着Web资源,并负责提供Web服务器的管理功能。Web服务器逻辑和操作系统共同负责管理TCP连接。底层操作系统负责管理底层计算机系统的硬件细节,并提供了TCP/IP网络支持、负责装载Web资源的文件系统以及控制当前计算活动的进程管理功能。
53实际的Web服务器会做些什么
例5-1显示的 Perl服务器是一个Web服务器的小例子。最先进的商用Web服务器要比它复杂得多,但它们确实执行了几项同样的任务,如图5-3所示。
(1)建立连接一—接受一个客户端连接,或者如果不希望与这个客户端建立连接,就
将其关闭。
(2)接收请求——从网络中读取一条HTTP请求报文。(3)处理请求——对请求报文进行解释,并采取行动。(4)访问资源-———访问报文中指定的资源。
(5)构建响应——创建带有正确首部的 HTTP响应报文。(6)发送响应——将响应回送给客户端。
(7)记录事务处理过程—-将与已完成事务有关的内容记录在一个日志文件中。
54第一步——接受客户端连接
如果客户端已经打开了一条到服务器的持久连接,可以使用那条连接来发送它的请求。否则,客户端需要打开一条新的到服务器的连接(回顾第4章,复习一下HTTP的连接管理技术)。
541处理新连接
客户端请求一条到Web服务器的TCP连接时,Web服务器会建立连接,判断连接的另一端是哪个客户端,从TCP连接中将IP地址解析出来。'一旦新连接建立起来
并被接受,服务器就会将新连接添加到其现存Web服务器连接列表中,做好监视连接上数据传输的准备。
Web服务器可以随意拒绝或立即关闭任意一条连接。有些Web服务器会因为客户端IP地址或主机名是未认证的,或者因为它是已知的恶意客户端而关闭连接。Web服务器也可以使用其他识别技术。
542客户端主机名识别
可以用“反向 DNS”对大部分Web服务器进行配置,以便将客户端IP地址转换成客户端主机名。Web服务器可以将客户端主机名用于详细的访问控制和日志记录。但要注意的是,主机名查找可能会花费很长时间,这样会降低Web事务处理的速度。很多大容量Web服务器要么会禁止主机名解析,要么只允许对特定内容进行解析。
可以用配置指令HostnameLookups启用Apache的主机查找功能。比如,例5-2中的Apache配置指令就只打开了HTML和CGI资源的主机名解析功能。
例5-2配置Apache,为 HTML和CGI资源查找主机名
HostnameLookups off
<Files ~" - 《html |htmlcgi)$">
HostnameLookups on
</Files>
55第二步—接收请求报文
连接上有数据到达时,Web服务器会从网络连接中读取数据,并将请求报文中的内容解析出来(参见图5-5)。
解析请求报文时,Web服务器会:
·解析请求行,查找请求方法、指定的资源标识符(URI)以及版本号,3各项之
间由一个空格分隔,并以一个回车换行(CRLF)序列作为行的结束,“
·读取以CRLF结尾的报文首部;
检测到以CRLF结尾的、标识首部结束的空行(如果有的话)﹔
·如果有的话(长度由content-Length首部指定),读取请求主体。
解析请求报文时,Web服务器会不定期地从网络上接收输入数据。网络连接可能随时都会出现延迟。Web服务器需要从网络中读取数据,将部分报文数据临时存储在内存中,直到收到足以进行解析的数据并理解其意义为止。
551 报文的内部表示法
有些Web服务器还会用便于进行报文操作的内部数据结构来存储请求报文。比如,数据结构中可能包含有指向请求报文中各个片段的指针及其长度,这样就可以将这些首部存放在一个快速查询表中,以便快速访问特定首部的具体值了(参见图5-6)。
552连接的输入/输出处理结构
高性能的 Web服务器能够同时支持数千条连接。这些连接使得服务器可以与世界各地的客户端进行通信,每个客户端都向服务器打开了一条或多条连接。某些连接可能在快速地向Web服务器发送请求,而其他一些连接则可能在慢慢发送,或者不经常发送请求,还有一些可能是空闲的,安静地等待着将来可能出现的动作。
因为请求可能会在任意时刻到达,所以Web服务器会不停地观察有无新的Web请求。不同的Web服务器结构会以不同的方式为请求服务,如图5-7所示。
·单线程Web服务器(参见图5-7a)
单线程的Web服务器一次只处理一个请求,直到其完成为止。一个事务处理结束之后,才去处理下一条连接。这种结构易于实现,但在处理过程中,所有其他连接都会被忽略。这样会造成严重的性能问题,只适用于低负荷的服务器,以及type-o-serve这样的诊断工具。
·多进程及多线程Web服务器(参见图5-7b)
多进程和多线程Web服务器用多个进程,或更高效的线程同时对请求进行处理。3可以根据需要创建,或者预先创建一些线程/进程。°有些服务器会为每条连接分配一个线程/进程,但当服务器同时要处理成百、上千,甚至数以万计的连接时,需要的进程或线程数量可能会消耗太多的内存或系统资源。因此,很多多线程Web服务器都会对线程/进程的最大数量进行限制。
·复用I/O的服务器(参见图5-7c)
为了支持大量的连接,很多Web服务器都采用了复用结构。在复用结构中,要同时监视所有连接上的活动。当连接的状态发生变化时(比如,有数据可用,或出现错误时),就对那条连接进行少量的处理,处理结束之后,将连接返回到开放连接列表中,等待下一次状态变化。只有在有事情可做时才会对连接进行处理,在空闲连接上等待的时候并不会绑定线程和进程。
·复用的多线程Web服务器(参见图5-7d)
有些系统会将多线程和复用功能结合在一起,以利用计算机平台上的多个CPU多个线程(通常是一个物理处理器)中的每一个都在观察打开的连接(或打开的连接中的一个子集),并对每条连接执行少量的任务。
56第三步———处理请求
一旦Web服务器收到了请求,就可以根据方法、资源、首部和可选的主体部分来对请求进行处理了。
有些方法(比如POST)要求请求报文中必须带有实体主体部分的数据。其他一些方法(比如OPTIONS)允许有请求的主体部分,也允许没有。少数方法(比如GET)禁止在请求报文中包含实体的主体数据。
这里我们并不对请求的具体处理方式进行讨论,因为本书其余大多数章节都在讨论这个问题。
57第四步——-对资源的映射及访问
Web 服务器是资源服务器。它们负责发送预先创建好的内容,比如HTML页面或JPEG ,以及运行在服务器上的资源生成程序所产生的动态内容。
571 docroot
Web服务器支持各种不同类型的资源映射,但最简单的资源映射形式就是用请求URI作为名字来访问Web服务器文件系统中的文件。通常,Web服务器的文件系统中会有一个特殊的文件夹专门用于存放Web内容。这个文件夹被称为文档的根目录(document root,或docroot)。Web服务器从请求报文中获取URI,并将其附加在文档根目录的后面。
在图5-8中,有一条对/specials/saw-bladegif 的请求到达。这个例子中Web服务器的文档根目录为/us/local/httpd/files。Web服务器会返回文件/usr/local/httpd/files/specials/saw-bladegif。
在配置文件httpdconf中添加一个 DocumentRoot行就可以为Apache Web服务器设置文档的根目录了:
DocumentRoot /usr/ local/httpd/files
服务器要注意,不能让相对URL退到docroot之外,将文件系统的其余部分暴露出来。比如,大多数成熟的Web服务器都不允许这样的URI看到Joe的五金商店文档根目录上一级的文件:
http://wwwjoes-hardwarecom/
583重定向
Web服务器有时会返回重定向响应而不是成功的报文。Web服务器可以将浏览器重定向到其他地方来执行请求。重定向响应由返回码3XX说明。Location响应首部包含了内容的新地址或优选地址的URI。重定向可用于下列情况。
·永久删除的资源
资源可能已经被移动到了新的位置,或者被重新命名,有了一个新的URL。Web服务器可以告诉客户端资源已经被重命名了,这样客户端就可以在从新地址获取资源之前,更新书签之类的信息了。状态码301 Moved Permanently就用于此类重定向。·临时删除的资源
如果资源被临时移走或重命名了,服务器可能希望将客户端重定向到新的位置上去。但由于重命名是临时的,所以服务器希望客户端将来还可以回头去使用老的URL,不要对书签进行更新。状态码303 See Other以及状态码307 TemporaryRedirect就用于此类重定向。
通常情况下我们说的web服务器是指前端提供web服务的服务器,如IIS,tomcat等;而应用服务器是提供业务应用的服务器,数据库服务器是存储数据的服务器,把应用和数据分开,体现了业务和数据分离的思想,这样有利于数据的安全和业务的均衡。在实际运行时,应用服务器中的业务访问数据库服务器中的数据并对返回的结果进行处理,而web服务器提供web服务,并对页面进行展现
Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)进行信息交流,这就是人们常把它们称为HTTPD服务器的原因。
Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。
Web服务器的内容
(1)应用层使用HTTP协议。
(2)HTML文档格式。
(3)浏览器统一资源定位器(URL)。
Web服务器配置要求
(1)了解DNS主机名和IP地址。
如果此WEB服务器在Internet上,需向ISP申请和注册此服务器的DNS主机名和IP地址。如果此服务器只在企业网内使用,则在内部的DNS服务器上注册。
(2)打开服务器文档,选择“端口”-“Internet端口”,启用“TCP/IP端口”。
(3)选择“Internet协议”,完成以下选项后,保存文档。
绑定主机名:
A选择“是”则您可在“主机名”项中输入主机别名,WEB用户可用此别名替代Domino服务器名访问WEB服务器。
B选择“否”(缺省)则不允许使用别名。
“DNS查询”:
选择“是”则Domino服务器查询发送请求的WEB客户机的DNS名。
Domino日志文件和数据库将包含WEB客户机的DNS主机名。
选择“否”(缺省)则不查询,Domino日志文件和数据库将只包含WEB客户机的IP地址。
注意:
选择“否”将提高Domino服务器性能,因为服务器不使用资源执行DNS查询。
“允许HTTP客户浏览数据库”:选择“是”则允许WEB用户在URL中使用OpenServer命令来显示服务器上数据库列表。
选择“否”(缺省)则不允许。但即使WEB用户不能看到服务器上数据库列表,他们仍能打开有权限访问的单个数据库。
(4)启动HTTP任务。在服务器控制台上,输入:loaphttp
IIS(InternetInformation Server,互联网信息服务)是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。本次上机大家实践IIS50的配置和管理。
上机学习目标:
1 了解并掌握Windows 2000/NT 服务器上IIS 的安装与测试
2 了解并掌握web服务器的配置及应用,其中重点掌握主目录、虚拟目录的设置与应用
3 了解并掌握FTP服务器的配置和使用
4 了解并掌握SMTP服务器的配置和使用
上机内容及操作步骤:
1在自己的电脑上安装IIS并测试。
进入“控制面板”,依次选“添加/删除程序→添加/删除Windows组件”,将“Internet信息服务(IIS)”前的小钩去掉(如有),重新勾选中后按提示操作即可完成IIS组件的添加。(在安装过程中要插入WIN2000或WINXP安装盘。)
测试:安装完毕后,在浏览器地址栏中输入:http://localhost(或http://服务器名,或http://127001,或http://本机IP),如果连接成功就会出现localstartasp的页面。
2IIS的配置
当IIS添加成功之后,再进入“开始→程序→管理工具→Internet服务管理器”以打开IIS管理器,对于有“已停止”字样的服务,均在其上单击右键,选“启动”来开启。
(1)IIS之WEB服务器的配置
方法如下:
在“Internet信息服务”管理窗口中右击“默认WEB站点”,在弹出的菜单中选择“属性”选项,进入属性设置对话框。
① 设置“WEB站点”,这里可以设置站点服务器的IP地址和访问端口。在“IP地址”栏中选择目前能够使用的IP地址;“TCP”端口默认为80,当然为了保密,也可以设置特殊的端口。
② 设置“主目录”, “本地路径”默认为:c:\Inetpub\wwwroot,当然可以输入(或用“浏览”按钮选择)你自己网页所在的目录作为主目录。
③ 设置“文档”选项,“启用默认文档”选中后,当在浏览器中输入域名或IP时,系统自动在“主目录”中按上到下的顺序寻找列表中指定的文件名。
其他的设置均可按默认设置。
创建虚拟目录:
若要从主目录以外的目录发布信息,则就要创建虚拟目录了,虚拟目录是指物理上未包含在主目录中的目录,但浏览器却认为该目录包含在主目录中。
创建的方法:比如你的主目录在“c:\Inetpub\wwwroot”下,而你的网页文件在“E:\All”中,你就可以创建一个别名为test的虚拟目录,就可以这样来创建:在“默认Web站点”上单击右键,选“新建→虚拟目录”,依次在“别名”处输入“test”,在“目录”处输入“E:\All”后再按提示操作即可添加成功。
创建完了你就可以输入“localhost/test”就可以访问了。
进行下列操作:
启动一个文本编辑器,编写下列代码:
您访问本页的时间是<%=time()%>!
将其保存到C:\Inetpub\wwwroot目录下,文件可命名为1asp。
在浏览器地址栏中输入:http://localhost/1asp ,然后按回车,观察运行情况。
将1asp文件复制刚才创建的虚拟目录中(假如别名为:test)。在浏览器的地址栏中输入:http://localhost/test/1asp ,按回车,注意观察运行情况。
(2)IIS之ftp服务器的配置
第一个FTP站点(即“默认FTP站点”)的设置方法请参照前文Web服务器中相关操作执行。需要注意的是,如果你要用一个IP地址对应多个不同的FTP服务器,则只能用使用不同的端口号的方法来实现。
对于已建立好的FTP服务器,在浏览器中访问将使用,ftp://IP地址,如“ftp://101061121”。
(3)<>IIS之SMTP服务器的配置
建立IIS下的SMTP服务器的方法非常简单,只需在IIS管理器中让“默认SMTP虚拟服务器”处于已启动状态就行了;此外一般不用再做其他任何设置。
如果你想要用自己的SMTP服务器发信,只需将你E-mail客户端软件设置中“发送邮件服务器(SMTP)”项中填入“localhost”,则不管你的IP地址如何变化,它都能正常工作。提示:对于IIS的设置,可以在浏览器的地址栏中输入:http://localhost/iishelp,查看IIS帮助文档。
把src保存到服务器数据库
走数据库直接访问表查询存放images字段就好了
后台:
//假设$res是你已经从数据库取出的值(已经遍历过了)
$dir = '根目录/public/images/';
echo '<img src='$dir$res'>';
在前台这样显示<img src='根目录/public/images/png'>
0条评论