您的位置:首页 > Web前端 > JavaScript

两个Jsp网页间登陆页简单后台验证,并且防止未登录用户绕过登陆页

2016-03-01 19:54 811 查看
最开始一直从Servlet的角度思考怎么实现后台验证,实际上用另一个jsp页面作为后台也可以。

首先在登陆页建立Form

<form method="post" action="check.jsp">

<input type="text" name="username" value="" placeholder="Username">

<input type="password" name="password" value="" placeholder="Password">

<input type="submit" name="commit" value="Login">

</form>

两个jsp页面间传递值有多种方法,先用form post的方法把表单数据传递给后台check.jsp页面;

check.jsp页面中需要用request.Parameter()来接受值:

String usr=request.Parameter("username");

String passwd=request.Paracmeter("password");

可以在本地建立一个用于存储用户名密码的文本文档:userinfo.txt;

在check.jsp页面中读取本地文件:

FileReader是用于读取文档的数据类型,

FileReader fr=new FileReader("文档的绝对地址");

BufferdeReader br=new BufferedReader(fr);

在文本文档中存取用户名密码的方式有很多,此处易于理解的是可以在文本文档中采用“用户名:密码”/行 的方式存储,

则进行比对的时候需要将传递过来的用户名usr和密码passwd组合为“usr:passwd”作为一个字符串,然后和每一行的用户名密码比对:

String nap="";

nap=usr+":"+passwd;

下面用.readLine();的方式进行每一行的读取:

String nameandpassword="";

nameandpassword=br.readLine();

对比:

while(nameandpassword!=null)

{

if(nameandpassword.equals(nap))

{

flag=1;break;

}

nameandpassword=br.readLine();

}

注意:(1).readLine();是读取下一行;

(2)最后需要关闭FileReader和BufferedReader所建立的对象:

fr.close(); br.close();

最后,需要对flag进行一个页面的跳转,此处需要注意的是,需要设计一种方法防止未登录用户绕过登陆页,比较常用的一种方法是配置过滤器Filter,

不过还有一种比较简单的方法是为每个网页添加一个标记。此处需要check.jsp向目标页传递标记值,此处是第二种jsp页面之间传递值的方式,不需要手动点击触发:

<%if(flag==1)

{

%>

<script type="text/javascript">

<jsp:forward page="LoginSuccess.jsp">

<jsp:param name="flagx" value="1">

</jsp:forward>

</script>

<%

}

%>

此处只表示验证成功之后跳转的页面LoginSuccess.jsp,在目标页顶端添加标记验证是否是通过登陆而进入的,如果接收到的不是“1”,则说明越过了登陆页,需要返回登陆页:

<%@page import="java.io.*"%>

<%

String getflagx="0";

getflagx=request.Parameter("flagx");

if("0".equals(getflagx))

{

%>

<script type="text/javascript">

<jsp:forward page="Login.jsp"/>

</script>

<%

}

%>

在目标页最后添加恢复标记:

getflagx="0"

我在实习过程中,由于先前的要求并不是很明确,所以好多地方改了,最后为了追求更好的效果,需要在登陆页登录失败时弹出一个alert的提示框,要实现这个也有好多办法,当今网站比较常用的是Ajax以及Servlet等的验证方法,此处为了效率,我还是继续沿用了之前的思路和方法,也是用标记传值,然后根据标记来决定alert的弹出。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: