我继承了一个大量使用FilterChain的Struts 1应用程序,我不明白这个极其模糊的代码的好处.
"在Servlet API中,当您想要控制,预处理和/或后处理特定请求时,通常会使用Servlet.但是当您想根据特定条件过滤/修改常见请求和/或响应时,过滤器就更多了适当."
我的应用中的每个请求都基于特定条件,例如商家ID或搜索字词.但似乎将请求放在一整套内容中,这些内容完全隐藏了开发人员试图追踪错误原因的内容,这很可怕.
我们有一个来自生产数据库的数据库转储导入脚本,用于重建我们的沙箱数据库。我们为此使用的语法是mysql -u uname -ppass dbname < prod_db_export.sql. 脚本继续创建第一个表,然后执行以下操作:
LOCK TABLES `ad` WRITE;
/*!40000 ALTER TABLE `ad` DISABLE KEYS */;
/*!40000 ALTER TABLE `ad` ENABLE KEYS */;
UNLOCK TABLES;
Run Code Online (Sandbox Code Playgroud)
表中没有数据,ad因此DISABLE KEYS行后没有导入语句。无论如何,此时导入挂起,当我们查询数据库时,processlist我们会看到如下输出:
| 5116 | uname | localhost | dbname | Field List | 85 | Waiting for table | |
| 5121 | uname | localhost | dbname | Query | 44 | Waiting for table | LOCK TABLES `ad` WRITE |
| …Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码从URL获取JSON字符串:
public static String getStringFromURL(String addr) throws IOException {
ByteArrayOutputStream output = new ByteArrayOutputStream();
URL url = new URL(addr);
org.apache.commons.io.IOUtils.copy(url.openStream(), output);
return output.toString();
}
Run Code Online (Sandbox Code Playgroud)
我想确保如果"addr"页面由于任何原因失败,这不会挂起.我不希望它带来我们的服务器或任何东西.我们开始研究java.net.URL如何打开连接,并且无法从Javadoc中获得太多信息(我们使用的是1.5).任何想法或内部知识将不胜感激.如果你能引用消息来源,那就更好了.谢谢!
我的call()方法的返回值List<Person>。MyCallable 类如下所示:
public class MyCallable implements Callable<List<Person>> {
public List<Person> call() throws Exception {
...
return list;
}
public MyCallable(List<Account> accountList) {
super();
}
}
Run Code Online (Sandbox Code Playgroud)
下面是我在 CallableFuture 类中编写的代码:
ExecutorService executor = Executors.newFixedThreadPool(NTHREDS);
List<Future<List<Person>>> list = new ArrayList<Future<List<Person>>>();
for (int i = 0; i < 20; i++) {
Callable<List<Person>> worker = new MyCallable(accountList);
Future<List<Person>> submit = executor.submit(worker);
for(Future<List<Person>> :list){
//list.add(submit);
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道如何迭代list并添加submit到它。我这样做对吗?
java ×3
concurrency ×1
import ×1
json ×1
list ×1
locking ×1
mysql ×1
networking ×1
servlets ×1
url ×1