`
wangfu_02
  • 浏览: 71920 次
社区版块
存档分类
最新评论

java中实现.net中HttpContext.Current的思路

    博客分类:
  • java
阅读更多
由于使用.net的时间也比较长,在.net中有一个全局的上下文环境,HttpContext.Current。一些线程内使用的内容都可以基于HttpContext.Current保存和获取,并且每个线程中都保存自己的数据,彼此不冲突。

但java中本身不存在这么一下全局的上下文对象。所以就想在java中实现这么一个上下文。

主要是想通过java中的ThreadLocal来实现。ThreadLocal是threadlocalvariable(线程局部变量)。。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。因以可以写一个filter,拦截所有的action请求,但filter中创建一个新的ThreadLocal对象,然后把相关的request,response等相关的线程内需要共享的信息通过ThreadLocal.set方法进行保存,在使用的时候通过ThreadLocal.get方法进行获取。就相当于模拟实现了.net的HttpContext.Current.

分享到:
评论

相关推荐

    基于fileuploader异步文件上传的ASP.NET端代码示例

    Ajax uploader可以完成在FF3.6+, Safari4+,Chrome中使用XHR达到多文件上传,并提供进度条功能...作者尝试了一下在C#端接收文件,HttpContext.Current.Request.Files.Count总是等于0,经过不懈不利,终于找到解决方案。

    安卓开发-android与asp.net中的一般处理程序ashx进行交互.zip.zip

    在C#代码中,你可能会使用`HttpContext.Current.Request`和`HttpContext.Current.Response`对象来获取请求数据和构造响应。 注意:为了提高性能和用户体验,考虑使用异步方式处理网络请求,例如使用Android的...

    HttpModule实现同时一人在线.rar

    这可以通过检查`HttpContext.Current.User.Identity.IsAuthenticated`属性来实现。如果用户已经认证并且我们希望限制并发访问,我们可以在全局存储(如内存缓存、数据库或文件系统)中存储当前在线用户的标识。如果...

    Session Application Cookie ViewState用法

    - 在.NET Framework 中,可以使用 `HttpContext.Current.Session` 来存取Session变量。 - 在Java中,可以通过 `HttpServletRequest.getSession()` 方法来获取或创建一个Session对象。 #### 2. Application ...

    JAVA源代码.pdf

    5. 文件路径处理:通过`HttpContext.Current.Server.MapPath(".")`获取当前Web应用程序的根路径,然后拼接配置文件中的数据库路径(MdbPath),这是在Web开发中常见的文件路径处理方式。 6. Cascading Style Sheets...

    CAS 单点登录安装笔记4 -- asp.net client端的设置

    此外,我们还需要创建一个`CasPrincipal`类,继承自`System.Security.Principal.IPrincipal`,用于解析CAS返回的用户信息,并将其绑定到`HttpContext.Current.User`,以便在应用程序中使用。 最后,别忘了在Web....

    asp,asp.net,php,jsp下的301转向代码

    但如果没有此功能,以上各语言的代码片段则提供了直接在页面或脚本中实现301重定向的方法。 在进行301重定向时,要确保正确地处理URL的协议(HTTP或HTTPS)、域名和路径,以避免重定向错误。同时,注意在实施301...

    asp.net内置对象

    HttpContext.Current.Application["VisitCount"] = (int)HttpContext.Current.Application["VisitCount"] + 1; // 获取Application变量 int visitCount = (int)HttpContext.Current.Application["VisitCount"]; ```...

    Android上传图片到服务器

    if (HttpContext.Current.Request.Files.Count > 0) { var file = HttpContext.Current.Request.Files[0]; if (file.ContentLength > 0) { string filePath = Path.Combine(Server.MapPath("~/uploads/"), ...

    获取当前系统用户角色信息

    - 在ASP.NET中,`HttpContext.Current.User`对象包含了`Identity`属性,可以通过这个属性获取用户角色。 - 对于PHP,可以使用`$_SESSION`全局变量或`session_start()`来获取已登录用户的会话数据,包括角色信息。 ...

    C#生成带Log的二维码图片.pdf

    同时,代码中使用了System.Web.HttpContext.Current.Server.MapPath来将相对路径转换为服务器上的绝对路径,以确保能正确地访问Logo图片。 3. 转换和调整Logo图片尺寸:为了确保Logo能够适应二维码的大小,需要将...

    asp.net及javascript判断是否手机访问的方法

    本文实例讲述了asp.net及javascript判断是否手机访问的方法。... HttpContext context = HttpContext.Current; if (context != null) { HttpRequest request = context.Request; if (request.Browser.IsMobil

    response redirect 新窗口大开网页

    本文将详细介绍如何利用ASP.NET中的`Response.Redirect`方法结合客户端脚本技术来实现这一功能,并探讨几种不同的实现方式。 #### 一、基本概念介绍 1. **Response.Redirect**: - `Response.Redirect`是ASP.NET...

    连接不同的数据库方法

    System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["dbPath"]) + ";"; ``` 2. **SQL Server数据库连接** SQL Server支持多种连接方式。这里我们展示两种常见方法: - 方法1...

    C#使用zXing插件生成二维码

    string savePath = HttpContext.Current.Server.MapPath(path); if (!Directory.Exists(savePath)) { Directory.CreateDirectory(savePath); } qrCode.Save(savePath + "qr.Jpeg", ImageFormat.Png); } ``...

    JQuery上传插件Uploadify使用详解.pdf

    string uploadPath = HttpContext.Current.Server.MapPath(context.Request["folder"]) + "\\"; // 检查并创建上传目录 if (!Directory.Exists(uploadPath)) { Directory.CreateDirectory(uploadPath); } /...

    ASP.net基础知识之常见错误分析

    在某些情况下,可以使用`using (context = System.Web.HttpContext.Current)`来获取当前的`HttpContext`对象。这可以简化代码,同时保持代码的整洁性和易读性。 #### 二十、编译输出文件的管理 为了提高代码的...

    关于微信小程序获取小程序码并接受buffer流保存为图片的方法

    System.IO.File.WriteAllBytes(HttpContext.Current.Server.MapPath("~/WxCode.jpg"), tt); // ...其他逻辑... } // ... } // 将Stream转换为byte数组 private static byte[] StreamToBytes(Stream stream) { ...

Global site tag (gtag.js) - Google Analytics