servlet 中全局变量的使用

在servlet中定义全局变量的时候,开发者最关心的就是多用户同时操作是,servlet是单例还是多例了,多例的话,全局变量没有任何问题,如果是单例的话,那么全局变量的值就会影响到其他用户。servlet是单例多线程。

(网上对于servlet是否是单例多例的说法:servlet 常用的两种有在web.xml 中声明,以及实现SingleThreadModel方式。web.xml 里声明几次,就会有几个实例;SingleThreadModel:官方已经废弃,最多有20个实例);

下面说说单例多线程中 全局变量的使用:个人用的最多的就是 ThreadLocal,用ThreadLocal 来定义变量,这个相当于在线程级别定义了一个变量,实际上就是一个map对应的threadId:value。

示例:public class Th{

ThreadLocal<String> threadLocalString =new ThreadLocal<>(){

  public String initialValue(){

    return "";

  }

  };

  private void main([] args){

    Th th=new Th();

    Thread a = new Thread(th);

    Thread b = new Thread(th);

    Thread c = new Thread(th);

  }

}

原文地址:https://www.cnblogs.com/lavenderflow/p/8290206.html

时间: 2024-08-28 03:52:10

servlet 中全局变量的使用的相关文章

Jsp九大内置对象与servlet中java对象

request对象 : getParameter(String name)获取表单提交的数据 getParamegerNames() 获取客户端提交的所有参数名 getAttribute(String name)获取name 指定的属性值 getAttributeNames 获取request对象所有属性的名称集合 getSession(Boolean create) 获取HttpSession对象 response 对象:对象用于对客户端的请求作出动态的响应,向客户端发送数据  getChar

Servlet中保存的cookie值读取不到

在设计登录时记住密码功能时,很多时候回使用cookie,在Servlet中保存cookie时,再次访问登录页面,没有读取到保存的cookie值,代码如下: 1 Cookie idCookie = new Cookie("id",String.valueOf(user.getId())); 2 Cookie nameCookie = new Cookie("username",URLEncoder.encode(user.getName(), "utf-8&

JSP+Servlet中使用jspsmartupload.jar进行图片上传下载

JSP+Servlet中使用cos.jar进行图片上传 upload.jsp <form action="FileServlet" method="post" enctype="multipart/form-data"> <input type="file" name="myfile"> <input type="text" name="cmt&q

Servlet中service方法

在学习Servlet的过程中,我们大多时候编码都是直接继承HttpServlet这个类,并且重写doGet ,doPost,但是查看Api时我们会发现Servlet接口 ,GenericSevlet抽象类 以及HttpServlet类中都有service方法,那么为什么我们继承HttpSevlet类时不要重写service 而要重写doGet doPost呢?service的作用是什么捏?? 正如上文中所说的,Servlet中,service方法是一直存在的,因为最高层的接口Servlet(像H

Servlet中读取参数的几种方式

为每一Servlet设置初始化参数 可以为每一个Servlet在对应的web.xml中的Servlet节点下编写初始化参数,格式如下: <init-param> <param-name>userName</param-name> <param-value>admin</param-value> </init-param> 然后在servlet中用如下代码获取相应的参数: ServletConfig config = this.getS

jsp/servlet中的编码问题

首先声明以下只是我个人的看法,有部分观点与网上人云亦云的观点不一样,不过凡事必恭亲,我还是相信自己测试的结果 推荐一个很好地URL编码详解http://www.ruanyifeng.com/blog/2010/02/url_encoding.html 与网上的共识是 JSP中 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"

转: servlet中的service, doGet, doPost方法的区别和联系

大家都知道在javax.servlet.Servlet接口中只有init, service, destroy方法 但是我们在继承HttpServlet的时候为何一般重写doGet和doPost方法呢 下面我们看一下Servlet源代码: 注意: JDK只是定义了servlet接口,而实现servlet接口的比如tomcat, jboss等服务器 下面我们找到tomcat源代码, 可以到官网下载, 目前最新版本是7.0.53 找到javax.servlet.http.HttpServlet类, 下

servlet中service doGet doPost 的关系

在servlet中默认情况下,无论你是get还是post 提交过来都会经过service()方法来处理,然后转向到doGet 或是doPost方法,可以看HttpServlet 类的service方法: protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String method = req.getMethod(); if(

AJAX POST请求中參数以form data和request payload形式在servlet中的获取方式

HTTP请求中,假设是get请求,那么表单參数以name=value&name1=value1的形式附到url的后面,假设是post请求,那么表单參数是在请求体中,也是以name=value&name1=value1的形式在请求体中.通过chrome的开发人员工具能够看到例如以下(这里是可读的形式,不是真正的HTTP请求协议的请求格式): get请求: RequestURL:http://127.0.0.1:8080/test/test.do?name=mikan&address=