java开发bs_关于java中BS架构
概述:
B/S 架构的全称为 Browser/Server,即浏览器/服务器结构。 Browser 指的是 Web 浏览器,极少数业务逻辑在前端实现,主要的业务逻辑在服务器端现,
Browser 客户端,WebApp 服务器端和 DB 端构成所谓的三层架构。 B/S 架构的系统⽆须特别安装,只有 Web 浏览器即可。B/S 架构中,显⽰逻辑交给了
Web浏览器,业务处理逻辑放在了 WebApp 上,这样就避免了庞⼤的胖客户端,减少了客户端的压⼒。因为客户端包含的逻辑很少,因此也被成为瘦客户端。
优点:
( 1) 客户端⽆需安装,有 Web浏览器即可。
( 2) BS架构可以直接放在⼴域⽹上,通过⼀定的权限控制实现多客户访
问的⽬的,交互性较强。
( 3) BS架构⽆需升级多个客户端,升级服务器即可。
缺点:
( 1) 在跨浏览器上, BS架构不尽如⼈意。
( 2) 表现要达到 CS架构的程度需要花费不少精⼒。
( 3) 在速度和安全性上需要花费巨⼤的设计成本,这是 BS架构的最⼤问题。
B/S架构图:
B/S 架构的系统参与者:第⼀: Web 客户端 Browser
第⼆: Web 服务器 Server
第三: WebApp
第四:数据库服务器
B/S 架构的系统中参与者之间的接⼝与协议:
第⼀: Web 客户端 Browser 和 Web 服务器端 Server 之间是 W3C 制定的 HTTP 协议。
B/S架构:多线程访问服务器BootStrap:
package ; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; import java.ServerSocket;
import java.Socket;
import com.bjpowernode.util.Logger; /**
* 程序主⼊⼝
* @author
* @version 1.0
* @since 1.0
*/
public class BootStrap {
public static void main(String[] args) { //程序⼊⼝
start();
}
private static void start() {
/**
* 程序启动⼊⼝
*/
Logger.log("httpserver start"); ServerSocket serverSocket = null; Socket clientSocket = null; BufferedReader br = null;
long start = System.currentTimeMillis();
//从l配置⽂件中获取端⼝号:8080
int port = Port();
Logger.log("httpserver-port:" + port);
//创建服务端套接字,并且绑定端⼝号:8080
serverSocket = new ServerSocket(port);
webserver接口开发//记录结束时间
long end = System.currentTimeMillis();
Logger.log("httpserver started:" + (end - start) + "ms");
while(true){
//开始监听⽹络,此时程序处于等待状态,等待接收
clientSocket = serverSocket.accept();
new Thread(new HandlerRequest(clientSocket)).start();
}
//接受客户端消息
/*br = new BufferedReader(new InputStream())); //打印消息
String temp = null;
while((temp = br.readLine()) != null){
System.out.println(temp);
}*/
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
//关闭资源
if(br != null){
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
if(clientSocket != null){
try {
clientSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace();
}
}
if(serverSocket != null){
try {
serverSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace();
}
}
}
}
}
DateUtil:
package com.bjpowernode.util;
SimpleDateFormat; import java.util.Date;
/**
* ⽇期处理类
* @author
* @version 1.0
* @since 1.0
*
*/
public class DateUtil {
private DateUtil(){
* 获取系统当前时间
* @return Strinng [yyyy-MM-dd HH:mm:ss SSS]
*/
public static String getNowTime(){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); Date nowTime = new Date();
return dateFormat.format(nowTime);
}
}
Logger:
package com.bjpowernode.util;
SimpleDateFormat;
import java.util.Date;
/**
* 记录⽇志
* @author
* @version 1.0
* @since 1.0
*/
public class Logger {
//⼯具类的⽅法往往都是静态的,直接通过类名调⽤即可,不需要创建对象
//⼯具类的构造⽅法往往是私有的,但不是必须的
private Logger(){
}
/**
* 记录普通⽇志
* @param info
*/
public static void log(String info){
/*SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); //获取系统当前时间
Date nowTime = new Date();

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。