通过 EL + servlet显示投票结果

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>








  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏油

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值