b/s架构怎么搭java_B/S网络架构与一次完整的Web请求过程

相信不少web开发的同学在面试过程中都被问过这样一个问题,讲述下一个用户在浏览器中点击一个链接开始到浏览器响应结果显示的过程中发生了什么?这里我们基于目前B/S网络架构大致的架构设计讲解下这一过程。

下图是目前B/S网络架构采用的架构设计,可能在一些细节上实现方式有所不同但不影响我们分析:

f627ee9f2888a9b7f56e5515dfb3ab17.png

用户在客户端浏览器输入一个网址或者点击一个连接完成的一次完整的web请求过程如下:

1)首先客户端浏览器会请求DNS与域名服务器将域名解析成对应的IP地址;

2)根据IP地址找到对应的应用服务器,发起Http请求;

3)服务器处理请求返回响应的数据资源,客户端浏览器接受数据渲染之后显示在页面;

这个过程中服务端为了处理更多的请求可能加了多台服务器形成集群,这时候请求会先到达负载均衡设备,基于指定的负载均衡策略选择对应的集群节点服务器处理到达的请求。此外请求中如果涉及静态资源例如CSS、图片、JS文件等,一些大型网站为了减少对业务服务器网络带宽的占用通常会把这部分资源放到CDN服务器,客户端浏览器还需要额外向CDN服务器发起HTTP请求获取静态资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于B/S架构的信息管理系统的用户账户系统的Java代码示例: 首先是用户登录页面的HTML代码,保存为login.html文件: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>用户登录</title> </head> <body> <h1>用户登录</h1> <form action="login" method="post"> <label for="username">用户名:</label> <input type="text" id="username" name="username" required><br><br> <label for="password">密码:</label> <input type="password" id="password" name="password" required><br><br> <input type="submit" value="登录"> </form> </body> </html> ``` 接下来是用户登录的Java代码,保存为LoginServlet.java文件: ```java import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/login") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); // TODO: 在此处验证用户信息 if (username.equals("admin") && password.equals("admin123")) { response.sendRedirect("dashboard.html"); } else { PrintWriter out = response.getWriter(); out.println("<script>alert('用户名或密码错误!');window.location.href='login.html';</script>"); } } } ``` 在上面的代码中,我们使用了Java Servlet技术来处理用户提交的登录请求。在doPost()方法中,我们获取了用户提交的用户名和密码,并进行了简单的验证。如果用户名和密码匹配,我们将用户重定向到系统的仪表板页面(dashboard.html),否则我们显示一个错误消息,并将用户重定向回登录页面。 最后是仪表板页面的HTML代码,保存为dashboard.html文件: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>信息管理系统</title> </head> <body> <h1>欢迎来到信息管理系统</h1> <p>您已成功登录!</p> </body> </html> ``` 当用户成功登录后,会被重定向到此页面,并显示欢迎消息。 请注意,上面的代码是基于Java Servlet技术开发的,需要使用一个Web容器(例如Apache Tomcat)来运行。同时,您还需要将代码部署到Web容器中,以便用户可以通过Web浏览器访问它。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值