您的位置:首页 > Web前端 > JavaScript

jsp中Servlet处理请求后转到一个jsp页面的解决办法

2016-04-13 19:59 519 查看
jsp中的Servlet处理请求后一般都会做请求重定向或转发的处理,很多初学者会碰到很多问题,通过本人的总结,给出以下解决办法:

1.重定向:一般我们要根据我们的Web应用名称来写,如重定向到WebRoot根目录下的login.jsp,我们可以这么写,response.sendRedirect("/Web应用名称/login.jsp");但是,这样写有一个bug,就是当你改变Web应用名称的时候,跳转就失败了,所以Web应用名称不能写死,我们知道,request.getContextPath()能够获取到Web应用的名称,所以可以这样写response.sendRedirect(""+request.getContextPath()+"/login.jsp");

2.请求转发:请求重转发就比较简单,用

request.getRequestDispatcher("/index.jsp").forward(request, response);就行

3.还有一种情况,当一个Servlet处理请求后,我们可能还要让这个Servlet再连接到另外一个servlet,这时我们可以用javascript技术,例如:

response.setContentType("text/html;charset=utf-8");//这里是防止出现乱码,很重要的
response.getWriter().print( " <script> location.href= '"+request.getContextPath()+"/servlet/xxxxxxServlet'; </script> ");

4.还有一种情况,当一个jsp页面是由一个servlet请求转发过来的,那么在这个jsp页面中如果想去访问另外一个servlet,此时,只需要这样写:<script> location.href= 'xxxxxxServlet'; </script> "这样就ok了。

这里还有很重要的一点,由于WEB-INF目录下的所有文件是受保护的,所以在WEB-INF目录下的文件要互访的话只能同过ssh中的技术实现,否则只能通过servlet来实现互访。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: