jsp跳转getRequestDispatcher和sendRedirect的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp跳转getRequestDispatcher和sendRedirect的区别相关的知识,希望对你有一定的参考价值。
dispatcher分发,redirect重定向。重定向会失去请求所带的参数,而dispatcher不会,例如,你request.setAttribute(),在dispatcher之后,request.getParameter还能得到值,但是重定向之后就不可以了 参考技术A 百度搜索脚本之家,有详细的关于jsp跳转getRequestDispatcher和sendRedirect的区别的答案
关于项目在网页中运行部分jsp出现乱码(由request.getRequestDispatcher("XXX.jsp").forward(request, response)造成)
在写jsp的时候发现部分的jsp在浏览器预览时出现乱码,为一堆问号,如图:
当时问了同学,只有部分jsp会出现乱码,因为重新建一个jsp在运行就没有错误,可以显示出来,所以发现是jsp头部的错误,当新建一个jsp把内容复制过去可以正确显示,但当把名字改成需要跳转的jsp时就会出现乱码,所以我才发现是由于调用这个名字的jsp出现了错误即:request.getRequestDispatcher("XXX.jsp").forward(request, response)造成了乱码,解决只需要在servlet的doGet方法里加入 response.setCharacterEncoding("UTF-8");,至于为什么之前的request.setCharacterEncoding("UTF-8");和response会由不一样的效果呢,这是因为request.setCharacterEncoding():是设置从request中取得的值或从数据库中取出的值。而response.setCharacterEncoding()设置HTTP 响应的编码,因此两者作用不一样。
以上是关于jsp跳转getRequestDispatcher和sendRedirect的区别的主要内容,如果未能解决你的问题,请参考以下文章
request.getRequestDispatcher 页面跳转,样式丢失。
在servlet中处理的异常 怎么在jsp页面中打印出这个异常信息?
关于项目在网页中运行部分jsp出现乱码(由request.getRequestDispatcher("XXX.jsp").forward(request, response)造成)