读书人

在jsp中如何实现登录后自动跳转到登

发布时间: 2012-09-10 22:20:13 作者: rapoo

在jsp中怎么实现登录后,自动跳转到登录前正浏览的页面

在jsp中怎么实现登录后,自动跳转到登录前正浏览的页面?就像csdn的一样,不管你从哪能个页面登录,成功登录后会自动跳转回那个页面。解决方法一:登录处理后,返回如下内容:?? 
?2?PrintWriter?out?=?response.getWriter();
?3?
?4?out.println("<!DOCTYPE?HTML?PUBLIC?""-//W3C//DTD?HTML?4.01?Transitional//EN"">");
?7?
?8?out.println("<HTML>");
?9
11?
12?out.println("??<BODY>");
13?
16?out.println("<script>history.go(-1);history.go(0);</script>");
19?
20?out.println("??</BODY>");
21?
22?out.println("</HTML>");
23?
24?out.flush();
25?
26?out.close();
27?
28?return?null;?
29?
解决方法二:????1?String?referer?=?req.getHeader("Referer");
2 resp.sendRedirect(referer);
3 return;
4?
5?
上面两种方法不可取是因为,如果用户登录失败,再次登录的话就会出现登录后返回到登录的错误。第三种:把你要在跳转时需要保存的信息存放在session变量中,登录后清除这个session。可行。需要登录操作的页面上面添加:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1?<%
2?????if(session.getAttribute("party")==?null){
3?????????if(null?!=?request.getQueryString())
4?????????????session.setAttribute("redirectUrl",?request.getRequestURL().append("?").append(request.getQueryString()).toString());
5?????????else
6?????????????session.setAttribute("redirectUrl",?request.getRequestURL().toString());
7?????????response.sendRedirect(request.getContextPath()?+??"/loginto");
8?????}
9?%>
在登录处理页面:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1?String?redirectUrl?=?(String)req.getSession().getAttribute("redirectUrl");
2?????????if(StringUtils.isValid(redirectUrl)){
3?????????????req.getSession().removeAttribute("redirectUrl");
4?????????????resp.sendRedirect(redirectUrl);
5?????????}
第四种方法:写一个servlet会话判断类,如果在线就继续执行,不在线则提示登录。所有的需要在线操作的servlet都集成此类,这样就不需要上面那么在每个页面写上这些代码了,可以集中控制。这种方式比较完整。
HttpSession?session?=?request.getSession();

if?(session.getAttribute("person")?==?null)?
{
???? if?(null?!=?request.getQueryString())
????????????????session.setAttribute("redirectUrl",?request.getRequestURL().append("?").append(request.getQueryString()).toString());
???? else
????????????????session.setAttribute("redirectUrl",?request.getRequestURL()
????????????????????????.toString());
???? response.sendRedirect(request.getContextPath()?+?"/login.jsp");
???? return?null;
?}

return?process(config,?request,?response);

读书人网 >JavaScript

热点推荐