新用户注册入口 老用户登录入口

[转载]JSP模拟用户注册

文章作者:转载 更新时间:2023-08-15 09:02:21 阅读数量:112
文章标签:JSP注册页面用户信息表单元素数据传递年龄计算
本文摘要:这篇文章详细介绍了使用JSP技术实现用户注册页面的功能设计,其中涉及了构建login.jsp表单以收集用户信息,包括自动计算年龄,并通过request对象将数据传递至result.jsp进行展示。在result.jsp中,利用request获取并格式化输出用户的各项信息,如用户名、密码、性别、出生日期和爱好等。然而,目前的实现仅限于单一用户注册,且在日期处理上(如年龄计算和月份天数设定)存在优化空间,未能充分考虑平闰年差异及实际天数。未来改进方向需关注多用户支持与精确的日期逻辑处理。
转载文章

本篇文章为转载内容。原文链接:https://blog.csdn.net/Pluto_ssy/article/details/121049221。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

1.  JSP功能具体要求及命名

request对象的使用模拟注册页面和功能;

(1)第1个JSP页面,命名为login.jsp:该页面提供一个表单(标签、文本框、密码框、单选按钮、复选框、按钮、下拉列表框、列表框、多行文本框等模拟注册界面,可以参考给定的图片布局)。

①在第1个页面,输入相应内容、选择相应内容、选择出生日期后,自动计算年龄并显示到对应文本框中。

②用户可以输入或者选择相关内容,点击“注册”按钮将输入和选择的数据传递给第2个JSP页面result.jsp。

(2)第2个页面,命名为result.jsp:通过request对象获得注册页面的信息,然后在该页面以表格形式显示出来。如下图所示

(建议,可以将用户信息编写成一个实体类)

2.具体代码

(1)login.jsp

<%@ page contentType="text/html; charset=GB2312"%>
<HTML><body>
<center><h2>模拟注册页面</h2></center>
<font size=3><h3><form action="case03ssy2result.jsp" method=post>
<br>用户名:<input type="text" size="16" minlength="6" maxlength="16" aligin="left" name="username">&nbsp  &nbsp<b><i>用户名由6~16个字符组成,包括汉字,数字,字母等</i></b></br>
<p>密    码: <input type="password" size="16" minlength="6" maxlength="16" aligin="left" name="pwd">&nbsp  &nbsp<b><i>密码由6~16个字符组成,包括数字,字母等</i></b></p>
<p>性    别: <input type="radio" value="男" name="sex"/>男  <input type="radio" value="女" name="sex"/>女&nbsp &nbsp年龄:<input type="text" size="4" name="age" id="age" style="background-color:grey" readonly>
<p>出生日期:<select name="year" id="year" onblur="changeAge()"> <% for(int y=1990;y<=2010;y++){ %><option value="<%=y %>"><%=y %></option><%}%></select>年<select name="month"><% for(int m=1;m<=12;m++){ %><option value="<%=m%>"><%=m %></option><%} %></select>月<select name="day"> <% for(int d=1;d<=31;d++){ %><option value="<%=d %>"><%=d %></option><%} %></select>日</p>
<p>爱    好:<input type="checkbox" value="唱歌" name="hobbies" />唱歌<input type="checkbox" value="听歌" name="hobbies" />听歌<input type="checkbox" value="篮球" name="hobbies" />篮球<input type="checkbox" value="乒乓球" name="hobbies" />乒乓球<input type="checkbox" value="足球" name="hobbies" />足球<input type="checkbox" value="羽毛球" name="hobbies" />羽毛球</p>
<p>所学课程:<select name="course" multiple="multiple" size="10"><option value="计算机科学导论">计算机科学导论</option><option value="C程序设计基础">C程序设计基础</option><option value="数据结构">数据结构</option><option value="操作系统原理">操作系统原理</option><option value="软件工程概论">软件工程概论</option><option value="算法分析与设计">算法分析与设计</option><option value="Java编程基础">Java编程基础</option><option value="计算机网络">计算机网络</option><option value="数据库系统原理及应用">数据库系统原理及应用</option><option value="软件设计">软件设计</option><option value="软件测试">软件测试</option><option value="Java Web应用程序开发">Java Web应用程序开发</option><option value="组网工程">组网工程</option><option value="软件项目管理">软件项目管理</option><option value="云计算与大数据技术">云计算与大数据技术</option><option value="粮油信息处理及模式识别">粮油信息处理及模式识别</option><option value="软件开发案例分析">软件开发案例分析</option><option value="软件交互设计">软件交互设计</option></select>按住Ctrl按钮来选择多个项目</p>
<p>个人简历:<textArea name="cv" rows="3" cols="35" align="top" ></textArea></p>
<p><center><input type="submit" value="注册" name="submit"></center></p>
</form></h3>
</font>
<script type="text/javascript">function changeAge() {console.log("调用了函数");var nowData = new Date();console.log(nowData.getUTCFullYear());var nowYear = nowData.getUTCFullYear();console.log(document.getElementById("year").value)var year = document.getElementById("year").value;var age = nowYear - year;var e = document.getElementById("age");e.value = age;}
</script>
</body></HTML>

(2)result.jsp

<%@ page contentType="text/html; charset=GB2312"%>
<%! public String handleStr(String s){try{ byte [] bb=s.getBytes("GB2312");s=new String(bb);}catch(Exception exp){}return s;
}%>
<HTML><body bgcolor=yellow>
<font size=3><% request.setCharacterEncoding("GB2312");
String username=request.getParameter("username");
String pwd=request.getParameter("pwd");
String sex=request.getParameter("sex");
String year=request.getParameter("year");
String month=request.getParameter("month");
String day=request.getParameter("day");
String age=request.getParameter("age");
String hobbies[]=request.getParameterValues("hobbies");
String course[]=request.getParameterValues("course");
String cv=request.getParameter("cv");
%>
注册个人信息如下:<br>
<table border=2>
<tr>
<td><% out.print("用户名");%></td>
<td><% out.print("密码"); %></td>
<td><% out.print("性别"); %></td>
<td><% out.print("出生日期"); %></td>
<td><% out.print("年龄"); %></td>
<td><% out.print("爱好"); %></td>
<td><% out.print("所学课程"); %></td>
<td><% out.print("个人简历"); %></td></tr>
<tr>
<td><% out.print(username); %></td>
<td><% out.print(pwd); %></td>
<td><% out.print(sex); %></td>
<td><% out.print(year+"年"+month+"月"+day+"日"); %></td>
<td><% out.print(age); %></td>
<td><% if(hobbies==null){out.println("无");
}else{ for(int m=0;m<hobbies.length;m++){out.print(handleStr(hobbies[m])+" ");} }%></td>
<td><% if(course==null){out.println("无");
}else{ for(int n=0;n<course.length;n++){out.print(handleStr(course[n])+" ");} }%></td>
<td><% out.print(cv); %></td></tr>
</table>
</font>
</body></HTML>

3.运行结果

 

4.总结分析

在大体功能实现的基础上,虽然实现了用户信息登录与记录,但是此界面只能输入并记录一个用户 ,无法实现多用户,有待改正。另外,在登录界面年龄下拉列表没用考录闰年与平年的区别,把每个月份都设置为了31天。

求大佬改正。

本篇文章为转载内容。原文链接:https://blog.csdn.net/Pluto_ssy/article/details/121049221。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

相关阅读
文章标题:[转载][洛谷P1082]同余方程

更新时间:2023-02-18
[转载][洛谷P1082]同余方程
文章标题:[转载]webpack优化之HappyPack实战

更新时间:2023-08-07
[转载]webpack优化之HappyPack实战
文章标题:[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法

更新时间:2023-09-10
[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法
文章标题:[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo

更新时间:2024-03-11
[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo
文章标题:[转载]程序员也分三六九等?等级差异,一个看不起一个!

更新时间:2024-05-10
[转载]程序员也分三六九等?等级差异,一个看不起一个!
文章标题:[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集

更新时间:2024-01-12
[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集
名词解释
作为当前文章的名词解释,仅对当前文章有效。
JSP(JavaServer Pages)JSP是一种用于构建动态网页的技术,它允许开发者将HTML、CSS、JavaScript与Java代码混合编写在同一个页面中。在本文的上下文中,JSP被用作创建用户注册页面的主要技术手段,通过在JSP页面中嵌入Java代码片段来处理用户输入数据、计算年龄以及实现页面间的数据传递等功能。
request对象在Web应用程序中,request对象是Java Servlet规范提供的一个核心接口,代表客户端向服务器发送的HTTP请求信息。在文章中,request对象扮演着关键角色,用来从login.jsp表单获取用户的注册信息,如用户名、密码、性别等,并在result.jsp页面中进一步处理和显示这些信息。
POST参数在HTTP协议中,POST方法是一种常见的数据提交方式,通常用于表单提交或者向服务器发送大量数据。在本文提到的场景中,当用户在login.jsp页面填写完注册信息并点击“注册”按钮后,浏览器会以POST方式将表单中的所有字段值作为参数一并发送给服务器。这些发送到服务器的参数就是所谓的POST参数,例如username、password等,在result.jsp页面中,开发人员通过request对象的getParameter方法来获取并处理这些POST参数。
闰年和平年在日期处理部分,闰年和平年是一个重要的概念。平年是指公历年份不能被4整除的年份,全年有365天;闰年则是能被4整除且不能被100整除的年份,或者能被400整除的年份,全年有366天,其中2月份多出一天。在模拟出生日期选择时,为了准确计算年龄,需要考虑到这一差异,但在文中提到的JSP页面实现中,尚未考虑闰年对日期和年龄计算的影响,导致每月都默认设置为31天,这在实际应用中可能会导致年龄计算不准确。
延伸阅读
作为当前文章的延伸阅读,仅对当前文章有效。
在现代Web开发技术飞速发展的今天,JSP(JavaServer Pages)虽然曾作为构建动态网页的一种强大工具被广泛使用,但随着Spring Boot、Vue.js、React等前后端分离框架的崛起,其使用场景逐渐发生了变化。然而,对于学习Web开发基础和理解MVC模式的学生及开发者来说,深入理解和掌握JSP的工作原理仍然具有重要意义。
近期,有开发者回顾了使用JSP实现用户注册功能的经典案例,并指出其中存在的局限性,如单一用户注册处理与日期计算逻辑的不足。实际上,在实际项目中,为解决这些问题,可以引入数据库存储多用户信息,并利用Java 8的LocalDate类进行精准的日期处理,以适应闰年和平年的变化。
此外,为了提升用户体验和系统性能,现今推荐采用RESTful API设计原则,通过Ajax异步提交表单数据,后端用Spring MVC或Spring Boot框架接收并处理请求,前端则采用现代化的JavaScript库(例如Vue.js或React)实现实时验证和数据显示。
同时,为了确保数据安全,除了基本的字符编码设置避免乱码问题外,还需要对密码进行加密处理,并考虑XSS跨站脚本攻击和CSRF跨站请求伪造等安全风险,这在传统的JSP开发中往往需要借助额外的安全库来完成,而在现代框架中已内置了丰富的安全机制。
总之,尽管文中提到的基于JSP的用户注册页面在当下已不作为主流开发实践,但它为我们提供了理解Web开发流程的基础模型,而文中提及的问题改进方案恰好体现了现代Web开发技术的发展趋势——注重用户体验、数据安全以及前后端分离架构的设计理念。因此,无论是重温经典技术还是紧跟时代步伐,这篇文章都为我们提供了一个有价值的思考视角。
知识学习
实践的时候请根据实际情况谨慎操作。
随机学习一条linux命令:
head -n 10 file.txt - 查看文件前10行。
随便看看
拉到页底了吧,随便看看还有哪些文章你可能感兴趣。
js实用表单模糊搜索和自动提示插件 10-05 简单的jQuery响应式手风琴特效 01-27 发布站点前如何为站点质量做进一步优化,几个不能不知道的小工具 01-26 HessianRPC中IllegalArgumentException异常解析:方法签名与参数类型匹配在分布式系统中的实践误区与解决方案 01-16 AI助手的工作原理与限制:无法按特定要求撰写的原因及信息处理分析 12-27 Gallerybox-全屏响应式jQuery图片画廊插件 12-17 关于金融理财公司网站模板下载 11-01 SparkContext停止与未初始化错误排查:从初始化到集群通信与生命周期管理实践 09-22 jQuery和CSS3超酷3D拉窗帘式滚动导航特效 09-02 本次刷新还10个文章未展示,点击 更多查看。
简约蓝色农村电线线路安装网站模板 08-01 Tomcat性能瓶颈问题识别与解决:利用VisualVM和JProfiler分析工具进行代码优化与系统参数调整 07-31 图文经典商务外贸求职招聘企业网站模板 07-14 SeaTunnel中创建与应用自定义Transform插件:实现数据转换与业务逻辑处理,配置文件参数设置及插件打包发布 07-07 响应式精密光学仪器设备类企业前端CMS模板下载 06-12 vue口诀 04-23 宽屏蓝色海洋主题设计网站模板 04-21 美食自媒体博客类网页模板源码 04-14 公式计算 html 代码 04-01 [转载]C/C++劫持技术(函数劫持、dll注入、动态库注入、HOOK) 01-23 jQuery高仿真移动手机滑动侧边栏布局插件 01-21
时光飞逝
"流光容易把人抛,红了樱桃,绿了芭蕉。"