简单用户登录功能数据在网页和服务器之间的传输,处理 您所在的位置:网站首页 网页数据传到数据库 简单用户登录功能数据在网页和服务器之间的传输,处理

简单用户登录功能数据在网页和服务器之间的传输,处理

2024-07-03 07:32| 来源: 网络整理| 查看: 265

目录

一、用什么来实现用户登录功能

二、数据怎么传到服务器?

三、服务器收到数据以后会进行怎么的处理?

四、如果是真实的业务操作,在收到数据以后,服务器可能会有哪些操作?

一、用什么来实现用户登录功能

        用户的登录功能,界面使用html的form表单即可完成一个简单的账号密码输入,和数据传输到服务器,然后我们可以在数据库中寻找是否有响应的数据,有就登录成功,否则,可以重新引导回页面,当然,这里我们只是在服务器servlet内部内置了一个账号密码进行判断。

        关于form表单,我简单举一个例子,下面这段代码是在网页创建一个账号密码输入的表单

Login 建议用f12看一下整个请求到响应的过程 用户名: 密 码:

  就是我们要输入的数据,type=“***”就是定义我们输入数据的类型,password就是表明这是一个密码字段,随后会对该段数据进行掩盖,不会以明文的形式展现,name则是定义这个字段的属性名。方便我们提取从请求中提取数据。

在网页上的显示则是下图:

 

二、数据怎么传到服务器?

        我们在网页上输入了数据,那么数据又是怎样从网页进入到服务器的呢?这里就要先说一下web浏览器和web服务器之间的工作了。

        这里先看一张图

         

        我们可以看见,客户端是通过请求将数据送入到服务器的,那么这个请求又是怎么一回儿事呢?

        我们在第一个点已经提到了,我们可以用form表单来代替浏览器发送请求,form表单中,action="login",这里就是数据要交给服务器的login来进行处理。method就是请求的方式,一般来说就是get请求和post请求。那么get请求和post请求又有什么区别呢?

        如果我们使用post请求,那么参数就会以form data的形式传递,如果是用get请求,那么参数就会以url string 的形式进行传递,不会显示在请求url中,如图所示

这是post请求

 这是get请求

如上述,我们可以清晰的看到,get请求在传入参数时,也会将参数在url中显示出来 

我们在浏览器网址部分也可以发现。

既然如此,那我们是用get请求进行参数传入呢,还是用post请求进行参数传入呢?

这里看场景需求吧,我们可以列举一下get请求和post请求的区别,来进行参考(此处区别参考get请求和post请求区别 - 简书 (jianshu.com))

1)GET请求一般用去请求获取数据,POST一般作为发送数据到后台时使用

2)GET请求也可传参到后台,但是其参数在浏览器的地址栏的url中可见,所以隐私性安全性较差,且参数长度也是有限制的, POST请求传递参数放在Request body中,不会在url中显示,比GET要安全,且参数长度无限制

3)GET请求刷新浏览器或回退时没有影响,POST回退时会重新提交数据请求

4)GET 请求可被缓存,POST 请求不会被缓存

5)GET 请求保留在浏览器历史记录, POST 请求不会保留在浏览器历史记录中

6)GET 请求可被收藏为书签,POST 不能被收藏为书签

7)GET请求只能进行url编码(application/x-www-form-urlencoded), POST支持多种编码方式(application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。)

8)GET请求比较常见的方式是通过url地址栏请求,POST最常见是通过form表单发送数据请求

        小结一下,就是web浏览器通过form表单发送get请求或者post请求到web服务器,web服务器将请求送到web容器里面进行解析,然后调用servlet,最后返回响应到web浏览器。

 

三、服务器收到数据以后会进行怎么的处理?

        服务器收到数据以后会进行怎么的处理呢?这里我们先看一张图片

        客户端在发送请求到服务器之后,服务器就会把请求丢到web容器里面去,这个容器里面呢就是我们写的servlet之类的服务,然后servlet服务就会解析请求,根据我们的代码,创建servlet服务,然后进行初始化,调用service(),,最后将响应返回web服务器,销毁servlet,再由web服务器返回到客户端。

        这是服务器收到数据以后的通用操作,那么具体到我们这个简单的用户登录功能,又是怎样的情况呢,这里先给大家看一下代码

package servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.omg.CORBA.PRIVATE_MEMBER; public class LoginServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); //从请求中获取相应的参数 //得到网页打印权限 PrintWriter out = response.getWriter(); String name = "majie";//内置用户 String pass = "mj666666";//内置密码 String username = request.getParameter("username"); String password = request.getParameter("password"); // 思考,在真实的项目中,接收到参数后要做什么动作? // 真实的业务操作可能会有哪些动作呢? if(username.equals(name)&&password.equals(pass)) { //在控制台输出相应的参数 System.out.println("username = " + username ); System.out.println("password = " + password ); //给出响应 response.getWriter().println("Login Success!"); } else { if(!username.equals(name)) { System.out.println("账号输入不正确"); response.getWriter().println("账号输入不正确"); } else { System.out.println("密码输入不正确"); response.getWriter().println("密码输入不正确"); } } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }

        之所以说这个是简单的用户登录,是因为我们这里没有涉及数据库之类的操作,只是在服务器内部设置了一个账号密码。

        通过代码,我们可以看见,我们调用了request.getParameter(“属性名”)的方法,拿到了我们设置的form表单中的账号和密码,然后就是将账号密码与我们内置的账号密码进行比对,根据结果,有不同的响应。

 

 

 

四、如果是真实的业务操作,在收到数据以后,服务器可能会有哪些操作?

        这里我们深入思考一下,如果是真实业务操作,那么服务器在收到数据之后,一个是要操作数据库,看看数据库里面是否有对应的账号和密码,如果有那么我们进行登录,如果没有,要么显示账号错误或密码错误,然后重新导回到登录页面,要么引导用户进入注册页面,同时,我们还要生成对应的日志,记录下我们操作数据库的时间和步骤,以便数据的恢复。

这次分享就到这里了,学习路上,诸君共勉,我们下次见。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有