jsp页面中用JavaBean传值,实现简单登录界面

来源:互联网 发布:求网络兼职工作 编辑:程序博客网 时间:2024/05/13 00:11

在web project项目的jsp中使用javaBean来实现简单登录界面。
注意:javaBean的范围,page,request,session,application它们各自的范围是不同,这点需要注意,不然会出现使用

<jsp:getProperty property="属性名称" name="bean对象名"/>

获取javaBean中值时,会显示 NULL等错误。
在这里我将使用jsp和JavaBean来实现简单登录界面(指定用户名和密码),登录成功时,在成功页面中显示用户名和密码,登录失败,返回重新登录。

下面是JavaBean代码 Sign.java

package beans;public class Sign {    private String username;    private String password;    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}

用户登录界面 userSign.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <body>    <form action="checkSign.jsp" method="post">    账户<input name="username" type="text"><br/>    密码<input name="password" type="password"><br/>        <input type="submit" value="登录">    </form>  </body></html>

判断用户名(账号)和密码是否是“张三”和“123456” checkSign.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><jsp:useBean id="sign" class="beans.Sign" scope="session"></jsp:useBean><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <body>  <%    request.setCharacterEncoding("gb2312");  //更改编码,能够传送中文字符串    String username=request.getParameter("username");    String password=request.getParameter("password");    if("张三".equals(username)&&"123456".equals(password)){    %><jsp:setProperty property="username" name="sign"></jsp:setProperty><jsp:setProperty property="password" name="sign"></jsp:setProperty>    <%        out.print(sign.getUsername());        response.sendRedirect("ok.jsp");    }else{         response.sendRedirect("failure.jsp");    }   %>     </body></html>

在这里,先判断用户名和密码是否是需要的,然后再将request获取到的用户名和密码抛给JavaBean,否则直接跳转到登录失败页面(failure.jsp),避免了垃圾信息传送,造成浪费空间和内存

if("张三".equals(username)&&"123456".equals(password)){    %><jsp:setProperty property="username" name="sign"></jsp:setProperty><jsp:setProperty property="password" name="sign"></jsp:setProperty>    <%        out.print(sign.getUsername());        response.sendRedirect("ok.jsp");    }else{         response.sendRedirect("failure.jsp");    }

接下来是用户登录成功的页面 ok.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><jsp:useBean id="sign" class="beans.Sign" scope="session"></jsp:useBean><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <body>    登录成功,欢迎    <font color="red">        <jsp:getProperty property="username" name="sign"/>    </font>    您的密码为    <font color="blue">        <jsp:getProperty property="password" name="sign"/>    </font>  </body></html>

下面是登录失败页面,点击返回直接跳转到登录界面 failure.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <body>    登录失败    <a href="userSign.jsp">返回</a>  </body></html>

下面放几张截图看看(userSign.jsp)

这里写图片描述

登录成功界面(ok.jsp)

这里写图片描述

登录失败界面(failure.jsp)

这里写图片描述

0 1