php中怎么定义索引?
通常出现未定义的索引问题是由于数组没有这个值造成的,数组分为关联数组和索引数组,索引数组是数字下标;关联数组是键值下标。 $POST['id']之所以报未定义索引是因为$POST这个数组里没有包含下标键值为id的值。 解决办法: 判断数组中是否包含下标键值为id的值,如果没有,则返回错误信息,如何判断呢,最简单的方法就是用函数isset来判断,如isset($POST['id']),存在则返回true,反之则为false; 三元判断法,不存在给一个默认的数值, 如 $POST['id'] = isset($POST['id'])?$POST['id']:"1"; PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。
jsp获得HTTP通过POST方式的参数?
如果你在URL中使用同名的参数(应避免这种情况),就会传两个到服务器端这种情况可以用request.getParameterValues得到一个数组,第一个是URL里面的参数值,第二个是表单里面的值
如何优雅的使用和理解线程池?你怎么看?
要把java线程池理解好并且用好,需要把并发编程的基础知识掌握好,并且把线程池的所有API的官方文档仔细阅读研究一遍。这里把优雅的使用线程池的要点总结如下:
1. 弄明白你要用线程池做什么。例如你的目的是把同步API改造为异步,还是想要并发请求多个外部服务,还是减少线程的创建和销毁以处理用户请求等。
2. 根据你的实际项目需求,配置好线程池的参数,具体包括corePoolSize, maximumPoolSize, 阻塞队列, keepAliveTime,线程工厂 和 饱和策略(或者说是RejectedExecutionHandler)。
3. 根据你的应用特点部署线程池。有的后台服务应用适合在启动的时候一次性创建好线程池,在应用的执行过程不再修改线程池。有的时候,应用适合临时创建一个线程池并且把任务提交进去,用完之后立即销毁。
4. 当你决定不再使用线程池之后,应该调用shutdown()以优雅的关闭线程池。shutdown可以保证之前已经提交到线程池中的任务不会被丢弃,保证了数据安全。
5. 当调用了shutdown之后,线程池此时已经可能在执行任务,只是关闭了提交任务的入口。如果需要等待线程池完全终止,需要调用awaitTerminate以等待线程池把队列中的任务全部处理完成并且清理完成,然后才返回。awaitTerminate成功返回了,线程池算是真的清理干净了。
总结一下,线程池按照创建(构造方法)、提交任务(execute)、清理(shutdown),等待清理结束(awaitTerminate)的顺序调用API,这样使用线程池才算优雅。要想用好java线程池,最大化优化程序的性能可以参考我公众号里的分析文章。

