ashx
与Java Servlet类似,不用涉及到aspx个页面。ashx是asp的基本处理程序。aspx继承自ashx处理程序的。
.ashx文件适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。
创建ashx程序
Visual Studio中【添加新项】对话框-->【web】菜单-->【一般处理程序】。
注意:表单提交一定要有name
提交到服务器的表单元素,一定要有name属性。否则浏览器不会提交表单元素的值。
由于servlet和struts2获取请求参数时都会使用浏览器端的name属性。所以之前没有注意过这个问题。
说明:
新建的一般处理程序。会有WebService的字符在类之前。但没有引入命名空间。显示错误。
在不使用WebService情况下,可以删掉。也可以引入命名空间,消除错误。
例:
1.HTML表单
<html>
<head><title></title></head>
<body>
<form action="Hello.ashx">
姓名:<input type="text" name="UserName" /><input type="submit" value="提交" />
</form>
</body>
</html>
2.ashx处理程序
//Hello.ashx文件
using System;
using System.Web;
public class Hello:IHttpHandler{
public void ProcessRequest(){
context.Response.ContentType="text/html";
string userName=context.Request[UserName];
if(string.IsNullEmpty(userName)){
context.Response.Write("Welcome:"+userName);
}else{
context.Response.Write("Welcome");
}
}
public bool IsReusable{
get{
return false;
}
}
}
HttpHandler实现文件下载
如果HttpHandler输出的是html,txt,jpeg等类型的信息,那么浏览器会直线显示。如果希望弹出保存对话框,则需要添加Header:
string encodeFileName=HttpUtility.UrlEncode("下载数据.xls");
Response.AddHeader("Content-Disponsition",string.Format("attachment;filename=\"{0}\"",encodeFileName));
说明:filename表示默认文件名。
ContentType:
excel:application/x-excel
任意文件下载:application/x-stream
NPOI创建Excel
1.把NPOI拷贝到项目中。
即在应用程序中建立一个文件夹(如lib),拷贝NPOI的所有dll和其他文件到这个文件夹中。
2.引用文件夹中的dll
右击【引用】-->【添加引用】-->【浏览】
3.新建一般处理程序。
using System;
using System.Web;
public class Hello:IHttpHandler{
public void ProcessRequest(){
context.Response.ContentType="application/x-excel";
string encodeFileName=HttpUtility.UrlEncode("动态数据.xls");
Response.AddHeader("Content-Disponsition",string.Format
("attachment;filename=\"{0}\"",encodeFileName));
HSSFWorkbook=new HSSFWorkbook();
HSSFSheet sheet = workbook.CreateShet();
HSFRow = sheet.CreateRow(0);
HSSF Cell1=row.CreateCell(0,HSSFCell.CELL_TYPE_STRING);
cell1.SetCellValue("hello");
//row.CreateCell(0,HSSFCell. CELL_TYPE_STRING ).SetCellValue("Hello");
row.CreateCell(1,HSSFCell.CELL_TYPE_NUMERIC).SetCellValue(3.14);
wookbook.Write(context.Response.OutpouStream);
}
public bool IsReusable{
get{
return false;
}
}
}
注意:能直接将生产的文件以流的形式输出给浏览器,就不要生产临时文件。
分享到:
相关推荐
ASP.NET中使用一般处理程序ashx作为后台处理实现响应get和post请求示例代码.zip
Android应用源码之android与asp.net中的一般处理程序ashx进行交互_ashx
android与asp.net中的一般处理程序ashx进行交互.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
winform上传文件,带进度条,一般处理程序ashx接收,传有参数,源代码例子下载,网上找了好多,都不能用,木有办法只能自己写一个了。
客户端使用uploadify插件进行上传文件、图片。服务端使用c#进行开发设计,使用ashx一般处理程序来接收文件。
android与asp.net中的一般处理程序ashx进行交互.rar
主要介绍了*.ashx文件不能访问Session值的解决方法,只需在头部引用一个命名空间即可解决问题,非常实用,需要的朋友可以参考下
在一般处理程序(ashx)中验证用户是否登陆、是否对当前操作有读、写、删、改权限的基类。在其他ashx中只需要继承相应权限的基类,无需另写代码实现。
android与asp.net中的一般处理程序ashx进行交互.zip
android与asp.net中的一般处理程序ashx进行交互
Android应用源码开发Demo,主要用于毕业设计学习。
3、程序中通过使用jQuery的Ajax方式与ashx(一般处理文件)进行的后台通信。极大的简化了JavaScript的繁琐性,提高了JavaScript代码编写的便捷性。 4、本程序中数据库包含最全的全国省市区信息,做项目的话可以直接...
安卓Android源码——与asp.net中的一般处理程序ashx进行交互.zip
android与asp.net中的一般处理程序ashx进行交互.zip项目安卓应用源码下载android与asp.net中的一般处理程序ashx进行交互.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司...
Android应用源码之android与asp.net中的一般处理程序ashx进行交互.zip
安卓Android源码——android与asp.net中的一般处理程序ashx进行交互.rar
安卓Android源码——android与asp.net中的一般处理程序ashx进行交互.zip
安卓开发-android与asp.net中的一般处理程序ashx进行交互.zip
Android高级应用源码-android与asp.net中的一般处理程序ashx进行交互.zip
Android应用源码之android与asp.net中的一般处理程序ashx进行交互.zip项目安卓应用源码下载Android应用源码之android与asp.net中的一般处理程序ashx进行交互.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2....