Ⅰ ajax 实现无刷新筛选,并动态的显示出来,找了好多方法都不行,可能是我这边的方法不对,求指点
使用jQuery实现Ajax操作
想要实现Ajax页面无刷新效果,但是直接凯简利用Ajax代码实在有些麻烦,所以就想用jQuery实现。jQuery很好的封装了Ajax的核心对象XMLHTTPRequest。所以用起来非常方便。
首先,创建服务器端代码,这里用Servlet实现服务器端的数据处理;代码如下:
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 设置编码格式
resp.setContentType("text/html;charset=UTF-8");
// 创建输出对象
PrintWriter out = resp.getWriter();
// 得到请求参数
String name = req.getParameter("uname");
// 判断
if (name == null || name.length() == 0)
{
out.println("用户名不能为空!");
}
else
{
// 判断
if (name.equals("cheng"))
{
out.println("用户名["+ name +"]已存在!请使用其他用户名!");
}
else
{
out.println("用户名[" + name + "]尚未存在!您可以注册!");
}
}
}
然后,创建JSP页面,要使用jQuery,必须在页面之中引入jQuery库,也就是一个javascript文件,另外还需引入自定义的Javascript文件,如下:
?
<!-- 引入Javascript文件 -->
<script type="text/javascript" src="js/jquery-1.2.6.js"></script>
<script type="text/javascript" src="js/verify.js"></script>
而JSP页面只需要一个文本框、一个普通按钮和一个空白DIV层即可,该DIV用于显示服务器端返回的处理结果;按钮的单击事件触发verify()方法。如下:
?
<body>
<center>
用户名:<input type="text" id="uname" name="uname" />
<br />
<input type="button" name="btnVerify" value="验证" onclick="verify()" />
<br />
<div id="result">
</div>
</center>
</body>
注意:Ajax方式下不需要使用表单来进行数据提交,因此页面中不用写<form>标签。
接下来,创建一个verify.js文件,在该文件中创建verify()方法,用液改来实现Ajax的无刷新效果,这是该示例中盯埋裤最为重要的一步。想要使用jQuery实现Ajax分为以下四步:
· 获取文本框中的内容;
· 将文本框中的内容发送给服务器端的Servlet;
· 接收服务器端返回的数据;
· 将服务器端返回的数据动态地显示在JSP页面上。
针对于第一步,首先通过jQuery获得对象,并取得对象的值,如下:
?
// 取得文本框对象,通过$()获取的所有对象都是jQuery对象
var jQueryObject = $("#uname");
// 获取文本框中的值
var userName = jQueryObject.val();
通过jQuery中的$()函数获得页面的节点,该函数得到的是一个jQuery对象,然后通过jQuery中的val()方法取得节点的值,也就是文本框中的内容。
针对于第二步,我们使用jQuery的get()方法来发送数据到服务器端,如下:
$.get("TestServlet?uname=" + userName,null,callback);
该方法返回一个XMLHttpRequest对象,该方法提供三个参数,第一个是请求的服务器端的URL,第二个参数是待发送的参数,一般可以在第一个URL中直接带上参数,所以一般该参数为null,第三个参数是服务器端成功处理完成数据之后的一个回调函数。
针对于第三步,就应该创建一个回调函数,用来处理服务器端返回的数据,如下:
?
// 回调函数
function callback(data)
{
}
该回调函数有一个参数,该参数就是客户端返回的数据。
针对于第四步,再次利用jQueyr的选择器函数得到DIV层,将返回的数据显示在该层之上,如下:
function callback(data)
{
/**
* 第三步,接收服务器端返回的数据
*/
// 将服务器端返回的数据动态的显示在页面上
var resultObject = $("#result");
resultObject.html(data);
}
利用jQuery的html()方法将数据动态地显示到DIV层之中。
现在我们对以上的代码进行优化,我们用两句代码就可以实现以上所有代码的功能,这就是jQuery的强大之处之一。在verify.js文件之中的verify()方法也可以写成下面的形式:
?
$.get("TestServlet?uname=" +$("#uname").val(),null,function(data){
$("#result").html(data);
})
再为大家分享一个,下面是“无刷新登录”的例子,采用Ashx+jQuery Ajax实现。
1、后台实例代码 ashx文件(可替换为从数据库中读取)
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//context.Response.Write("Hello World");
string name = context.Request.Params["name"].ToString().Trim();
if ("china".Equals(name))
{
context.Response.Write("1");//1标志login success
}
else
{
context.Response.Write("0");//0标志login fail
}
}
2、前台实例代码 aspx文件
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="js/jquery-1.4.2.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$("#test").live("click", function() {
//alert(0);
$.ajax({
type: 'POST',
url: 'Handler1.ashx',
data: { "name": $("#name").val() },
success: function(data) {
if (1 == data)
alert('login success');
else
alert('login fail');
}
});
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="text" name="name" id="name" />
<input type="button" name="test" id="test" value="validate" />
</div>
</form>
</body>
</html>
Ⅱ asp.net问题ashx文件有什么用
Handler.ashx ?
引自网络...
-----------
ASP.NET2.0 Person Web Site:将图片以二进制的从数据库羡郑燃读取
在ASP.NET Person Web Site Starter Kits中,图片的是以二进制的形式存放在数据库里,微软提供的读取该图片的方式是通兄虚过handler.ashx来实现的.
首先你所看到的对图片的引用都是类似如下
<img src="Handler.ashx?AlbumID=<%# Eval("AlbumID") %>
的形式,也就是你所看到的每一个图片都由Handler.ashx动态生成,所以在你保存你所看到的"图片丛雹"时,它的命名都是Handler.ashx.
使用handler.ashx而不是handler.aspx来引用图片并不是一定的,换句话说,你可以将该文件改为handler.aspx并没有本质的区别,不过根据微软的文档,使用*.ashx作为扩展名的文档比*.aspx的文档性能高,因为它减少了控件树的生成.
----------
这是handler.ashx代码:
<%@ WebHandler Language="C#" Class="MyHandle" %>
using System;
using System.Web;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Web.Caching;
using System.Data;
public class MyHandle : IHttpHandler {
public void ProcessRequest (HttpContext context) {
//从数据库中取
MemoryStream ms = JSZ.SQLServerDAL.TestDAL.GetImage(1);
DataTable dt = JSZ.SQLServerDAL.TestDAL.GetTable(1);
Byte[] image = (Byte[])dt.Rows[0]["Photo"];
MemoryStream ms = new MemoryStream(image, 0, image.Length);
if (ms != null)
{
//取得图像MemoryStream大小
int bufferSize = (int)ms.Length;
//建立 buffer
byte[] buffer = new byte[bufferSize];
//调用MemoryStream.Read,自MemoryStream 读取至buffer,并返回count
int countSize = ms.Read(buffer, 0, bufferSize);
//返回图像buffer
context.Response.OutputStream.Write(buffer, 0, countSize);
}
}
public bool IsReusable {
get {
return false;
}
}
}
Ⅲ .ashx和.aspx的区别
看,比aspx简洁多了吧.只有一个文件,没有后台cs文件(基于代码安全考虑,后边我们会自己添加这个文件).ashx对比aspx文件,就好像 少了cs文件.其实这就是ashx和aspx不同的地方,因为aspx要将前后台显示和处理逻辑分开,所以就弄成了两个文件,其实,在最终编译的时 候,aspx和cs还是会编译到同一个类中去.这中间就要设计html的一些逻辑处理.而ashx不同,它只是简单的对web http请求的直接返回你想要返回的结果.比aspx少处理了htm发讥篡客诂九磋循单末l的过程.理论上,比aspx要快.
Ⅳ C#服务器ashx页面功能如何避免恶意攻击形式充值怎样避免
在前端增加一个秘钥生成器,首先前端要验证打开是否在微信内打开,其次采用特殊算法生成一个秘钥,后端也用相同算法来解析秘钥祥岁是否正确,在安全点盯唯可以把前端生成秘钥的代码进行混淆避免被发现,或者隐藏的好凯宴培些。
Ⅳ Asp.net的Ashx文件为什么不被编译成DLL
像aspx一样,属于页面文件,所以不会编译成dll,但后台逻辑被编译了。
Ⅵ ASP.NET MVC3用到.ashx(动态生成图形)上传到空间商的IIS7服务器上不显示是怎么回事
用@ServerInfo.GetHtml()看一下空间商服务器上的环境跟本地是不是一样
Ⅶ ashx是做什么用的
.ashx 文件用于写web handler的。.ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类,它免去了普通.aspx页面的控件解析以及页面处理的过程。其实就是带HTML和C#的混合文件。
.ashx文件适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。
一般应用较多的是AJAX请求的响应文件,图片的输出,
Ⅷ 安卓手机如何打开.ashx文件
1、先是到百答衡让度中下载一个 visual studio软件,可以下载最新版的或者下载其他的版本,这个可以根据自己的电脑配置清局而定的。
(8)ashx动态编译扩展阅读
ashx文件一般处理程序(HttpHandler)是·NET众多web组件的拦肢一种,ashx是其扩展名。一个httpHandler接受并处理一个http请求,类比于Java中的servlet。
类比于在Java中需要继承HttpServlet类。在net中需要实现IHttpHandler接口,这个接口有一个IsReusable成员,一个待实现的方法ProcessRequest(HttpContextctx) 。
程序在processRequest方法中处理接受到的Http请求。成员IsReusable指定此IhttpHnadler的实例是否可以被用来处理多个请求。
ashx程序适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。
通俗一点来讲,ashx是一般应用程序,用jquery和.NET开发网站,用ashx作为通讯层,jquery用post传参,ashx页面接收参数,然后返回值。浏览页面时是无法看到编写的代码的。
Ⅸ 我代码中修改了ashx如何打补丁
ashx只是一个占位符文件而已,行为都是cs文件修戚拍改的。
还有如果昌仿你的网站与编译的话,你需要替耐仔纤换bin目录下的dll,否则也没效果
Ⅹ iis编译吗
iis编译。根据查询相关公开信息显示塌团陵,ashx等文件中,首次访问,IIS会或返进行动态编译,生成缓存二进制代码文件,这一点与Tomcat等中间件容器类似,目的都是提团戚高后续访问速度。