多个请求使用同一个Servlet
多个请求使用同一个Servlet可以采用以下两种方案
第一种方案:在url加上入参method,根据method进行分发
第二种方案:web.xml使用*.do来匹配Servlet,根据 request.getServletPath()然后反射调用方法
为什么会无法重复读取呢?
以tomcat为例,在进行请求体读取时实际底层调用的是org.apache.catalina.connector.Request的getInputStream()方法,而该方法返回的是CoyoteInputStream输入流
1 | public ServletInputStream getInputStream() throws IOException { |
在使用CoyoteInputStream进行读取时
1 | public int read(byte[] b, int off, int len) throws IOException { |
而流读取完毕都会进行close,这个流close之后,close状态就置为了true,所以导致流无法进行二次读取
异常报错:org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session:
解决方案:
应该是tomcat以前部署的项目有残留,删除掉webapps里面的其他项目,删除掉work文件夹下Catalina下localhost文件夹里其他的项目,删除掉conf文件夹下Catalina下localhost文件夹下的其他项目配置,最后如果还是不行,查看一下conf下的server.xml里是不是有其他项目残留的配置
测试页面,无需关心
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
错误的文字内容:Diagnostic:Exception in windowonload: Error An error has occurrediSPlugin.3005StackTrace:Error An error has occurredJSPlugin.3005 at getString