lymeng520更搞笑,到网上摘了点ajax只是就来答题了!!
既然楼主是来java板块,那么我说下jsp,servlet等基础传值方法。
比如你的一个页面(html,jsp啊什么的)上要在人点击一个按钮之后将输入的信息传给后台,那么首先要一个表单Form.如<form id="xxx" name="xxx" action="action.jsp">这个意思就是后台处理程序是action.jsp这个文件,当然了,也可以是servlet。用一个form包含一个提交按钮,那么点击这个按钮之后就会自动将他所属于的form提交。
如:
<form id="xxx" name="xxx" action="action.jsp">
<!-- 这里放一些你的信息输入栏,比如输入名字啊什么的-->
<input type="text" name="userName" id="userName"><!--这里要用户输入一些名字信息-->
<input type="submit" value="提交">
</form>
这就是一个最最基础的传值给后台的代码片段。
你在action.jsp中就可以用request.getParameter("userName")来获取别人填写的名字信息.userName就是指<input type="text" name="userName" id="userName">中的name属性的值,用request.getParameter("userName")就是获得了这个文本框内的东西了。
另一种常见方式就是session之间传值,比如你一个jsp页面中来个session.setAttribute("a",new String("aaa")),那么当这个jsp页面提交给后台处理程序(可能是一个jsp或一个servlet程序),那么再后台程序里面就可以用String aa=session.getAttribute("a").toString()来将之前那个Jsp页面中所设定的属性a的值"aaa"获取并赋给后台程序中定义的变量aa中。
当然,以上都是很基础的传递方式,楼主会了这些再看看ajax来进行异步通信那样才好些,如果什么都还不会就直接搞ajax那样不好。
直接往客户端的输出流里写入就可以了,只不过写入特殊值,这里的特殊值指的是客户端和服务器端约定的一种参数形式。服务器端解析这种信息,就可以了。如果服务器端为每个客户端都开了一个处理线程,那么可以先写入一个头标记,然后传参数,然后写入结束标记,然后开始写入正式内容。1、使用QueryString变量
QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子:
a.aspx的C#代码
private void Button1_Click(object sender, System.EventArgs e)
{
string s_url
s_url = "b.aspx?name=" + Label1.Text
Response.Redirect(s_url)
}
b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
Label2.Text = Request.QueryString["name"]
}
2、Session传值
这种方法将每份数据存储于服务器变量中,可以传递比较多的数据,并且安全性较高,所以常用于用户身份的验证功能中。不过,Session变量如果存储过多的数据会消耗过多的服务器资源,编程者在使用时应该慎重,其使用方法如以下代码所示。
Session["SessionValue"] = “ATI”
//也可以用索引存储
Session[0] = “ATI”
//在其他页面的服务器端方法中取值方式为:
string str = Session["SessionValue"].ToString()
//也可以用索引获取
string str = Session[0].ToString()
Session的可在应用程序的多个页面中以名称/值对的方式共享,直到浏览用户关闭自己的浏览器或者服务器Session超时(可设置,默认为20分钟)。
3、<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
一个带有runat="server"的控件才是后台.cs能够获得到的,唯一标识符是ID,通过ID获取,大写可以和html的id区别开来好看(虽然这个ID可以写成id);asp.net自带的控件runat="server"必须写。
因为其实TextBox控件在浏览器源码查看中也是input,但是如果不加runat="server"声明它是asp.net服务器控件,不会被解析成input给浏览器认识,浏览器变成文本框等等展现出来。
扩展资料:
使用Cookie对象变量
这个也是大家常使用之方法,与Session一样,其是什对每一个用户而言之,但是有个本质之区别,即Cookie是存放在客户端之,而session是存放在服务器端之。而且Cookie之使用要配合ASP.NET内置对象Request来使用。
a.aspx之C#代码
private void Button1_Click(object sender, System.EventArgs e)
{
HttpCookie cookie_name = new HttpCookie("name")
cookie_name.Value = Label1.Text
Reponse.AppendCookie(cookie_name)
Server.Transfer("b.aspx")
}
b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
string name
name = Request.Cookie["name"].Value.ToString()
}
参考资料来源:百度百科-跨页面传值
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)