httphandler配合URLRewrite做url参数隐藏

global.asax.cs文件
        protected void Application_BeginRequest(Object sender, EventArgs e)
         {
              try
              {
                   string path=Server.MapPath("~/ReWriter.config");
                   XPathDocument myXPathDocument = new XPathDocument(path);
                   XPathNavigator myXPathNavigator = myXPathDocument.CreateNavigator();
 
                   XPathNodeIterator myXPathNodeIterator =  myXPathNavigator.Select ("//rule");
                   System.Text.RegularExpressions.Regex oReg;
                   string ReWriteUrl;
 
                   while (myXPathNodeIterator.MoveNext())
                   {
                       //oReg=new Regex(oNode.SelectSingleNode("url/text()").Value);
                       XPathNavigator nav2 = myXPathNodeIterator.Current.Clone();
                       string oldString="",newString="";
                       XPathNodeIterator it2 = nav2.Select("old");
                       while(it2.MoveNext())
                       {
                            oldString = it2.Current.Value;
                            break;
                       }
                       it2 = nav2.Select("new");
                       while(it2.MoveNext())
                       {
                            newString = it2.Current.Value;
                            break;
                       }
                       if(oldString != "" &&  newString != "")
                       {
                                 oReg = new System.Text.RegularExpressions.Regex(oldString);
                                 if(oReg.IsMatch(Request.Url.ToString()))
                                 {
                                     ReWriteUrl = oReg.Replace(Request.Url.ToString(),newString);
                                     HttpContext.Current.RewritePath(ReWriteUrl);
                                     break;
                                 }
                       }
                   }
                  
              }
              catch
              {
              }
 
         }
ReWriter.config内容(配制ReWriter信息)
<?xml version="1.0" encoding="utf-8" ?>
<ReWriterUrls>
          <rule>
               <old>(.*)/TestUrlRe/file(.*)/(.*)/.html</old>
               <new>../WebForm1.aspx?id=$2&amp;type=$3</new>
          </rule>
          <rule>
               <old>(.*)/TestUrlRe/t(.*)/(.*)/.html</old>
               <new>../WebForm1.aspx?tid=$2&amp;ttype=$3</new>
          </rule>
</ReWriterUrls>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一个投票小程序,可以利用 Java 和 HTML/CSS/JavaScript 来实现。以下是一个简单的示例: 1. 首先,创建一个 HTML 页面,包含投票选项和投票按钮。例如: ``` <!DOCTYPE html> <html> <head> <title>投票小程序</title> </head> <body> <h1>请选择你喜欢的编程语言:</h1> <form> <input type="radio" name="vote" value="java"> Java<br> <input type="radio" name="vote" value="python"> Python<br> <input type="radio" name="vote" value="javascript"> JavaScript<br> <input type="submit" value="投票"> </form> </body> </html> ``` 2. 在 Java 中编写一个简单的 HTTP 服务器,用来处理用户提交的投票信息。例如: ``` import java.io.IOException; import java.io.OutputStream; import java.net.InetSocketAddress; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; public class VoteServer { public static void main(String[] args) throws Exception { HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0); server.createContext("/vote", new VoteHandler()); server.setExecutor(null); server.start(); System.out.println("服务器已启动"); } static class VoteHandler implements HttpHandler { public void handle(HttpExchange t) throws IOException { String response = "感谢您的投票!"; String query = t.getRequestURI().getQuery(); if (query != null && query.contains("vote=")) { String vote = query.split("=")[1]; // TODO: 将投票信息保存到数据库中 } t.sendResponseHeaders(200, response.length()); OutputStream os = t.getResponseBody(); os.write(response.getBytes()); os.close(); } } } ``` 3. 在 HTML 页面中添加 JavaScript 代码,用来向服务器发送投票请求。例如: ``` <script> const form = document.querySelector('form'); form.addEventListener('submit', (event) => { event.preventDefault(); const vote = document.querySelector('input[name="vote"]:checked').value; const xhr = new XMLHttpRequest(); xhr.open('GET', `/vote?vote=${vote}`); xhr.onload = () => { if (xhr.status === 200) { alert(xhr.responseText); } else { alert('投票失败'); } }; xhr.send(); }); </script> ``` 这样,用户在页面中选择一个编程语言并点击投票按钮后,JavaScript 代码会向服务器发送一个 GET 请求,服务器会处理请求并保存投票信息。最后,页面会弹出一个感谢投票的提示框。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值