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

目录

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

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

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

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


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

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

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

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
	建议用f12看一下整个请求到响应的过程<br>
	<form action="login" method="get"> 
	用户名:<input type="text" name="username"> <br> 
	密 码:<input type="password" name="password"> <br> 
	<input type="submit" value="登录"> 
	</form>
</body>
</html>

 <input> 就是我们要输入的数据,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表单中的账号和密码,然后就是将账号密码与我们内置的账号密码进行比对,根据结果,有不同的响应。

 

 

 

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

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

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

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网页数据导出Excel表格,是一种非常常见的操作,其可以实现将网页上的数据直接导出到Excel表格中,以方便用户数据进行分析、整理、存档等操作。这种方法比较简单、易用,且涉及到的技术也不算难,基本上所有的网站都可以实现这一功能。下面我们来详细讲述一下该功能的实现过程及其相关技术要点。 首先,网页数据导出Excel表格主要涉及到两方面的技术:一是服务器端与客户端之间的数据传输技术;二是将传输过来的数据处理成Excel格式的技术。 在客户端点击导出按钮后,会向服务器发起一个数据请求,服务器端会将需要导出的数据数据库或其他数据源中查询出来,并通过一定的数据传输技术将数据传输给客户端。常用的数据传输协议有两种:一种是XMLHttpRequest(即AJAX)协议,它可以通过JavaScript代码实现异步传输数据,不需要页面的刷新或跳转,很适合于提高用户体验;另一种是常见的HTTP请求,它是一种同步的数据传输方式,需要通过页面的刷新或跳转来实现数据传输,但它的编和调试比异步传输方式简单许多。 在数据传输完成后,服务器端需要将传输过来的数据使用一定的技术处理,将数据处理成Excel格式。目前,常用的Excel处理技术有两种:一种是使用Microsoft Office COM技术来实现定制化的Excel报表,这种技术需要先安装Office软件包或使用web-based COM automation技术,然后利用JavaScript或其他脚本语言实现数据和Excel表格之间的交互,并将数据填充到表格中;另一种是使用Apache POI项目来处理Excel表格,这是一个完全开源的Java库,可以直接在Java中使用,其优点是极其便捷且具有很高的可移植性。 总之,将网页数据导出Excel表格可以方便用户数据进行分析与整理,给用户带来很大的便利。在实现这一功能时,我们需要注意选择合适的数据传输协议和Excel处理技术,并严格遵守各项安全规定以保障数据安全。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值