如何基于BS架构开发聊天程序

最近经常看到关于“如何基于BS架构开发聊天程序”的问题,这里把写的一个简要实例代码贴出来。


那么BS的聊天系统,一般两种技术(各有优劣):
1、基于Ajax或子页面刷新的拉模型;
2、基于HTTP长连接的推模型。

因为Ajax的“拉模型”,比较常见,这里给出基于HTTP长连接的“推模型”:


由三个页面组成:
chatmain.jsp 框架页面,引入两个Frame页面,并负责创建聊天室;
chatwnd.jsp 聊天信息窗口,负责用服务器推的方式显示所有人的聊天信息;
chatsender.jsp 聊天发送窗口,负责发送自己想说的话。


注意:本样例主要是为了说明 “基于长连接的推模型”,在聊天室完备性上完全不具有参考意义。


【chatmain.jsp 框架页面】

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%
    // 这三句话只是为了防止浏览器缓存
    response.setHeader("Cache-Control", "no-cache,
  • 3
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
部分代码如下:client: /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package client; /** * * @author Administrator */ import java.awt.*; import java.io.*; import java.net.*; import java.applet.*; import java.util.Hashtable; public class ClientChat extends Applet implements Runnable { Socket socket=null; DataInputStream in=null; DataOutputStream out=null; InputNameTextField 用户提交昵称界面=null; ChatArea 用户聊天界面=null; Hashtable listTable; Label 提示条; Panel north, center; Thread thread; public void init() { int width=getSize().width; int height=getSize().height; listTable=new Hashtable(); setLayout(new BorderLayout()); 用户提交昵称界面=new InputNameTextField(listTable); int h=用户提交昵称界面.getSize().height; 用户聊天界面=new ChatArea("",listTable,width,height-(h+5)); 用户聊天界面.setVisible(false); 提示条=new Label("正在连接到服务器,请稍等...",Label.CENTER); 提示条.setForeground(Color.red); north=new Panel(new FlowLayout(FlowLayout.LEFT)); center=new Panel(); north.add(用户提交昵称界面); north.add(提示条); center.add(用户聊天界面); add(north,BorderLayout.NORTH); add(center,BorderLayout.CENTER); validate(); } public void start() { if(socket!=null&&in!=null&&out!=null) { try { socket.close(); in.close(); out.close(); 用户聊天界面.setVisible(false); } catch(Exception ee) { } } try { socket = new Socket(this.getCodeBase().getHost(), 6666); in=new DataInputStream(socket.getInputStream()); out=new DataOutputStream(socket.getOutputStream()); } catch (IOException ee) { 提示条.setText("连接失败"); } if(socket!=null) { InetAddress address=socket.getInetAddress(); 提示条.setText("连接:"+address+"成功"); 用户提交昵称界面.setSocketConnection(socket,in,out); north.validate(); } if(thread==null) { thread=new Thread(this); thread.start(); } } public void stop() { try { socket.close(); thread=null; } catch(IOException e) { this.showStatus(e.toString()); } } public void run() { while(thread!=null) { if(用户提交昵称界面.get能否聊天()==true) { 用户聊天界面.setVisible(true); 用户聊天界面.setName(用户提交昵称界面.getName()); 用户聊天界面.setSocketConnection(socket,in,out); 提示条.setText("祝聊天愉快!"); center.validate(); break; } try { Thread.sleep(100); } catch(Exception e) { } } } }
基于bs架构的系统开发是指在建立软件系统时采用浏览器-服务器(Browser-Server架构,即将系统分为前端用户界面和后端服务器两部分,实现数据交互和业务逻辑处理的分离。 在进行基于bs架构的系统开发时,需要编写相应的代码来实现前端用户界面和后端服务器的功能。 前端用户界面的开发主要包括HTML、CSS和JavaScript代码的编写。HTML用于构建页面的结构,CSS用于设计页面的样式,而JavaScript则用于实现用户交互和页面的动态效果。通过编写这些代码,可以实现用户界面的展示和交互功能,并与后端服务器进行数据交互。 后端服务器的开发主要使用编程语言如Python、Java等来编写代码。这些代码主要用于处理业务逻辑,接收前端发送的请求,进行数据处理和计算,并返回相应的结果。后端服务器还负责与数据库进行交互,进行数据的存储和查询。通过编写这些代码,可以实现系统的核心功能和业务逻辑。 基于bs架构的系统开发代码需要注重前后端的接口设计和协作。前端与后端通过定义统一的接口来进行数据交互和通信。前端通过发送请求,后端通过解析请求参数进行相应的操作,并返回相应的结果。因此,代码开发过程中需要注意前后端接口的定义和实现,确保数据的正确传输和处理。 总之,基于bs架构的系统开发代码包括前端用户界面和后端服务器的开发。通过编写相应的代码,实现用户界面的展示和交互功能以及后端服务器的业务逻辑处理,从而实现系统的功能和要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值