JavaBean的配置与使用

本文详细介绍了如何在JSP环境中使用JavaBean进行用户注册和登录,涉及属性配置、getter/setter方法、表单验证、application和session的使用。实验分为基本要求和扩展要求,展示了如何处理注册和登录的成功与失败情况。
摘要由CSDN通过智能技术生成

实验五 登录与注册(JavaBean

一、实验目的

  1. 熟练掌握JSP环境下Java类的编写和使用;
  2. 熟练掌握JavaBean的配置与使用。

二、实验要求

(一)基本要求:
  1. 编写一个UserBean类,要求该类具有两个属性namepassword,并给出两个属性对应的gettersetter方法。
  2. 编写主页面index.jsp,该页面提供两个超链接,分别链接到注册页面和登录页面;
  3. 编写一个注册页面zhuce.jsp,包括:用户名,密码,密码确认以及确认和重设按钮;
  4. 编写一个登录页面denglu.jsp,包括:用户名,密码以及确认和重设按钮;
  5. 注册处理treatZhuce.jsp。判断用户名和密码是否为空、密码和密码确认是否相同。如果用户名和密码不为空且密码和密码确认相同,则认为注册成功,将用户的姓名和密码生成UserBean类型对象user,并将该对象按照“user”的键名存入application。否则认为注册失败。处理结果交给zhuCeResult.jsp显示。
  6. 登录处理页面treatDengLu.jsp,判断用户名和密码是否为空,若为空则提示用户,否则判断用户名和密码是否与application“user”对象的用户名和密码匹配。如果是则显示“您好!***登录成功”,生成UserBean类型对象user,设置usernamepassword为用户名和密码,并将user对象按照“user”的键名存入到session;否则提示用户用户名或密码错误。
(二)扩展要求:
  1. 基于Forward动作标签,将注册处理页面treatZhuCe.jsp拆成三个页面:注册处理页面treatZhuCe.jsp、注册处理结果页面zhuCeSuccess.jsp以及zhuCeFail.jsp。其中注册处理页面treatZhuCe.jsp负责接收注册页面zhuce.jsp传递过来的用户注册信息,并处理信息,根据注册是否成功分别交给注册处理结果页面zhuCeSuccess.jsp以及zhuCeFail.jsp显示。具体如下图所示:

  1. 基于Forward动作标签,将登录处理页面treatDengLu.jsp拆成三个页面:登录处理页面treatDengLu.jsp、登录处理结果页面dengLuSuccess.jsp以及dengLuFail.jsp。其中登录处理页面treatDengLu.jsp负责接收并处理登录页面denglu.jsp传递过来的用户登录信息,根据登录是否成功分别交给登录处理结果页面dengLuSuccess.jsp以及dengLuFail.jsp显示。具体如下图所示:

三、一些需用的技术

1、本实验中,application对象的一些常见方法

2、session对象的一些常见方法

四、实验步骤

1.基本要求1:新建一个UserBean类,右键点击项目选择new,点击Class

Source folder系统已经自动填写好本项目的名称,package自己填写,还有下面的Name,选择继承抽象方法Inherited abstract methods,如图 ,点击finish,创建完成

输入类名UserBean,选择继承方法,点击finish。 

 创建类中的两个属性name和password

package com.helloworld.bean;

public class UserBean {
	private String name;
	private String password;
	
}

给出对应的getter和setter方法,可以让编译器自动生成,当我们创建好两个属性后,点击Source,选择Generate Getters and Setters,如图:

选择所有生成setter和getter方法 

 

UserBean类自动生成如下代码: 

package com.helloworld.bean;

public class UserBean {
	private String name;
	private String password;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}

基本要求2-4在前面实验都展示过了,可以在实验三基本要求找到,下面是相关链接。 实验三基本要求icon-default.png?t=N7T8https://blog.csdn.net/m0_75073812/article/details/133720760?spm=1001.2014.3001.5501#:~:text=1-,.%E6%96%B0%E5%BB%BAindex.jsp%E6%96%87%E4%BB%B6,-%E9%A1%B5%E9%9D%A2%E4%B8%AD%E6%9C%89

2.基本要求5  treatZhuCe.jsp,判断用户名和密码是否为空、密码和密码确认是否相同之前实验都已做过,不同的是这里注册成功将用户的姓名和密码生成UserBean类型对象user,并将该对象按照“user”的键名存入application中,前面已经创建UserBean类了,这里生成UserBean类对象user,application对象也在前面实验四用过了,代码如下:

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
    <%@ page import="javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<%@page import="com.helloworld.bean.UserBean" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="GBK">
<title>注册处理页面</title>
</head>
<body>
<%
request.setCharacterEncoding("GBK");
String name=request.getParameter("Name");
String passw=request.getParameter("PassWord");
String passc=request.getParameter("PassCode"); 

if(name==null||name.equals("")||passw==null||passw.equals("")){
	out.println("用户名或密码为空!");
	
}
else if(passw.equals(passc)){
	//用户的姓名和密码生成UserBean类型对象user
	UserBean user=new UserBean();
	user.setName(name);
	user.setPassword(passw);
    //按照“user”的键名存入application中
	application.setAttribute("user",user);
	 response.sendRedirect("zhuCeResult.jsp");
}
	else{ 
	
	out.println("两次密码输入不一样!");
	} 
%>

</body>
</html>

新建zhuCeResult.jsp,将注册是被处理结果交给zhuCeResult.jsp,这里显示注册失败的原因,代码如下:

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
    <%@ page import="javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<%@page import="com.helloworld.bean.UserBean" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="GBK">
<title>注册结果处理</title>
</head>
<body>
<%
request.setCharacterEncoding("GBK");
UserBean user = (UserBean) application.getAttribute("user");

    out.println("注册成功!"+"<br>");
    out.println("用户名:" + user.getName()+"<br>");
    out.println("密码:" + user.getPassword());

%>

</body>
</html>

 注册成功运行结果如图所示

用户名和密码未填写时,如图所示 

密码和密码确认不一致时,效果如图

 

3.基本要求6treatDengLu.jsp,这里判断用户名和密码是否与application中的“user”对象的用户名和密码匹配。登陆成功,生成UserBean类型对象user,设置user的name和password为用户名和密码,并将user对象按照“user”的键名存入到session中。登陆失败,则给出提示。

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
    <%@page import="com.helloworld.bean.UserBean" %>
     <%@ page import="javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="GBK">
<title>登陆处理页面</title>
</head>
<body>
<%
	    request.setCharacterEncoding("GBK");
		String name=request.getParameter("Name");
		String passw=request.getParameter("PassWord");
		
		UserBean user=(UserBean)application.getAttribute("user");
		if(name==null||name.equals("")||passw==null||passw.equals("")){
			
			out.println("用户名或密码为空!");
		}
		else if(name.equals(user.getName())&&passw.equals(user.getPassword())){
			
			user.setName(name);
			user.setPassword(passw);
			session.setAttribute("user",user);//user对象按照“user”的键名存入到session中
			out.println("你好!");
			out.print(name);
			
		}
	   	else{ 
	   		out.println("用户名或密码输入错误!");
	   		
		} %>
</body>
</html>

这里判断用户名和密码是否和application中“user”对象的用户名和密码是否一致,但是application中“user”对象是在treatZhuCe.jsp中设置,也就是注册成功的“user”对象的用户名和密码,前面我用的用户名为“呜呜呜”,密码为“1”,这里如果想登陆成功,就要用这个用户名和密码。

尝试输入其他用户名或密码,则出现如下效果

如果用户名或密码未填写,则提示如下

 4.扩展要求1:用forward标签拆分treatZhuCe.jsp页面,treatZhuCe.jsp如下

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
    <%@ page import="javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<%@page import="com.helloworld.bean.UserBean" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="GBK">
<title>注册处理页面</title>
</head>
<body>
<%
request.setCharacterEncoding("GBK");
String name=request.getParameter("Name");
String passw=request.getParameter("PassWord");
String passc=request.getParameter("PassCode"); 
String message="";
if(name==null||name.equals("")||passw==null||passw.equals("")){
	message="用户名或密码为空!";%>
	
	<jsp:forward page="zhuCeFail.jsp">
	<jsp:param value="<%=message %>" name="message"/></jsp:forward>
	
<% }
else if(passw.equals(passc)){
	UserBean user=new UserBean();
	user.setName(name);
	user.setPassword(passw);
	application.setAttribute("user",user);%>
	
	 <jsp:forward page="zhuCeSuccess.jsp">
	 <jsp:param value="<%=name %>" name="name"/></jsp:forward>
	 
<% }
	else{ 
	message="两次密码输入不一样!";%>
	
	<jsp:forward page="zhuCeFail.jsp">
	<jsp:param value="<%=message %>" name="message"/></jsp:forward>
	
	<% } 
%>

</body>
</html>

zhuCeSuccess.jspzhuCeFail.jsp与前面实验三中的代码相同,点击可查看。

5.扩展要求2:用forward标签拆分treatDengLu.jsp。treatDengLu.jsp如下

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
    <%@page import="com.helloworld.bean.UserBean" %>
     <%@ page import="javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="GBK">
<title>登陆处理页面</title>
</head>
<body>
<%
	    request.setCharacterEncoding("GBK");
		String name=request.getParameter("Name");
		String passw=request.getParameter("PassWord");
		String message="";
		UserBean user=(UserBean)application.getAttribute("user");
		if(name==null||name.equals("")||passw==null||passw.equals("")){
			message="用户名或密码为空!";%>
			<jsp:forward page="dengLuFail.jsp">
			<jsp:param value="<%=message %>" name="message"/></jsp:forward>
		<% }
		else if(name.equals(user.getName())&&passw.equals(user.getPassword())){
			
			user.setName(name);
			user.setPassword(passw);
			session.setAttribute("user",user);
			%>
			 <jsp:forward page="dengLuSuccess.jsp">
			 <jsp:param value="<%=name %>" name="name"/></jsp:forward>
	<% 	}
	   	else{ 
	   		message="用户名或密码输入错误!";
	   		%>
	   		<jsp:forward page="dengLuFail.jsp">
			<jsp:param value="<%=message %>" name="message"/></jsp:forward>
		<% } %>
</body>
</html>

dengLuSuccess.jspdengLuFail.jsp实验三中,点击查看。

本实验考查JavaBean中application和session的应用,相关技术也在前面展示,代码仅供参考,如有错误,敬请指正!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源来在

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值