index.jsp: <head>
<%
//当点击“查看我的订单”链接时候会先进入BuCarServlet,然后会判断登录没有,如果没登录, //isLogin 会有个值“false”,后面的代码里有。
//存储在session里的loginuser用来存储当前登录的用户。 String islogin = null;
UserInfo loginUser = null;
if(session.getAttribute("isLogin") != null)
{
islogin = session.getAttribute("isLogin").toString();
} //用户登录之后从session里面判断
if(session.getAttribute("loginUser") != null)
{
loginUser = (UserInfo)session.getAttribute("loginUser");
}
%> <script type="text/javascript">
var isLogin = <%=islogin%>;
var loginList = <%=loginUser%>;
function login()
{
/*只有在isLogin=="false" 才显示"请您先登录",判断出了该用户没有登录*/
if(isLogin == false && loginList == null)
{
showLogin();
}
else
{
document.location.href = index.jsp;
}
} function showLogin()
{
alert('请您先登录!');
document.location.href="login.jsp";
}
</script>
</head> <body onload="login()">
<a href="seeOrderServlet">查看我的订单</a>
//以下代码省略
</body>
seeOrderServlet.java的代码: //就是做个判断,如果没登录 把isLogin的值设置成"false",这是不能跳入到order.jsp,直接跳回主页。 if(session.getAttribute("loginUser") == null)
{
session.setAttribute("isLogin","false");
response.sendRedirect("index.jsp");
return;
}
else
{
response.sendRedirect("order.jsp");
}
登录页面 login.jsp: <%
session.setAttribute("isLogin","true");
%> <a href="index.jsp">返回首页</a>
<table>
//登录的地方省略了...
</table>
我想问的是,我在login.jsp里把isLogin的值给设置成true了,为了返回主页的时候不再alert('请您先登录!')。这个时候我点击“返回首页”链接的时候确实不显示"请您先登录!"了,但如果我不点击链接。而直接鼠标右键返回的时候 会一直弹出alert('请您先登录!'),我想问大家这是为什么,我应该怎么解决?
<%
//当点击“查看我的订单”链接时候会先进入BuCarServlet,然后会判断登录没有,如果没登录, //isLogin 会有个值“false”,后面的代码里有。
//存储在session里的loginuser用来存储当前登录的用户。 String islogin = null;
UserInfo loginUser = null;
if(session.getAttribute("isLogin") != null)
{
islogin = session.getAttribute("isLogin").toString();
} //用户登录之后从session里面判断
if(session.getAttribute("loginUser") != null)
{
loginUser = (UserInfo)session.getAttribute("loginUser");
}
%> <script type="text/javascript">
var isLogin = <%=islogin%>;
var loginList = <%=loginUser%>;
function login()
{
/*只有在isLogin=="false" 才显示"请您先登录",判断出了该用户没有登录*/
if(isLogin == false && loginList == null)
{
showLogin();
}
else
{
document.location.href = index.jsp;
}
} function showLogin()
{
alert('请您先登录!');
document.location.href="login.jsp";
}
</script>
</head> <body onload="login()">
<a href="seeOrderServlet">查看我的订单</a>
//以下代码省略
</body>
seeOrderServlet.java的代码: //就是做个判断,如果没登录 把isLogin的值设置成"false",这是不能跳入到order.jsp,直接跳回主页。 if(session.getAttribute("loginUser") == null)
{
session.setAttribute("isLogin","false");
response.sendRedirect("index.jsp");
return;
}
else
{
response.sendRedirect("order.jsp");
}
登录页面 login.jsp: <%
session.setAttribute("isLogin","true");
%> <a href="index.jsp">返回首页</a>
<table>
//登录的地方省略了...
</table>
我想问的是,我在login.jsp里把isLogin的值给设置成true了,为了返回主页的时候不再alert('请您先登录!')。这个时候我点击“返回首页”链接的时候确实不显示"请您先登录!"了,但如果我不点击链接。而直接鼠标右键返回的时候 会一直弹出alert('请您先登录!'),我想问大家这是为什么,我应该怎么解决?
解决方案 »
- Socket读取数据问题
- action 传递变量参数
- 100分!!! 关于<%%>的代码,用struts2.0的标签该如何实现? 解决问题立马给分!!!
- Ajax Tags导致浏览器框架空值失效,含泪求解决方法
- 关于通讯录的问题
- 是JAVA高手的且写过大型计数器系统的请来拿分-(希望写过大型计数器的朋友进入)》》》》》
- [转载&改编]一步一步开发Spring Framework MVC应用程序-5(Intellij IDEA版)
- 如何在win98下运行jboss3.2.5??100分送
- spring的controller和servle有关系吗?
- 运行spring mvc 时报出的异常
- 如何提高javaEE的能力
- 谁有javaeye.com的账户 帮忙下个东西 谢谢了
if(isLogin == false && loginList == null)下面是否没加“”啊
想要解决这个问题:
1.在弹出ALERT("你未登陆后"),将标识改成true; 这样后退的时候就不会有再弹出这种事了,但不是很好。
2。在页面ONLOAD时候用AJAX调后台,重新给ISlOGIN赋值,这样就不会有问题。这种方式最好。
3。在页面中把ALERT语句放到一个<SPAN>里,不要用弹出对话框,这样,后退什么的不会有影响。暂时没有像到其他方法。
解决办法:别在index.jsp上写js代码判断用户是否登陆,主流解决方案应该写个session过滤器去判断session是否存在package filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
//是否登陆进行过滤
public class SessionFilter implements Filter {
public void init(FilterConfig config) throws ServletException {
System.out.println("过滤器初始化!");
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession();
// 如果session不为空,则跳转到其它页面,否则转到登陆页面
if (session.getAttribute("loginUser") != null) {
chain.doFilter(request, response);
} else {
request.getRequestDispatcher("login.jsp")
.forward(request, response);
}
}
public void destroy() {
System.out.println("过滤器销毁!");
}
} web.xml配置<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- 是否登陆进行过滤 -->
<filter>
<filter-name>SessionFilter</filter-name>
<filter-class>
filter.SessionFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>SessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>