用jsp编程实现:输入姓名,生日,输出:xxx还有几天过生日(其中,姓名和生日用键盘输入)
时间: 2024-02-24 17:57:21 浏览: 85
好的,以下是用JSP编写的代码:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>生日倒计时</title>
</head>
<body>
<h1>生日倒计时</h1>
<form action="countdown.jsp" method="post">
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required><br>
<label for="birthday">生日:</label>
<input type="date" id="birthday" name="birthday" required><br>
<input type="submit" value="计算">
</form>
<%-- 获取计算结果并输出 --%>
<%
String name = request.getParameter("name");
String birthday = request.getParameter("birthday");
if(name != null && birthday != null) {
int daysLeft = daysLeft(birthday);
out.println("<p>" + name + "还有" + daysLeft + "天过生日</p>");
}
%>
</body>
</html>
<%-- 计算距离下一次生日还有多少天 --%>
<%!
private int daysLeft(String birthdayStr) {
LocalDate birthday = LocalDate.parse(birthdayStr);
LocalDate now = LocalDate.now();
LocalDate nextBirthday = birthday.withYear(now.getYear());
if (nextBirthday.isBefore(now) || nextBirthday.isEqual(now)) {
nextBirthday = nextBirthday.plusYears(1);
}
return (int) now.until(nextBirthday, ChronoUnit.DAYS);
}
%>
```
在上面的代码中,我们创建了一个表单,请求方式为POST,提交到countdown.jsp页面。表单中包含两个输入框,分别用于输入姓名和生日。
然后在页面中使用JSP的脚本片段获取表单提交的参数,并计算距离下一次生日还有多少天。最后输出计算结果。
注意:在实际开发中,应该对用户输入进行校验,例如检查生日是否合法等。
阅读全文