web服务器类型介绍?

web服务器类型介绍?,第1张

web应用的运营都是基于web服务器的存在才能实现的。今天我们就一起来了解一下,目前比较常见的一些web服务器都有哪些类型。



1、Tomcat服务器

目前非常流行的Tomcat服务器是Apache-Jarkarta开源项目中的一个子项目,是一个小型、轻量级的支持JSP和Servlet技术的Web服务器,也是初学者学习开发JSP应用的选。

2、Resin服务器

Resin是Caucho公司的产品,是一个非常流行的支持Servlet和JSP的服务器,速度非常快。Resin本身包含了一个支持HTML的Web服务器,这使它不仅可以显示动态内容,而且显示静态内容的能力也毫不逊色,因此许多网站都是使用Resin服务器构建

3、JBoss服务器

JBoss是一个种遵从JavaEE规范的、开放源代码的、纯Java的EJB服务器,对于J2EE有很好的支持。JBoss采用JMLAPI实现软件模块的集成与管理,其核心服务又是提供EJB服务器,不包含Servlet和JSP的Web容器,不过它可以和Tomcat完美结合

4、WebSphere服务器

WebSphere是IBM公司的产品,可进一步细分为WebSpherePerformancePack、CacheManager和WebSphereApplicationServer等系列,其中WebSphereApplicationServer是基于Java的应用环境,可以运行于SunSolaris、WindowsNT等多种 *** 作系统平台,用于建立、部署和管理Internet和IntranetWeb应用程序。

5、WebLogic服务器

WebLogic是BEA公司的产品(现在已经被Oracle收购),可进一步细分为WebLogicServer、WebLogicEnterprise和WebLogicPortal等系列,其中WebLogicServer的功能特别强大。WebLogic支持企业级的、多层次的和完全分布式的Web应用,并且服务器的配置简单、界面友好。IT培训认为对于那些正在寻求能够提供Java平台所拥有的一切应用服务器的用户来说,WebLogic是一个十分理想的选择。

Java Web 服务器的消息推送有以下几种方案:
1 轮询:前端使用ajax不停的发起请求获取想要的数据(最简单也是最容易耗尽服务器资源)。
2 长连接:>我原来写过一个很简单的,可以指定你存放网页的文件夹,可以指定允许访问的IP,给你源码看看吧。public class WebServer {
static Button btReloadIP=new Button("更新合法IP列表");
static Button btAllow=new Button("允许此IP");
static Button btRepel=new Button("拒绝此IP");
static JTextField tfNewIP=new JTextField(20);
static JPanel pane=new JPanel();
static JTextField tfState=new JTextField(25);
static TextField tfURL=new TextField("G:\\webServer2\\",28);
static TextField tfPort=new TextField("10288",3);
static Button btStart=new Button("启动服务器");
static Button btStop=new Button("停止服务器");
private static int IPnum=0;
public static boolean IPadmin=false;
static boolean click=false;
private static String url;
private static String[] checkIP=new String[255];
private static Thread serverThread=null;
private static Socket connectionSocket=null;
private static ServerSocket listenSocket=null;
public WebServer() throws IOException{
serverThread=new Thread(new Runnable(){
public void run(){
try {
listenSocket = new ServerSocket(IntegerparseInt(tfPortgetText()));
} catch (IOException e) { }
while(true){
try {
connectionSocket=listenSocketaccept();
@SuppressWarnings("unused")
webClient client=new webClient(connectionSocket);
} catch (IOException e) {
}
}
}
});
}
public static void main(String args[])throws Exception{
GUI();
}
public static void GUI(){
JFrame f=new JFrame("小白兔Web服务器(BY 丁寻)");
fsetSize(300,200);
fsetLocation(500, 300);
fgetContentPane()add(pane,BorderLayoutCENTER);
fsetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
fsetVisible(true);
//不可以变大变小
fsetResizable(false);
paneadd(new JLabel("端口号:"));
paneadd(tfPort);
paneadd(btStart);
paneadd(btStop);
paneadd(new JLabel("配置路径"));
paneadd(tfURL);
paneadd(tfState);
paneadd(new JLabel("新IP请求"));
paneadd(tfNewIP);
paneadd(btAllow);
paneadd(btRepel);
paneadd(btReloadIP); btStartaddActionListener(new Listener());
btStopaddActionListener(new Listener());
btAllowaddActionListener(new Listener());
btRepeladdActionListener(new Listener());
btReloadIPaddActionListener(new Listener());

}
static class Listener implements ActionListener {
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent event) {
if(eventgetActionCommand()=="启动服务器"){
try {
url=tfURLgetText();
readIP();
tfStatesetText("服务器已经启动地址:"
+InetAddressgetLocalHost()toString());
} catch (Exception e) {
eprintStackTrace();
} try {
new WebServer();
} catch (IOException e) {
eprintStackTrace();
} serverThreadstart(); btStartsetEnabled(false);
tfPortsetEditable(false);
btStopsetEnabled(true);
tfURLsetEditable(false);
btReloadIPsetEnabled(true);
}
if(eventgetActionCommand()=="停止服务器"){
serverThreadstop();
tfStatesetText("服务器已经停止");
btStartsetEnabled(true);
tfPortsetEditable(true);
btStopsetEnabled(false);
tfURLsetEditable(true);
btReloadIPsetEnabled(false);
}
if(eventgetActionCommand()=="允许此IP"){
IPadmin=true;
//serverThreadstart();
click=true;
btAllowsetEnabled(false);
btRepelsetEnabled(false);
tfNewIPsetText(null);
}
if(eventgetActionCommand()=="拒绝此IP"){
click=true;
IPadmin=false;
//serverThreadstart();
btAllowsetEnabled(false);
btRepelsetEnabled(false);
tfNewIPsetText(null);
}
if(eventgetActionCommand()=="更新合法IP列表"){
try {
readIP();
} catch (IOException e) {
// eprintStackTrace();
}
}
}
}

public static void readIP() throws IOException{
int i=0;
byte[] ips = new byte[65535];
File IPfile=new File(url+"checkIPtxt");
FileInputStream fileReader=new FileInputStream(IPfile);
fileReaderread(ips);
fileReaderclose();
String strip=new String(ips);
StringTokenizer getIP=new StringTokenizer(strip,SystemgetProperty("lineseparator"));

for(;;){
if(getIPhasMoreTokens()){
checkIP[i]=getIPnextToken();
Systemoutprintln(checkIP[i]);
i++;
}
else{break;}
}
IPnum=i;

}
public static void disconnect(webClient c){

try {
//cstop();
csocketclose();
csocket=null;
c=null; } catch (IOException e) {
eprintStackTrace();
}
//
}
class webClient extends Thread{
boolean check=true;
boolean send=false;
Socket socket;
BufferedReader inFromClient=null;
DataOutputStream outToClient=null;
String fileName;
String requestMessageLine;
StringTokenizer tokenizedLine=null;
FileInputStream inFile=null;
byte[] fileInBytes=null;
int numOfBytes=0;
File afile=new File(url+"loghtml");
byte[] b;
public webClient(Socket s) throws IOException{
FileOutputStream out=new FileOutputStream(afile,true);
StringBuffer str=new StringBuffer();
SimpleDateFormat formatter=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String time=formatterformat(new Date());
socket=s;
strappend(time+" Client_IP:"+socketgetInetAddress()toString()+
" Client_Port:"+socketgetPort()+"<br>"+
SystemgetProperty("lineseparator")
);
b=(new String(str))getBytes();
Systemerrprintln(new String(str));
outwrite(b);
outclose();
inFromClient=new BufferedReader(new
InputStreamReader(socketgetInputStream()));
outToClient=new DataOutputStream(socketgetOutputStream());
if(!checkIP(socket)){
String strWait="<html>" +
"<title>等待验证</title>" +
"<body>正在等待管理员验证您的IP是否合法,请稍候<br><br>" +
"(如果页面没有自动跳转,请每5秒钟刷新一次," +
"以判断管理员是否已经允许您进入)</body>" +
"</html>";
byte[] waiting=strWaitgetBytes();
outToClientwriteBytes(">

(1)ApacheApache是世界使用排名第一的Web服务器软件

它可以运行在几乎所有广泛使用的计算机平台上

Apache源于NCSA>

Apache取自"apatchyserver"的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷

Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用

(2)IIS是英文InternetInformationServer的缩写,译成中文就是"Internet信息服务"的意思

它是微软公司主推的服务器,最新的版本是Windows2008里面包含的IIS7,IIS与WindowServer完全集成在一起,因而用户能够利用WindowsServer和NTFS(NTFileSystem,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点

(3)GFEGoogle的web服务器,用户数量激增

目前紧逼iis

(4)Nginx不仅是一个小巧且高效的>

(5)Lig>

具有非常低的内存开销,CPU占用率低,效能好,以及丰富的模块等特点

Lig>

支持FastCGI,CGI,Auth,输出压缩(outputcompress),URL重写,Alias等重要功能

(6)Zeus是一个运行于Unix下的非常优秀的WebServer,据说性能超过Apache,是效率最高的WebServer之一

(7)Sun的Java系统Web服务器也就是以前的SunONEWebServer

主要出现在那些运行Sun的Solaris *** 作系统的关键任务级Web服务器上

它最新的版本号是6

1,可以支持x86版本Solaris,RedHatLinux,HP-UX11i,IBMAIX,甚至可以支持Windows,但它的大多数用户都选择了SPARC版本的Solaris *** 作系统

(8)Resin提供了最快的jsp/servlets运行平台

在java和javascript的支持下,Resin可以为任务灵活选用合适的开发语言

Resin的一种先进的语言XSL(XMLstylesheetlanguage)可以使得形式和内容相分离

(9)Jetty是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境

Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布

开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接

(10)BEAWebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器

将Java的动态功能和JavaEnterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中

BEAWebLogicServer拥有处理关键Web应用系统问题所需的性能、可扩展性和高可用性

(11)Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成

由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现

因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器

部署一个BS的应用,一般是有web服务器、应用服务器、数据库服务器,至于文件服务器可以放在应用服务器,如果你开发的系统文件是直接存放在数据库的,那么不需要用到文件服务器。

一般情况下,非大型企业级的应用,web服务器和应用服务器不需要分开,使用tomcat部署即可,tomcat里面既可做应用服务器,也内置了web服务器实现用户请求转发。

至于具体如何部署,你可以去baidu搜索下tomcat部署方法即可。

如果你要说web服务器和应用服务器的区别,通俗来说就是web服务器主要处理静态的请求和转发请求及反馈结果,而应用服务器是处理动态请求。


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

原文地址: http://outofmemory.cn/zz/12615942.html

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

发表评论

登录后才能评论

评论列表(0条)

保存