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服务器主要处理静态的请求和转发请求及反馈结果,而应用服务器是处理动态请求。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)