zoukankan      html  css  js  c++  java
  • java-web 小知识点

    Servlet并发问题

    纯理论:1   合理决定在Servlet中定义变量的作用域类型

                    局部变量(方法中定义)------->每一个线程执行局部变量所在的方法时,在线程堆栈就会创建这个局部变量,线程执行完毕方法,局部变量就over.  多个线程同时执行该局部变量,那么每个线程都拥有自己的局部变量

                实例变量(类中,非方法中)--->每一个类实例都拥有自己的实例变量,实例生命周期,则变量也就over.多个线程同时执行一个实例方法A,若该实例方法A会访问一个实例变量,这么多的线程访问的是同一个实例变量  

                2  多个线程同时访问共享数据而导致并发问题的情况,使用java同步机制对线程进行同步 在Servlet需要执行的方法中添加  synchronized (this)

                3  废弃的SingleThreadModel接口

                       任一时刻,只允许有一个线程执行Servlet中的service()方法,多个用户访问的时候,则会将客户请求被放入等待队列,容器会依次响应队列中的每个客户请求,实际上禁止了多个客户端对一个Servlet的并发访问

                       Servlet容器为每个Servlet创建一个对象池,池中存放了同一个Servlet类的多个实例。若多个用户访问该Servlet,该Servlet会为每一个请求分配一个工作线程,并且从对象池中取出一个空闲的Servlet实例,将它分配给工作线程

                            每个工作线程执行自己的Sevlet实例的service()方法,实际上不同客户端访问的是同一个Servlet类的不同实例

    动态部署文件,修改web代码能够及时响应,并且tomcat在启动的时候要点击的按钮是debug的那个按钮

     <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    			<Context path="" reloadable="true" docBase="D:apache-tomcat-7.0.35webapps"/>
    </Host>

      

     配置log4日志文件输出的位置时

    System.getProperty("user.dir");//项目所在的文件夹下面
    

    模拟多次访问一个页面的时候,要使用类似下面的代码,URL加上参数是不能用模拟Post请求的

    如下代码仅供参考

     URL                     url = new URL("http://localhost:8010/AGFSDataService/servlet/LoginJudge");
     HttpURLConnection	conn = (HttpURLConnection) url.openConnection();
    			conn.setRequestMethod("POST");
    		        conn.setConnectTimeout(10000);//连接超时 单位毫秒
    		         conn.setReadTimeout(2000);//读取超时 单位毫秒
    		         conn.setDoOutput(true);// 是否输入参数
    		        StringBuffer params = new StringBuffer();
    		        // 表单参数与get形式一样
    		        params.append("TxtUserName").append("=").append("1").append("&")
    		              .append("TxtPassword").append("=").append("1").append("&")
    		              .append("choseDate").append("=").append("week");
    

      

  • 相关阅读:
    chrome、firefox、IE中input输入光标位置错位解决方案
    IE兼容opacity
    Linux下redis5的安装及伪分布式集群搭建
    Linux文件编辑命令详细整理
    saltstack
    redis集群
    系统调优
    centos7 telnet 登录升级ssh
    keepalive简单高可用 ha
    docker
  • 原文地址:https://www.cnblogs.com/nauy/p/3845348.html
Copyright © 2011-2022 走看看