编写登陆与注册界面

实验三 登录与注册

目录

实验三 登录与注册

一、实验目的

        1.熟练使用JSP 指令和动作标签;

        2.熟练使用request等内置对象。

二、实验要求

(一)基本要求:

(二)扩展要求:

三、一些需用的技术

1、表单

2、利用表单中各种主要元素完成基本要求。

3、jsp:forward动作标签与jsp:param动作标签

四、实验步骤

1.新建index.jsp文件

2.新建zhuce.jsp页面

3.新建登录页面denglu.jsp

4.新建注册处理页面treatZhuCe.jsp

5.新建登陆处理页面treatDengLu.jsp

 6.扩展一

7.扩展二


一、实验目的

        1.熟练使用JSP 指令和动作标签;
        2.熟练使用request等内置对象。

二、实验要求

(一)基本要求:
  1. 编写主页面index.jsp,该页面提供两个超链接,分别链接到注册页面和登录页面;
  2. 编写一个注册页面zhuce.jsp,包括:用户名,密码,密码确认以及确认和重设按钮;
  3. 编写一个登录页面denglu.jsp,包括:用户名,密码以及确认和重设按钮;
  4. 注册处理页面treatZhuCe.jsp,分别判断用户名和密码是否为空、密码和密码确认是否相同,并在用户名和密码为空以及密码或密码确认不相同时提示用户,否则提示用户注册成功“您好!***注册成功”;
  5. 登录处理页面treatDengLu.jsp,判断用户名和密码是否为空,若为空则提示用户,否则判断用户名是否为“姓名”以及密码是否为“学号”,全部相等则显示“您好!***登录成功”,否则提示用户用户名或密码错误。
(二)扩展要求:

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

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

三、一些需用的技术

1、表单

注册登录页面利用标单传递各种信息给处理页面。

在HTML中,Form 的标记有开始标记<form>和结束标记</from>,在开始标记中一般包含属性:ACTION、METHOD。

  1. ACTION:传递到的处理页面名称以及所处位置。
  2.   METHOD:传递所使用的方法:get,post。

2、利用表单中各种主要元素完成基本要求。
  1. 姓名:INPUT中的TEXT类型。
  2. 密码:INPUT中的PASSWORD类型
  3. 密码确认:INPUT中的PASSWORD类型
  4. 确认:INPUT中的SUBMIT类型
  5. 重设:INPUT中的RESET类型

3、jsp:forward动作标签与jsp:param动作标签

<jsp:forward>动作标识用来将请求转发到另外一个JSP、HTML或相关的资源文件中。当该标识被执行后,当前的页面将不再被执行,而是去执行该标识指定的目标页面。该标识使用的格式如下:

<jsp:forward page="文件路径 | 表示路径的表达式"/>

如果转发的目标是一个JSP文件,还可以向该文件中传递参数,使用格式如下:

<jsp:include page="被包含文件的路径">

     <jsp:param name="参数名称1" value="参数值"/>

   ......

<jsp:param name="参数名称n" value="参数值"/>

</jsp:include>

四、实验步骤

1.新建index.jsp文件

页面中有两个超链接,用超链接传递,<a href="跳转的页面">,在index.jsp页面中一个跳转到注册页面,一个跳转登录页面,代码如下:

<%@ page language="java" contentType="text/html; charset=GBK"

    pageEncoding="GBK"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="GBK">

<title>首页</title>

</head>

<body>

<p align="center">首页</p>

<p>没有账号?<a href="zhuce.jsp">点击注册</a>

<p>已有账号?<a href="denglu.jsp">立即登录</a>

</body>

</html>

运行结果如图所示

2.新建zhuce.jsp页面

注册页面包括用户名,密码,密码确认以及确认和重设按钮,这些内容都放在form表单中,根据基本要求4可以知道注册表单最后要提交到treatZhuCe.jsp中,action=“treatZhuCe.jsp”,用户名为text类型,密码和密码确认都是password类,最后还有两个按钮确认就用submit提交,重设用reset重设,但是密码和确认密码的命名不同,密码是PassWord,确认密码是PassCode,代码如下:

<%@ page language="java" contentType="text/html; charset=GBK"

    pageEncoding="GBK"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="GBK">

<title>注册账号</title>

</head>

<body>

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

        <table>

            <tr>

                <td>用户名:</td>

                <td><input type="text" name="Name"></td>

            </tr>

            <tr>

                <td>密码:</td>

                <td><input type="password" name="PassWord"></td>

            </tr>

            <tr>

                <td>确认密码:</td>

                <td><input type="password" name="PassCode"></td>

            </tr>

            <tr>

                <td colspan="2">

                    <input type="submit" value="确&nbsp认">

                    <input type="reset" value="重&nbsp设">

                </td>

            </tr>

        </table>

    </form>

</body>

</html>

运行显示效果如图

3.新建登录页面denglu.jsp

其中包括用户名、密码以及去任何重设按钮,这些都放在form表单中,有基本要求5可知,最后提交到treatDengLu.jsp中,其中用户名为text类,密码为password类,确认按钮为submit提交,重设按钮为reset清空重新设置,代码如下:

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="GBK">
<title>登陆账号</title>
</head>
<body>
	<form method="post" action="treatDengLu.jsp">
        <table>
            <tr>
                <td>用户名:</td>
                <td><input type="text" name="Name"></td>
            </tr>
            <tr>
                <td>密码:</td>
                <td><input type="password" name="PassWord"></td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="submit" value="确&nbsp认">
                    <input type="reset" value="重&nbsp设">
                </td>
            </tr>
        </table>
	</form>
</body>
</html>

显示效果如图所示

4.新建注册处理页面treatZhuCe.jsp

用request获取注册页面的用户名和密码等信息,为了让输入中文能正常输出,要保证编码一致性,这里手动将输出格式改为GBK编码同样用request。

题目中要求判断用户名和密码是否为空,这里用equals方法,前面在实验二简单介绍过equals方法和“==”的区别,这里不在赘述。当用户名或密码为空时,给出提示“请输入用户名和密码!”;

判断密码和确认密码是否相等,同样是判断值是否相等用equals方法,这里注意我对密码和确认密码的命名不同,密码是passw,确认密码是passc,若密码盒确认密码相同给出提示“您好!xxx注册成功!”;若两次密码输入不一致,即密码和确认密码不同则给出提示“请确认两次密码输入一致”。

注意:这里Java代码穿插其中,一定要用好<% %>,否则容易报错。

代码如下:

<%@ page language="java" contentType="text/html; charset=GBK"

    pageEncoding="GBK"%>

<!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)){%>

           <p>

           您好!<%=name%>注册成功 <br/>

<%     }

       else{

           out.println("请确认两次密码输入一致!");

       } %>



</body>

</html>

当用户名或密码为空时,如下图1只输入用户名,不输入密码,点击确认,显示效果如图2

图1  

图2 

当密码和确认密码输入不一样时,密码输入了12,确认密码输入123,如图3,点击确认显示效果如图4

图3 

图4 

5.新建登陆处理页面treatDengLu.jsp

题目中要求判断用户名和密码是否为空,这里用equals方法,这里不在赘述。当用户名或密码为空时,给出提示“请输入用户名和密码!”;

判断用户名是否为“姓名” ,密码是否为“学号”,这里密码和学号是自己设定的,如果用户名和密码都匹配成功,则输出“您好!xxx登陆成功!”,匹配不成提示“请确认用户名和密码输入正确!”

<%@ page language="java" contentType="text/html; charset=GBK"

    pageEncoding="GBK"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="GBK">

<title>登陆处理页面</title>

</head>

<body>

<%

        request.setCharacterEncoding("GBK");

       String name=request.getParameter("Name");

       String passw=request.getParameter("PassWord");

      

        if(name==null||name.equals("")||passw==null||passw.equals("")){

           out.println("请输入用户名和密码!");

       }

       else if(name.equals("大长腿")&&passw.equals("123456")){%>

           <p>

           您好!<%=name%>登陆成功 <br/>

<%     }

       else{

           out.println("请确认用户名和密码输入正确!");

       } %>

</body>

</html>

用户名或密码为空时同上面注册处理页面相同,当用户名不是姓名,密码不是学号时如图5,显示如图6

图5

 图6

 6.扩展一

基于forward动作标签,将注册处理页面treatZhuCe.jsp拆成三个页面,新建注册处理结果页面zhuCeSuccess.jsp以及zhuCeFail.jsp,其中注册处理页面treatZhuCe.jsp负责接收注册页面zhuce.jsp传递过来的用户注册信息,并处理信息,当注册处理成功交付给zhuCeSuccess.jsp,注册处理不成功交付给zhuCeFail.jsp。

<jsp:forward>动作标识用来将请求转发到另外一个JSP、HTML或相关的资源文件中。当该标识被执行后,当前的页面将不再被执行,而是去执行该标识指定的目标页面。最后浏览器上显示还是原页面地址。

①修改treatZhuCe.jsp页面,在判断注册成功和失败后forward到不同的页面,用param标签传递用户名到注册成功zhuCeSuccess.jsp页面,传递失败理由到zhuCeFail.jsp页面,使用forward标签虽然是不同的jsp文件,但是在浏览器上显示的都是treatZhuCe.jsp,代码如下:

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<!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)){
			%>
			<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.jsp页面 ,在此页面接收param标签传递过来的用户名,代码如下:

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="GBK">
<title>注册成功</title>
</head>
<body>
<%request.setCharacterEncoding("GBK");
String name=request.getParameter("Name");
%>
<p>
<h3>您好!<%=name%>注册成功 </h3>
</body>
</html>

③新建注册失败zhuCeFail.jsp页面, 在此页面接收param标签传递过来的失败理由,这是在treatZhuCe.jspparam标签中的“用户名或密码为空!”和“两次密码输入不一样!”,代码如下:

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="GBK">
<title>注册失败</title>
</head>
<body>
<%String message = request.getParameter("message");  %>
<h3><%=message %></h3>
</body>
</html>

拆分页面后运行结果与前面基本要求的treatZhuCe.jsp页面显示结果相同,这里不再展示 。

7.扩展二

同扩展一相似,都是用forward标签拆分treatDengLu.jsp页面,这里不再详细介绍,直接放代码。

①修改treatDengLu.jsp页面代码如下:

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<!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="";
		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("大长腿")&&passw.equals("123456")){%>
			<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.jsp页面,代码如下:

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="GBK">
<title>登陆成功</title>
</head>
<body>
<%request.setCharacterEncoding("GBK");
String name=request.getParameter("Name");
%>
<h3>您好!<%=name%>登陆成功 </h3>
</body>
</html>

③新建登陆失败dengLuFail.jsp页面,代码如下:

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="GBK">
<title>登陆失败</title>
</head>
<body>
<%String message = request.getParameter("message");  %>
<h3><%=message %></h3>
</body>
</html>

 运行显示效果与前面基本要求treatDengLu.jsp页面显示效果相同,这里不再展示。

代码仅供参考,如有不足,感谢指正!

  • 17
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: CSDN是一个非常受欢迎的IT技术社区,它为用户提供了各种学习和交流技术的平台。在CSDN上,用户可以注册一个账号并登陆来享受更多的功能和资源。在注册登陆界面中,可以考虑使用localstorage来提高用户的体验。 localstorage是HTML5中的一种存储机制,它可以在用户的浏览器中存储数据。与传统的cookie相比,localstorage可以存储更多的数据,且在用户关闭浏览器之后依然可以保留。因此,我们可以使用localstorage来存储用户的登录信息。 在注册登陆界面中,当用户输入用户名和密码后,我们可以通过JavaScript将这些信息存储到localstorage中。当用户下次访问页面时,我们可以从localstorage中读取这些信息,并展示在对应的输入框中,方便用户快速登陆。这样,用户就不需要每次都重新输入用户名和密码,提高了用户的使用便捷性。 当用户点击登陆按钮时,我们可以将用户输入的用户名和密码与localstorage中存储的信息进行比对,以确保用户的输入是正确的。同时,如果用户选择了“记住我”的选项,我们可以在localstorage中设定一个标识位,下次用户访问页面时,可以直接读取该标识位,如果标识位为真,则直接跳转到用户的主页。 此外,我们还可以通过localstorage来存储一些其他的用户偏好设置,比如主题颜色、字体大小等等,让用户在下次访问时能够直接看到他们之前选择过的设置。 总之,通过使用localstorage可以方便地实现CSDN的注册登陆界面,提升用户的使用体验和便捷性。 ### 回答2: CSDN是一个为程序员提供技术论坛、博客、资源下载等服务的网站。在注册和登录界面上使用LocalStorage是一种常见的实现方式。 LocalStorage是HTML5中提供的一种在浏览器本地存储数据的机制。通过使用LocalStorage,我们可以将一些重要的用户信息存储在用户的浏览器中,比如用户名、密码等。这样,用户每次打开CSDN网站时,可以直接读取LocalStorage中的信息,省去了重复输入账号和密码的麻烦。 在CSDN的注册界面上,用户可以输入用户名和密码,并点击注册按钮进行注册。在点击注册按钮之前,我们可以通过JavaScript将用户输入的用户名和密码存储在LocalStorage中。这样,即使用户刷新页面或关闭网站后再次打开,之前输入的用户名和密码依然会被保留在LocalStorage中,用户不需要重新输入。 类似地,在CSDN的登录界面上,用户可以输入之前注册过的用户名和密码,并点击登录按钮进行登录。在点击登录按钮之前,我们可以通过JavaScript将用户输入的用户名和密码与之前存储在LocalStorage中的信息进行比对。如果匹配成功,用户就可以成功登录。否则,系统会提示用户输入错误的用户名或密码。 总之,通过使用LocalStorage来存储CSDN注册和登录界面的用户信息,可以提供更好的用户体验,减少用户重复输入的工作量,提高用户的使用效率。同时,也为网站的数据管理提供了一种简单可靠的解决方案。 ### 回答3: CSDN是一个广受欢迎的IT技术交流平台,它的注册登录界面需要使用localstorage来实现用户信息的储存和登录状态的管理。 localstorage是浏览器提供的一种储存数据的机制,它可以在用户的浏览器中暂时性地储存一些数据,这些数据会一直存在,直到被用户手动清除或者网站代码删除。 在CSDN的注册登录界面中,localstorage是起到存储用户登录状态的作用的。当用户注册或登录成功后,相关的用户信息(如用户名、权限等)会被存储在浏览器的localstorage中。这样,在用户下次访问CSDN时,可以通过检查localstorage中的用户信息,来判断用户是否已经登录。如果存在用户信息,则可以直接跳转到用户的个人主页或其他需要登录权限的页面,而不需要再次输入用户名和密码进行登录。 使用localstorage实现注册登录界面还可以带来一些其他的好处。例如,在注册时可以将用户的一些基本信息暂时存储在localstorage中,这样当用户输入其他信息或者提交表单时,可以通过读取localstorage中的数据来自动填充一些字段,提高用户体验。 总之,CSDN的注册登录界面使用localstorage来存储用户信息,不仅可以方便地管理用户登录状态,还可以提升用户的使用体验。同时,需要注意的是,localstorage虽然方便,但也存在一些安全风险,比如可能被恶意的脚本攻击。因此,合理使用localstorage,注意保护用户隐私和数据安全是非常重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

源来在

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

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

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

打赏作者

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

抵扣说明:

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

余额充值