Ⅰ 浅谈web登录
web登录是网站上经常会遇到的功能,虽然看似简单。但要做好易用性和引导性,还需要在设计和交互上达到平衡。
这里将要探讨登录流程中的页面跳转模式、登录类型、以及登录流程中的各种细节优化。
一、登录页面的两种跳转模式:
1、独立页面登录
这种登录方式的优点是比较正式与美观,可以将网站更多的信息展示给当前用户,包括大图所展示的品牌形象,并可以提供更多的链接选择(如:导航链接、多语言切换等等),当用户在登录过程中临时起意需要放弃当前操作时,可以方便跳转,(虽然并不是常见操作,且不推荐,却仍为用户提供便利性)。
但这种方式也有一定的缺点,对于浏览实时性比较强的网站,页面的跳转会破坏其操作的连贯性。并且众多强迫症患者还会有一种,登录完成后是否还能回到现有页面的疑虑。事实上这种情况也确实存在。
2、当前页面弹出窗口登录(模态窗口)
这种方式的好处在于避免页面跳转对操作连贯性的破坏,把登录对用户造成的影响降至最低。
PS:所谓的模态窗口,是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应。如单击“确定”“取消”按钮等将该对话框关闭。
关于两种登录模式的选择,主要看用户在使用登录模块时的情境。例如,未登录状态,若直接点击“登录”按钮或“个人中心”,没有涉及到其他功能的使用,便跳转至独立页面。而当需要进行某项操作,必须登录后才可进行时,建议使用弹出窗口,以保持操作的连贯性。
淘宝、豆瓣均为此模式。点击“登录”按钮时,跳转至独立页面;而点击“立即购买”或“收藏”“评论”等功能性按钮时,显示弹出层登录窗口。
二、登录的两种类型:
关于登录的类型,一般有两种,一种是邮件/用户名/手机号登录,另一种是第三方登录。
1、邮件/用户名/手机号登录
这是一种比较常用和传统的登录方式,输入用户名/邮箱/手机号和密码便可直接登录。值得一提的是,之前的大部分网站仅支持用户名登录,而不支持使用邮箱或手机号登录。但这种方式存在的问题就是注册时,有可能会因为用户名已被其他用户注册的限制而进行强制更改,导致注册的网站越多,越容易忘记用户名。
但邮件地址和手机号由于受到真实资料及数量上的限制,基本不会出现这种情况。所以,现在越来越多的网站都开始支持多种帐号形式登录的方式。
2、第三方登录
这种登录方式是指通过其他的社交帐号来进行授权登录的一种方式,目前这种方式在很多网站上都有采用。其优点是简单快速,降低用户注册门槛及用户流失数量。尤其是对于中小型的非常用网站,或仅想尝试当前功能的用户来说,减小了其登录成本。但这种方式也有一些致命的缺点。例如,当第三方的帐号被封号或被盗时,其他使用该帐号进行登录的网站基本都不可用了。
这里要说到,目前有某些网站,支持第三方登录,但是登录成功后,还需要单独填写非重复的用户名以及密码。这种重复填写资料的行为更容易让用户产生抵触心理。
以上两种方式各有利弊,目前而言,对于需要搜集用户详细资料的网站,例如电商网站,更适合于单独用户注册模式。如果使用第三方登录,进而还需要再填写其他资料的行为反而更加麻烦。而对于一般性的网站,简单的用户资料授权就已经足够了,使用第三方登录更为方便,也利于帐号的记忆与管理。
三、登录过程中的优化:
1、未登录时进行的操作,在登录后,此操作自动生效。
例如,淘宝在未登录时进行“收藏”或“购买”,登录后会自动收藏或加入购物车,无需再重复登录前操作。这是一种比较人性化的交互行为,因为在登录前有此操作,并且为此功能进行了登录,说明这已经是一个明确的用户行为,基本不存在误操作的可能性。所以在进行登录后,自动完成此操作会更为便捷。当然,在自动完成登录前操作时,有一个直观可视化的交互动效,便能让用户更加清晰的理解当前操作已自动完成。浏览几个其他网站,如、豆瓣、behance、均无此功能。
2、适时提供登录需求
当用户浏览页面时,遇到必须登录才能够继续进行的操作时, 无疑是一个扫兴的行为。提高体验的途径,就是将登录或注册行为放置至最后一步才进行。
例如,在知乎的顶部以未登录身份点击“话题”栏目,则会弹出登录提示框。虽然这个是用于已登录用户查看自己感兴趣的“话题”,但却会对未登录用户产生一定的阻碍。对于未登录用户来说,点击“话题”按钮后,直接跳转至“话题广场”不是一种更好的选择么?当用户找到自己感兴趣的话题,需要关注此话题时,再弹出“登录”或者“注册”的提示。这样,也给用户一个更为充分的理由。
另外,纵观目前大部分电商网站,基本上都支持未登录就可将商品放入购物车的操作行为。这个相比以前的体验,也基本做到了尽量在最后一步才让用户选择登录的原则。但仔细想想,这其实是可以再进一步去完善的。目前的电商网站数量繁多,在某个网站只有一次购物经历的机会将大大增加。当用户没有做好去注册成为会员的准备时,为何不在加入购物车后,支持用户登录/注册的同时,也支持未登录直接付款并填写购买人手机与收货地址信息的功能呢。这个对于临时购买的用户来说,无异于会是比较顺畅的操作体验。也许当第一次购买流程顺利完成后,用户的注册行为会更有诚意,而不是被迫进行。
登录注册虽然是一个很常见的功能,但却是影响着整个网站体验的重要一环。当新用户的登录注册体验受阻时,再精彩的内容也难以让用户回头了。
Ⅱ JAVAweb简述完成一个登录系统大致步骤
完成一个登录系统的大致步骤如下:
1.创建一个表来存储用户的注册信息,比如USERNAME、PASSWORD等。
2.编写JSP页面实现登录的界面,并且在这个页面上放置一个提交按钮,提交按钮会把御梁用户输入的用户名和密码传递到Servlet程序中。
3.编写Servlet程序,实现用户账号和密码的验证,同时还要处理用户错误提交以及重复登录等问题。如拆晌
4.编写一个过滤器,实现已经登录认证
5.认证成功后,在客渣锋户端或服务器端创建session对象,用来保存当前登录的用户的信息,如用户ID、用户名等。
6.跳转页面到指定界面,并把session信息传递到新页面中。
7.编写一个过滤器,用来检查是否已经登录,如果还没有登录,就跳转回到登录页面。
Ⅲ Web里面,如何判断重复登录
项目芦卜塌开发时一弊仔般用Session(Httprequest里陪圆面的)来保存一个标志位。
session.set("name","value");
if(session.get("name").equals("user.name")){
System.out.println("已经登录");
}else{
//进入登录方法..........
}
来解决
Ⅳ java web程序spring mvc 如何解决用户重复登录
这个,session存储登录信息,是有过期时间的默认是30分钟吧,你可以做在登录的时候进行一个session用户判断就可以解决重复登录问题,注销陆轮时,将session中用户清除数镇,关闭浏览器一般不用做处理早毕信的。
Ⅳ web 应用如何防止重复登录
你说的重复登录是指,一个账号在不同机子上同时登录。还是只登录的时候提交两次请求?
如果是前者,你可以在用户表中添加锋芹一个字段,来标识用户是帆埋否登录。如果已经登录就不能登录,并给用户相关提示。
如果是后者,在点击登录按钮提交请求之后禁用按钮防态基蚂止重复提交。
Ⅵ 我的oppo账号被人多次用WEB电脑登录,修改密码也没有,我该怎么办
怎么会没有用?可以把密码设置复杂点,再看看有没有中病毒。看看能不能更改登陆方式。
Ⅶ java web用户重复登录问题
最简单的做法:
你可以在数据库表中增加一个字段,loginStatus(命名就随便了)就设置2个值把 1和2(随便什么都行)一个用户登录的时候,如果loginStatus的值是1,则将其更改为2 如果是2,则更改为1这时候,将更改后的值存储在session中,则每次进行有关用户操作的时候, 都去表中查看loginStatus的值跟你session中的值是否相同如果不相同,则将session存储的用户信息remove掉你会很奇怪,为什么会不同,很简单:如果此时,另外一个人登录的时候,走的是相同的业务逻辑,这时候会把loginStatus的值更改。则前一个登录的人session中存储的loginStatus当然就不一样了
Ⅷ java web用户不能重复登录
1楼的方法是对的但实现起来会有很多问题,踢掉高蚂前一次登录反而最简单,如下代码:
1、添加两个监听器类:
public class MySessionAttributeListener implements HttpSessionAttributeListener {
public static Map<String, HttpSession> sessionMap=new ConcurrentHashMap<String, HttpSession>戚猜埋();
@Override
public void attributeAdded(HttpSessionBindingEvent arg0) {
String name=(String)arg0.getValue();
if("name".equals(name)){//name属性保存用户登录信息,name=为唯一信息如用户名
if(sessionMap.containsKey(name)){//踢掉前一次登录
HttpSession session=sessionMap.remove(name);
session.invalidate();
}
sessionMap.put(name, arg0.getSession());
}
}
@Override
public void attributeRemoved(HttpSessionBindingEvent arg0) {}
@Override
public void attributeReplaced(HttpSessionBindingEvent arg0) {}
}
public class MySessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent arg0) {}
@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
String name=(String)arg0.getSession().getAttribute("name");
if(name!=null && name.length()>0){//session失效时候移除记录
if(MySessionAttributeListener.sessionMap.containsKey(name))
MySessionAttributeListener.sessionMap.remove(name);
}
//else System.out.println("注销用户:未获取到登录用户属性");
}
}
2、web.xml加入监听
<listener>
<兆盯listener-class>你的包名.MySessionListener</listener-class>
</listener>
<listener>
<listener-class>你的包名.MySessionAttributeListener</listener-class>
</listener>
3、jsp或servlet中保存登录信息如:
request.getSession().setAttribute("name", "登录信息");
Ⅸ java web 浏览器打开另一个窗口 重新登录
处理这个问题,可以禁止Session使用Cookie,统一使用URL地址重写。
下面举例(项目sessionWeb)说一下怎样通过配置禁止使用Cookie。
打开项目sessionWeb的WebRoot目录下的META-INF文件夹(跟WEB-INF文件夹同级,如果没有则创建),打开context.xml(如果没有则创建),编辑内容如下:
<?xmlversion='1.0'encoding='UTF-8'?>
<Contextpath="/sessionWeb"cookies="false">
</Context>
注意:该配置只是禁止Session使用Cookie作为识别标亏举志,并不能阻止其他的Cookie读写。也就是说服务器哗罩不销芦碧会自动维护名为JSESSIONID的Cookie了,但是程序中仍然可以读写其他的Cookie。
这样设置后,服务器不会自动维护名为JSESSIONID的Cookie了,那么我们只能手动来维护了
原来窗口:
<ahref="topic/del.do?id=1;jsessionid=<%=session.getId()%>">删除</a>
当打开新窗口,因为没有带入jsessionid就需要登录了。
<ahref="topic/del.do?id=1"target="_blank">新窗口删除</a>
Ⅹ javaweb项目,防止用户重复登陆问题,求大神指导
可以考虑下,设定session的失效时间:
http://wenku..com/link?url=_2_-dS-GhFQyMMVQcBbyJhQqbXJSO