编写一个jsp页面,设计一个投票表格,提交数据后保存到application中,最后统计票数并通过include动作,给每个页面添加session的验证,未登录者不能进行操作
时间: 2024-03-25 07:40:23 浏览: 18
好的,我可以为您提供一个简单的jsp页面,实现您的需求。以下是示例代码:
投票页面(vote.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="vote.do" method="post">
<table>
<tr>
<td>选项1:</td>
<td><input type="radio" name="option" value="option1"></td>
</tr>
<tr>
<td>选项2:</td>
<td><input type="radio" name="option" value="option2"></td>
</tr>
<<tr>
<td colspan="2"><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>
```
投票处理程序(vote.do):
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
// 验证用户是否登录
Object user = session.getAttribute("user");
if (user == null) {
response.sendRedirect("login.jsp");
return;
}
// 获取用户投票选项
String option = request.getParameter("option");
// 判断选项是否为空
if (option == null || option.trim().isEmpty()) {
out.println("<p>请选择一个选项!</p>");
return;
}
// 获取投票结果
ServletContext application = getServletContext();
synchronized (application) {
Integer count = (Integer) application.getAttribute(option);
if (count == null) {
count = 0;
}
count++;
application.setAttribute(option, count);
}
// 显示投票结果
response.sendRedirect("result.jsp");
%>
```
投票结果页面(result.jsp):
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
// 验证用户是否登录
Object user = session.getAttribute("user");
if (user == null) {
response.sendRedirect("login.jsp");
return;
}
// 获取投票结果
ServletContext application = getServletContext();
Integer count1 = (Integer) application.getAttribute("option1");
Integer count2 = (Integer) application.getAttribute("option2");
if (count1 == null) {
count1 = 0;
}
if (count2 == null) {
count2 = 0;
}
// 显示投票结果
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>投票结果</title>
</head>
<body>
<h1>投票结果</h1>
<table>
<tr>
<td>选项1:</td>
<td><%=count1%>票</td>
</tr>
<tr>
<td>选项2:</td>
<td><%=count2%>票</td>
</tr>
</table>
<p><a href="vote.jsp">返回投票页面</a></p>
</body>
</html>
```
登录页面(login.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="login.do" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="登录"></td>
</tr>
</table>
</form>
</body>
</html>
```
登录处理程序(login.do):
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
// 获取用户输入的用户名和密码
String username = request.getParameter("username");
String password = request.getParameter("password");
// 判断用户名和密码是否正确
if ("admin".equals(username) && "123456".equals(password)) {
session.setAttribute("user", username);
response.sendRedirect("vote.jsp");
} else {
out.println("<p>用户名或密码错误!</p>");
}
%>
```
在以上示例代码中,我们通过使用session来实现对用户的验证,确保只有已登录的用户才能进行投票操作。同时,我们还使用了application来保存投票结果,确保在不同的用户间共享投票数据。最后,在显示投票结果时,我们使用了include动作,将投票结果页面包含到其他页面中。
当然,以上示例代码只是一个简单的实现,您可以根据自己的需求进行修改和扩展。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)