asp.net实现jsp中servlet效果

 asp.net中的page运行是通过第一次运行是将.aspx页面编译为dll程序集,那么自己编译的dll也可以在浏览器中输出了。
想要编写能够输出的dll,那么主类必须继承IHttpHandler接口,并实现他的IsReusable属性和PrecessRequest(HttpContext context)方法。实例:  
  1.    1. using System;
  2.    2. using System.Collections.Generic;
  3.    3. using System.Text;
  4.    4. using System.Web;
  5.    5.
  6.    6. namespace OutToSS
  7.    7. {
  8.    8.     public class Do : IHttpHandler
  9.    9.     {
  10.   10.         public bool IsReusable
  11.   11.         {
  12.   12.             //放回True则允许在多个线程调用,false则不允许
  13.   13.             get { return true; }
  14.   14.         }
  15.   15.
  16.   16.         public void ProcessRequest(HttpContext context)
  17.   17.         {
  18.   18.             //Response和Request都在context对象中
  19.   19.             HttpResponse res = context.Response;
  20.   20.             res.Write("吾乃无页自显");
  21.   21.         }
  22.   22.     }
  23.   23. }
将以上代码编译为dll,并部署在虚拟目录下的bin目录中,在虚拟目录下建立web.config文件,文件内容如下:
  1. <?xml version="1.0"?>
  2. <configuration>
  3.     <system.web>
  4.         <!--  动态调试编译
  5.           设置 compilation debug="true" 以启用 ASPX 调试。否则,将此值设置为
  6.           false 将提高此应用程序的运行时性能。
  7.           设置 compilation debug="true" 以将调试符号(.pdb 信息)
  8.           插入到编译页中。因为这将创建执行起来
  9.           较慢的大文件,所以应该只在调试时将此值设置为 true,而在所有其他时候都设置为
  10.           false。有关更多信息,请参考有关
  11.           调试 ASP.NET 文件的文档。
  12.     -->
  13.         <compilation defaultLanguage="c#" debug="true"/>
  14.         <!--  自定义错误信息
  15.           设置 customErrors mode="On" 或 "RemoteOnly" 以启用自定义错误信息,或设置为 "Off" 以禁用自定义错误信息。 
  16.           为每个要处理的错误添加 <error> 标记。

  17.           "On" 始终显示自定义(友好的)信息。
  18.           "Off" 始终显示详细的 ASP.NET 错误信息。
  19.           "RemoteOnly" 只对不在本地 Web 服务器上运行的
  20.            用户显示自定义(友好的)信息。出于安全目的,建议使用此设置,以便 
  21.            不向远程客户端显示应用程序的详细信息。
  22.     -->
  23.         <customErrors mode="Off"/>
  24.         <!--  身份验证 
  25.           此节设置应用程序的身份验证策略。可能的模式是 "Windows"、 
  26.           "Forms"、 "Passport" 和 "None"

  27.           "None" 不执行身份验证。 
  28.           "Windows" IIS 根据应用程序的设置执行身份验证 
  29.             (基本、简要或集成 Windows)。在 IIS 中必须禁用匿名访问。
  30.           "Forms" 您为用户提供一个输入凭据的自定义窗体(Web 页),然后 
  31.            在您的应用程序中验证他们的身份。用户凭据标记存储在 Cookie 中。
  32.           "Passport" 身份验证是通过 Microsoft 的集中身份验证服务执行的,
  33.            它为成员站点提供单独登录和核心配置文件服务。
  34.     -->
  35.         <authentication mode="None"/>
  36.         <!--  授权 
  37.            此节设置应用程序的授权策略。可以允许或拒绝不同的用户或角色访问
  38.           应用程序资源。通配符: "*" 表示任何人,"?" 表示匿名
  39.           (未经身份验证的)用户。
  40.     -->
  41.         <authorization>
  42.             <allow users="*"/>
  43.             <!-- 允许所有用户 -->
  44.             <!--  <allow     users="[逗号分隔的用户列表]"
  45.                              roles="[逗号分隔的角色列表]"/>
  46.                   <deny      users="[逗号分隔的用户列表]"
  47.                              roles="[逗号分隔的角色列表]"/>
  48.             -->
  49.         </authorization>
  50.         <!--  应用程序级别跟踪记录
  51.           应用程序级别跟踪为应用程序中的每一页启用跟踪日志输出。
  52.           设置 trace enabled="true" 可以启用应用程序跟踪记录。如果 pageOutput="true",则
  53.           在每一页的底部显示跟踪信息。否则,可以通过浏览 Web 应用程序
  54.            根目录中的 "trace.axd" 页来查看
  55.           应用程序跟踪日志。
  56.     -->
  57.         <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true"/>
  58.         <!--  会话状态设置
  59.           默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
  60.           如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
  61.          若要禁用 Cookie,请设置 sessionState cookieless="true"
  62.     -->
  63.         <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="60"/>
  64.         <identity impersonate="true" userName="administrator" password="84031385"/>
  65.         <!--  全球化
  66.           此节设置应用程序的全球化设置。
  67.     -->
  68.         <globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
  69.         <xhtmlConformance mode="Legacy"/>
  70.             <httpHandlers>
  71.                 <add verb="*" path="serv.aspx" type="OutToSS.Do,OutToSS" />
  72.             </httpHandlers>
  73.         </system.web>
  74.     <appSettings>
  75.         <add key="conn" value="server=192.168.0.199;pooling=false;uid=sa;pwd=sa;database=CITYCZ"/>
  76.     </appSettings>
  77. </configuration>


在system.web节点中添加httphandlers节点,该节点下添加add节点如下
    •  <httpHandlers>
    •       <add verb="*" path="serv.aspx" type="OutToSS.Do,OutToSS" />
    •  </httpHandlers>
接下来打开浏览器,输入虚拟录了地址加上serv.aspx,文字显示了




  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值