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

JavaEE 专栏收录该内容
9 篇文章 0 订阅

在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)

这里写图片描述

  • 6
    点赞
  • 0
    评论
  • 21
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

聪聪不匆匆

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值