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">   <b><i>用户名由6~16个字符组成,包括汉字,数字,字母等</i></b></br>
<p>密 码: <input type="password" size="16" minlength="6" maxlength="16" aligin="left" name="pwd">   <b><i>密码由6~16个字符组成,包括数字,字母等</i></b></p>
<p>性 别: <input type="radio" value="男" name="sex"/>男
<input type="radio" value="女" name="sex"/>女   
年龄:<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天。
求大佬改正。