1、投票界面 (index.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>应用EL表达式显示投票结果</title>
<style>
ul{
list-style: none;
}
li{
padding:5px;
}
</style>
</head>
<body>
<h3>您最需要哪方面的编程类图书?</h3>
<form name="form1" method="post" action="PollServlet">
<ul>
<li><input name="item" type="radio" class="noborder" value="基础教程类" checked>基础教程类</li>
<li><input name="item" type="radio" class="noborder" value="实例集锦类">实例集锦类 </li>
<li><input name="item" type="radio" class="noborder" value="经验技巧类">经验技巧类</li>
<li> <input name="item" type="radio" class="noborder" value="速查手册类">速查手册类</li>
<li><input name="item" type="radio" class="noborder" value="案例剖析类">案例剖析类</li>
<li> <input name="Submit" type="submit" class="btn_grey" value="投票">
<input name="Submit2" type="button" class="btn_grey" value="查看投票结果" onClick="window.location.href='showResult.jsp'"></li>
</ul>
</form>
</body>
</html>
2、servlet 处理代码: (PollServlet.java)
package com;
import java.awt.Window;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class PollServlet
*/
@WebServlet("/PollServlet")
public class PollServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public PollServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//response.getWriter().append("Served at: ").append(request.getContextPath());
request.setCharacterEncoding("UTF-8");
Map mp = null;
String typ= request.getParameter("item");
ServletContext sContext=request.getSession().getServletContext();
int tl=0;
if(sContext.getAttribute("result")!=null){
mp=(Map) sContext.getAttribute("result");
mp.put(typ, Integer.parseInt(mp.get(typ).toString())+1);
tl=(int)sContext.getAttribute("tol");
tl++;
}
else {
String []str={"基础教程类","实例集锦类","经验技巧类","速查手册类","案例剖析类"};
mp=new HashMap();
for(int i=0;i<str.length;i++){
if(str[i].equals(typ)){
mp.put(str[i], 1);
tl=1;
}
else {
mp.put(str[i], 0);
}
}
}
sContext.setAttribute("tol", tl);
sContext.setAttribute("result", mp);
//设置响应的类型和编码方式,如果不设置,弹出对话框中的文字将显示乱码
response.setContentType("text/html;charset=UTF-8");
PrintWriter out=response.getWriter();
out.println("<script>alert('投票成功!');window.location.href='showResult.jsp';</Script> ");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
3、EL 结果显示(showResult.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>显示投票结果页面</title>
<style>
ul{
list-style: none;
}
li{
padding:5px;
}
</style>
</head>
<body>
<h3>您最需要哪方面的编程类图书?</h3>
<form name="form1" method="post" action="PollServlet">
<ul>
<li>基础教程类: <img src="bar.gif" width='${220*(applicationScope.result["基础教程类"]/applicationScope.tol)}' height="13">
(${empty applicationScope.result["基础教程类"]? 0 :applicationScope.result["基础教程类"]})</li>
<li>实例集锦类: <img src="bar.gif" width='${220*(applicationScope.result["实例集锦类"]/applicationScope.tol)}' height="13">
(${empty applicationScope.result["实例集锦类"] ? 0 :applicationScope.result["实例集锦类"]})</li>
<li>经验技巧类: <img src="bar.gif" width='${220*(applicationScope.result["经验技巧类"]/applicationScope.tol)}' height="13">
(${empty applicationScope.result["经验技巧类"] ? 0 :applicationScope.result["经验技巧类"]})</li>
<li>速查手册类: <img src="bar.gif" width='${220*(applicationScope.result["速查手册类"]/applicationScope.tol)}' height="13">
(${empty applicationScope.result["速查手册类"] ? 0 : applicationScope.result["速查手册类"]})</li>
<li>案例剖析类: <img src="bar.gif" width='${220*(applicationScope.result["案例剖析类"]/applicationScope.tol)}' height="13">
(${empty applicationScope.result["案例剖析类"] ? 0 :applicationScope.result["案例剖析类"]})</li>
<li> 合计:${applicationScope.tol}人投票!
<input name="Button" type="button" class="btn_grey" value="返回" onClick="window.location.href='index.jsp'"></li>
</ul>
</form>
</body>
</html>