比如我有两个页面,一个登陆页面,一个登陆后的主页,我是这样做的:
在登陆页面判断能够成功登录后给session【ID】赋值为登陆用户名,后连接到登陆后的主页。
我现在的问题是:如果在未登录的情况下直接在地址栏输入主页的地址,就可以打开主页了,怎样防止这样的情况发生?
我是这样做的:
if(session[ID].tostring()==NULL)
{说明未登录就打开首页,跳转到登陆页面}
可这行代码会出现错误:未将对象引用设置到对象的实例
我想问题是没登陆没创建session,这样问题该如何解决啊??
对于楼下的解答,我想说我的问题是如何防止“未登录就直接进入首页”这个问题。。。。
实现思路:先设置下session超时时间,之后直接在jsp页面中查看此session,如果没有的话,直接返回登录界面
在web.xml中的session-config配置
session-timeout元素(WEB.XML文件中的元素)用来指定默认的会话超时时间间隔,以分钟为单位。该元素值必须为整数。如果 session-timeout元素的值为零或负数,则表示会话将永远不会超时。如:
<session-config><session-timeout>30</session-timeout></session-config> //30分钟
在jsp页面中:
<%
if session.Contents("username")=false then
response.Redirect("/index.jsp")
end if
%>
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2017-10-14
那要看你的第一次session定义在哪里 如果定义在登陆页面的话,你在登录后的页面再怎么写获得seesion值的表达式也没用,因为你不登陆他返回的值永远是空.
session.setAttribute("变量","变量值")//初始化,也就是你第一次给值
Object objnum=session.getAttribute("变量");
String stnumm=objnum.toString();//取得session的值
if(!stnumm.equals("")||stnumm!=null)//判断是否是正确的用户名而不是空本回答被提问者采纳
session.setAttribute("变量","变量值")//初始化,也就是你第一次给值
Object objnum=session.getAttribute("变量");
String stnumm=objnum.toString();//取得session的值
if(!stnumm.equals("")||stnumm!=null)//判断是否是正确的用户名而不是空本回答被提问者采纳
第2个回答 2009-05-24
首先定义一个静态方法,WebHelper.cs
public static string GetLoginUser()
{
string str_userid = HttpContext.Current.Session["id"] == null ? "" : HttpContext.Current.Session["id"].ToString();
return str_userid;
}
然后在主页上调用
if (WebHelper.GetLoginUser() == "") //如果未登录则跳转登陆界面
{
Response.Redirect("登录.aspx");
}
public static string GetLoginUser()
{
string str_userid = HttpContext.Current.Session["id"] == null ? "" : HttpContext.Current.Session["id"].ToString();
return str_userid;
}
然后在主页上调用
if (WebHelper.GetLoginUser() == "") //如果未登录则跳转登陆界面
{
Response.Redirect("登录.aspx");
}
第3个回答 2017-03-27
首先sharePreferences是以键值对的方式保存数据,取的时候只要取到key就可以了。自动登陆的选择框一般是checkbox。当然如果要验证是否登陆成功,是需要跟服务器进行数据交互的。以上是保存数据的方法。下面是界面切换的问题:登陆界面和主页是两个不同的界面,这个需要intent进行跳转到不同的activity界面上。这个地方要加判断,判断用户是否登录。判断的方法就是从sharePreferences取出key后,如果sharePreferences每数据就进入到登录界面,如果sharePreferences有数据就进入到主页。
第4个回答 2009-05-24
if(session[ID].tostring()==NULL) 去掉].tostring(),就可以了。
因为对象为null,即没有对象,所以没有方法。
因为对象为null,即没有对象,所以没有方法。