我们访问一个网站时常常会让你先注册,然后登录再来访问一些页面,没错,那么这些是怎么实现的呢?小编来跟大家说一下:
首先:浏览器是怎么知道你没登录呢?
当你点完一个超链接时,浏览器向服务器发送请求,请求跳转到目标界面,但是请求会先到达工程下的servlet,servlet会访问服务器的session域,看一下是否存在登录的用户对象,如果存在,则跳转到目标界面,如果不存在即该对象等于null,则提示你先登录。
当你注册的时候输入昵称或者用户名,输入框提示你输入的昵称或者用户名可用,就像你注册126等邮箱的时候,输入注册的邮箱名,刚想填密码,密码框上方出现一个提示信息,该邮箱可用,或者该邮箱已经存在,这是怎么做到的呢?
其实很简单,这里用到了ajax技术,当你访问的注册页面加载时,给用户名输入框绑定一个离焦事件,当你的光标一离开邮箱名输入框,就用ajax技术向服务器发送请求,请求内容包括输入框的name属性和你输入的值,请求到达servlet,servlet就调用业务层相关方法,进行事务的操作。而后调用dao层,查询数据库中是否已经存在该邮箱名,如果有就返回到业务层,业务层将结果再返回到servlet层,servlet在响应给浏览器,浏览器再进行提示。
其实上述原理是挺简单的,但是相关的实现就比较复杂了,这里不再赘余。
咱们说一下登录和退出登录状态的实现:
登录和退出登录是通过session域实现的,当服务器启动起来的即创建session域,登陆后将登陆的用户的相关信息封装到一个用户对象中,扔到session域,在浏览器中通过jstl中的c:if标签来选择性显示,test="$" 即显示登录注册,test="$"即显示退出登录、等,言外之意,已经登录。
此文章为“一首凉凉”原创,特此声明!
领取专属 10元无门槛券
私享最新 技术干货