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

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来实现互访。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值