Ⅰ 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等中間件容器類似,目的都是提團戚高後續訪問速度。