在B/S应用程序中,前台与后台的数据交互,都是通过HTML中form表单完成的。form提供了两种数据传输的方式:get和post,用个“登录”这个例子来简单理解二者提交和获取方式的不同。
提交
在HTML中写post方式提交
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-
"http://www.w3.org/TR/html4/loose.dtd">
-
<html>
-
<head>
-
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
-
<title>登录</title>
-
<style type="text/css">
-
</style>
-
</head>
-
<body>
-
<!--from表单中method的post和get方式-->
-
<form name="form1" method="post" action="login.aspx">
-
<table width="320" height="153" border="0" align="center" class="BorderSyle">
-
<tr>
-
<td width="89" align="right">用户名:</td>
-
<td width="215">
-
<input name="userName" type="text" class="BorderSyle" id="textUserName"></td>
-
</tr>
-
<tr>
-
<td align="right">密 码:</td>
-
<td>
-
<input name="userPwd" type="text" id="textUserPwd"></td>
-
</tr>
-
<tr>
-
<td colspan="2" class="auto-style1">
-
<input type="submit" name="Submit" value="提交">
-
<input type="submit" name="Submit2" value="重置"></td>
-
</tr>
-
</table>
-
</form>
-
</body>
-
</html>
-
using System;
-
using System.Collections.Generic;
-
using System.Linq;
-
using System.Web;
-
using System.Web.UI;
-
using System.Web.UI.WebControls;
-
using System.Data.SqlClient;
-
namespace LoginTest
-
{
-
public partial class Login : System.Web.UI.Page
-
{
-
protected void Page_Load(object sender, EventArgs e)
-
{
-
//定义两个变量,获取从表单上提交的用户名和密码
-
string userName = Request.Form["userName"].ToString();
-
string userPwd = Request.Form.Get("userPwd").ToString();
-
//连接数据库
-
SqlConnection con = new SqlConnection("Server=.;database=login;uid=sa;pwd=123456");
-
con.Open();
-
//用一个命令对象去查找数据库中这个用户是否存在
-
SqlCommand cmd = new SqlCommand("select count(*) from login where userName='" + userName + " 'and userPwd='" + userPwd + "' ", con);
-
//判断用户是否存在
-
int count = Convert.ToInt32(cmd.ExecuteScalar());
-
if (count > 0)
-
{
-
//用户存在
-
Response.Redirect("main.aspx?userName=" + userName); //get提交
-
//Response.Redirect("main.aspx"); //post提交
-
}
-
else
-
{
-
//用户不存在
-
Response.Redirect("loginFail.html");
-
}
-
}
-
}
-
}
获取
-
using System;
-
using System.Collections.Generic;
-
using System.Linq;
-
using System.Web;
-
using System.Web.UI;
-
using System.Web.UI.WebControls;
-
namespace LoginTest
-
{
-
public partial class main : System.Web.UI.Page
-
{
-
protected void Page_Load(object sender, EventArgs e)
-
{
-
//get提交,获取用户名的方法
-
string userName = Request.QueryString["userName"].ToString();
-
//由服务器端向客户端书写
-
Response.Write("<font size=24 color=red align=center>欢迎" + userName + "光临天猫购物</font>"); //get提交所用的获取方法
-
// Response.Write("<font size=24 color=red >欢迎光临天猫购物</font>"); //post提交所用的获取方法
-
}
-
}
-
}
get提交的时候,它的变量和值都会在地址栏里显示出来,它的安全性有一定的影响。从一个页面到另一个页面传参的时候,可以使用get方法,速度更快些。
总结
1、get是用来从服务器上获得数据,而post是用来向服务器上传递数据。
2、get在传输过程,表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,数据被放在请求的URL中,服务器会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。而post是将表单中的数据放在form的数据体中,其所有操作对用户来说都是不可见的。
总之,个人对于get和post的理解,最大的不同就是一个用于获取数据,一个用于修改数据。
--------------------- 本文来自 JanneyTan 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u010927640/article/details/50085121?utm_source=copy
html部分
-
<form method="post" action="http://www.xxx.com/Login.aspx">
-
<label>用户名 </label> <input type="text" name="_user" id="username" size="8" />
-
<label>密 码 </label> <input type="password" name="_pass" id="password" size="8" />
-
<input type="image" name="button" src="images/index3.gif">
-
</form>
asp.net 代码如下:
-
private MODEL_stu_info get_model()
-
{
-
string str_username = Request.Form["_user"];
-
string str_password = Request.Form["_pass"];
-
MODEL_stu_info model_stu = new MODEL_stu_info();
-
model_stu.User_name = str_username;
-
model_stu.Stu_password = str_password;
-
return model_stu;
-
}
通过下面的代码实现对用户名进行调用
string str_username = Request.Form["_user"];
--------------------- 本文来自 路口下车 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/a892886597/article/details/12019303?utm_source=copy
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="xiaomo_login" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>晓莫作品-平台登录页面</title>
<link href="css/login.css" rel="stylesheet" />
<script src="js/login.js"></script>
<link rel="icon" href="../imgs/m.ico"/>
</head>
<body>
<form id="form1" runat="server">
<!--顶部窄导航条-->
<div class="topnav">
<div class="userInfo">
<span>欢迎您,请登录你的账号!</span>
</div>
<ul class="linkwrap">
<li><a href="http://www.moscte.com" target="_blank">平台首页</a></li>
<li><a href="http://www.moscte.com" target="_blank">帮助中心</a></li>
</ul>
</div>
<!--顶部宽导航条及LOGO-->
<div class="mainnav">
<a target="_blank" href="http://www.moscte.com">
<div class="logo">
<div class="imglogo">
<img alt="moscte logo" src="images/1.png" />
</div>
<div class="txtlogo">
<b>BETA!</b>
<h1>用户后台</h1>
<span>晓莫业务平台</span>
</div>
</div>
</a>
<div class="linknav" id="linknav">
<ul>
<li class="scractive"><a target="_blank" href="http://www.moscte.com"><b>功能连接</b></a></li>
<li><a target="_blank" href="http://www.moscte.com"><b>功能连接</b></a></li>
<li><a target="_blank" href="http://www.moscte.com"><b>功能连接</b></a></li>
</ul>
</div>
<div class="scr" id="scr"></div>
</div>
<!--图片展示及登录-->
<!--图片展示-->
<div class="showil" id="showil">
<ul>
<li><img alt="" src="../imgs/ad3.jpg" /></li>
<li><img alt="" src="../imgs/ad2.jpg" /></li>
<li><img alt="" src="../imgs/ad1.jpg" /></li>
<li><img alt="" src="../imgs/ad4.jpg" /></li>
</ul>
<ol>
<li class="active"></li>
<li></li>
<li></li>
<li></li>
</ol>
</div>
<!--登录窗口-->
<div class="malogin">
<h1>登录Moscte.com</h1>
<input type="text" class="txt" value="MOID/电子邮箱/手机号码" />
<input type="text" class="txt" value="登录密码"/>
<input type="text" class="txtyz" value="验证码"/><b>ACCC</b><br />
<img id="qr" alt="" src="http://ww1.sinaimg.cn/mw690/005Li8nIgw1evm3wiqyp2j303w014742.jpg" /><br /><br />
<a target="_blank" href="http://www.moscte.com">找回密码</a><a target="_blank" href="http://www.moscte.com">使用协议</a>
</div>
<!--底部功能展示-->
<div class="gnshow">
<div class="imgshow">
<a target="_blank" href="http://weibo.com/moscte/"><img alt="" src="http://ww3.sinaimg.cn/mw690/005Li8nIgw1evm3wj6r7rj308v044t97.jpg" /></a>
<a target="_blank" href="http://www.moscte.com/xiaomo.aspx"><img alt="" src="http://ww1.sinaimg.cn/mw690/005Li8nIgw1evm3wjsod4j308u045mxi.jpg" /></a>
<a target="_blank" href="http://www.moscte.com"><img alt="" src="http://ww4.sinaimg.cn/mw690/005Li8nIgw1evm3wkc7o1j308v045t8z.jpg" /></a>
</div>
</div>
<hr />
<!--底部信息展示-->
<div class="xxshow">
<a target="_blank" href="http://www.moscte.com">关于晓莫</a>|
<a target="_blank" href="http://www.moscte.com">功能特色</a>|
<a target="_blank" href="http://www.moscte.com">用户协议</a>|
<a target="_blank" href="http://www.moscte.com">运营资质</a><br />
<b>Copyright 2015 ©</b><a target="_blank" href="http://www.moscte.com">莫欧科技</a>
<b> All Rights Reserved</b><a target="_blank" href="http://www.moscte.com"> ICP备:1502346</a>
</div>
</form>
</body>
</html>