关于转发绝对路径
request.getContextPath(获取项目名称)常常用来获取项目的绝对路径
比如说项目名称为wangluochaoshi ,我有一个图片放在了webRoot/img文件夹
网页放在了webRoot/jsp文件夹,
网页中有个图片<img src="../img/logo.png" width="300" height="50" alt="" />(../)表示当前文件夹的上一个文件夹,即jsp的上一个文件夹
这样在浏览器打开jsp页面时候能正常显示<img src="wangshangchaoshi/img/logo.png" />
,如果在servlet中转发定位到这个页面的时候,图片就不能显示,查看地址为<img src="../img/logo.png" width="300" height="50" alt="" />(../)没有起作用。
总结:(../)可能只有在静态页面中能使用
<%String path=request.getContextPath(); %> //获取项目名称
<img src="<%=path%>/img/logo.png" width="300" height="50" alt="" /> 这样子 地址就变成了img src="wangshangchaoshi/img/logo.png" />
报异常“java.lang.IllegalStateException"
req.getRequestDispatcher("/jsp/h_index.jsp").forward(req, resp); 之后要写return;否则报异常“java.lang.IllegalStateException";原因参考http://jorton468.blog.163.com/blog/static/72588135201102441617287/
转发响应页面中文乱码
转发响应页面时要设置响应页面的编码;respst.setContentType("text/html;charset=utf-8");设置响应页面的编码