0
点赞
收藏
分享

微信扫一扫

关于Servlet中客户端重定向与thymeleaf渲染模板页的冲突问题

巧乐兹_d41f 2022-04-14 阅读 62
javatomcat

在实现展示Servlet上传的文件功能时,设计为当用户成功登录系统时,自动跳转到FileslistServlet,在此Servlet中通过new一个file实例得到用户名下的文件目录,再通过listfles方法遍历得到用户名下的所有目录,并通过setAttribute方法传递file对象和用户名给html页面,并通过getName方法获取文件名,同时通过super.processTemplate("listfiles", request, response)渲染模板页listfiles.html,最后通过客户端重定向使网页跳转到listfiles.html

结果运行的时候发现,选择文件展示页面一片空白,进行调试,断点设在重定向上,即sendRedirect方法那一行,文件展示页面竟然能正常展示用户名和文件列表了,说明程序确实执行到了这一步。再通过调试一步步执行,发现报错如下:

java.lang.IllegalStateException: 提交响应后无法调用sendRedirect()

于是发现原来是processTemplate时已经将request和response响应提交了,无法再调用senRedirect方法。同时发现,删除重定向语句后,客户端仍然会显示listfiles.html页面,但地址显示依旧是Servlet,不会变化。最终,文件展示功能完美实现了,但不足的是客户端地址无法变化,这个问题暂且留待以后优化。

举报

相关推荐

0 条评论