如何使jsp页面自动跳转

来源:百度知道 编辑:UC知道 时间:2024/06/30 10:16:07
我想使已经登录的用户访问不到登录页面,在里面设置一个判断,未登录的用户可以登录,已登录的自动跳转到登陆页面。请问怎么使他自动跳转啊?
我知道要用session,就是不知道那条跳转语句怎么写啊,俺一楼的方法,在jsp中提示request没有sendRedirect()方法啊。还有,一般编程从servlet传递往jsp数据是用session还是用request啊?

登录后在session中保存一个变量,可以设为他的登录名,然后在所有的页面(登录页除外)都包含一个判断页面,这个页面中从session中取出这个变量,如果为null证明没有登录,则调用转向到登录页。可以使用jstl标签,注意要引入标签库。或者直接使用java代码。
登录验证时
request.getSession().setAttribute("username",username);
inc.jsp,所有页面(登录页除外)都包含这个页面

<c:if test="${empty username}">
<jsp:forward page="login.jsp"/>
</c:if>

补充----
我不是说了吗,这样跳转就可以
sendRedirect不是request对象上的,不知道一楼的怎么可能调用request的方法。应该是response的sendRedirect方法。

对于你的第二个问题,答案是最好不要使用session,除非必要。因为服务器的资源是比较宝贵的,如果什么东西都往session放,这样代价是很高的,因为session是一个会话周期,一般是一个浏览器进程或者一定时间,这就会造成大量的数据始终保存在内存中。
一些不必要一直保存的数据可以防止到request中,这样存在的周期就短了

用session来保存用户名,然后你判断,如果没有用户名说明是未登录跳到登陆页面,如果是有用户名跳到相应的页面

用户登陆后 可以将User 对象设置到session里面

登陆页面第一步就要做 session 验证,如果session里面有User对象那么就马上跳转:
if(session.getAttribute("user")!=null)
{
request.sendRedirect("/other.jsp");
return ;
}

登陆信息要保存到