zoukankan      html  css  js  c++  java
  • 实战2--应用EL表达式显示投票结果

    (1)编写index.jsp页面,用于收集投票信息

    <%@ page language="java" pageEncoding="GBK"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>应用EL表达式显示投票结果</title>
        <link rel="stylesheet" type="text/css" href="CSS/style.css">
    
      </head>
      
      <body><form name="form1" method="post" action="PollServlet">
      <table width="403" height="230" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#666666">
        <tr>
          <td height="30" bgcolor="#EFEFEF">·您最需要哪方面的编程类图书?</td>
        </tr>
        <tr>
          <td bgcolor="#FFFFFF"> <input name="item" type="radio" class="noborder" value="基础教程类" checked>
            基础教程类</td>
        </tr>
        <tr>
          <td bgcolor="#FFFFFF"> <input name="item" type="radio" class="noborder" value="实例集锦类">
          实例集锦类 </td>
        </tr>
        <tr>
          <td bgcolor="#FFFFFF"> <input name="item" type="radio" class="noborder" value="经验技巧类">
          经验技巧类</td>
        </tr>
        <tr>
          <td bgcolor="#FFFFFF"> <input name="item" type="radio" class="noborder" value="速查手册类">
            速查手册类</td>
        </tr>
        <tr>
          <td bgcolor="#FFFFFF"> <input name="item" type="radio" class="noborder" value="案例剖析类">
          案例剖析类</td>
        </tr>
        <tr>
          <td align="center" bgcolor="#FFFFFF">
            <input name="Submit" type="submit" class="btn_grey" value="投票">
    &nbsp;
    <input name="Submit2" type="button" class="btn_grey" value="查看投票结果" onClick="window.location.href='showResult.jsp'"></td>
        </tr>
      </table>
     </form>
      </body>
    </html>

    界面如下:

    (2)编写投票功能的Servlet

    package com.wuyudong.servlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.*;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class PollServlet extends HttpServlet {
        private static final long serialVersionUID = -7264414153802032772L;
    
        /**
         * The doPost method of the servlet. <br>
         * 
         * This method is called when a form has its tag value method equals to
         * post.
         * 
         * @param request
         *            the request send by the client to the server
         * @param response
         *            the response send by the server to the client
         * @throws ServletException
         *             if an error occurred
         * @throws IOException
         *             if an error occurred
         */
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            
            request.setCharacterEncoding("GBK"); // 设置请求的编码方式
            String item = request.getParameter("item"); // 获取投票项
            ServletContext servletContext = request.getSession()
                    .getServletContext(); // 获取ServletContext对象该对象在application范围内有效
            
            Map map = null;
            if (servletContext.getAttribute("pollResult") != null) {
                map = (Map) servletContext.getAttribute("pollResult"); // 获取投票结果
                map.put(item, Integer.parseInt(map.get(item).toString()) + 1); // 将当前的投票项加1
            } else { // 初始化一个保存投票信息的Map集合,并将选定投票项的投票数设置为1,其他为0
                String[] arr = { "基础教程类", "实例集锦类", "经验技巧类", "速查手册类", "案例剖析类" };
                map = new HashMap();
                for (int i = 0; i < arr.length; i++) {
                    if (item.equals(arr[i])) { // 判断是否为选定的投票项
                        map.put(arr[i], 1);
                    } else {
                        map.put(arr[i], 0);
                    }
                }
            }
            servletContext.setAttribute("pollResult", map); // 保存投票结果到ServletContext对象中
            response.setCharacterEncoding("GBK"); // 设置响应的编码方式,如果不设置弹出的对话框中的文字将乱码
            PrintWriter out = response.getWriter();
            out.println("<script>alert('投票成功!');window.location.href='showResult.jsp';</script>");
    
        }
    
    }

    (3)编写showResult.jsp页面

    <%@ page language="java" pageEncoding="GBK"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>显示示投票结果页面</title>
        <link rel="stylesheet" type="text/css" href="CSS/style.css">
    
      </head>
      
      <body>
      <table width="403" height="230" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#666666">
        <tr>
          <td height="30" colspan="2" bgcolor="#EFEFEF">·您最需要哪方面的编程类图书?</td>
        </tr>
        <tr>
          <td width="79" align="center" bgcolor="#FFFFFF">        基础教程类</td>
          <td width="321" bgcolor="#FFFFFF">&nbsp;<img src="bar.gif" width='${220*(applicationScope.pollResult["基础教程类"]/(applicationScope.pollResult["基础教程类"]+applicationScope.pollResult["实例集锦类"]+applicationScope.pollResult["经验技巧类"]+applicationScope.pollResult["速查手册类"]+applicationScope.pollResult["案例剖析类"]))}' height="13">
          (${empty applicationScope.pollResult["基础教程类"]? 0 :applicationScope.pollResult["基础教程类"]})</td>
        </tr>
        <tr>
          <td align="center" bgcolor="#FFFFFF">      实例集锦类 </td>
          <td bgcolor="#FFFFFF">&nbsp;<img src="bar.gif" width='${220*(applicationScope.pollResult["实例集锦类"]/(applicationScope.pollResult["基础教程类"]+applicationScope.pollResult["实例集锦类"]+applicationScope.pollResult["经验技巧类"]+applicationScope.pollResult["速查手册类"]+applicationScope.pollResult["案例剖析类"]))}' height="13">
          (${empty applicationScope.pollResult["实例集锦类"] ? 0 :applicationScope.pollResult["实例集锦类"]})</td>
        </tr>
        <tr>
          <td align="center" bgcolor="#FFFFFF">      经验技巧类</td>
          <td bgcolor="#FFFFFF">&nbsp;<img src="bar.gif" width='${220*(applicationScope.pollResult["经验技巧类"]/(applicationScope.pollResult["基础教程类"]+applicationScope.pollResult["实例集锦类"]+applicationScope.pollResult["经验技巧类"]+applicationScope.pollResult["速查手册类"]+applicationScope.pollResult["案例剖析类"]))}' height="13">
          (${empty applicationScope.pollResult["经验技巧类"] ? 0 :applicationScope.pollResult["经验技巧类"]})</td>
        </tr>
        <tr>
          <td align="center" bgcolor="#FFFFFF">        速查手册类</td>
          <td bgcolor="#FFFFFF">&nbsp;<img src="bar.gif" width='${220*(applicationScope.pollResult["速查手册类"]/(applicationScope.pollResult["基础教程类"]+applicationScope.pollResult["实例集锦类"]+applicationScope.pollResult["经验技巧类"]+applicationScope.pollResult["速查手册类"]+applicationScope.pollResult["案例剖析类"]))}' height="13">
          (${empty applicationScope.pollResult["速查手册类"] ? 0 : applicationScope.pollResult["速查手册类"]})</td>
        </tr>
        <tr>
          <td align="center" bgcolor="#FFFFFF">      案例剖析类</td>
          <td bgcolor="#FFFFFF">&nbsp;<img src="bar.gif" width='${220*(applicationScope.pollResult["案例剖析类"]/(applicationScope.pollResult["基础教程类"]+applicationScope.pollResult["实例集锦类"]+applicationScope.pollResult["经验技巧类"]+applicationScope.pollResult["速查手册类"]+applicationScope.pollResult["案例剖析类"]))}' height="13">
          (${empty applicationScope.pollResult["案例剖析类"] ? 0 :applicationScope.pollResult["案例剖析类"]})</td>
        </tr>
        <tr>
          <td colspan="2" align="center" bgcolor="#FFFFFF">
            合计:${applicationScope.pollResult["基础教程类"]+applicationScope.pollResult["实例集锦类"]+applicationScope.pollResult["经验技巧类"]+applicationScope.pollResult["速查手册类"]+applicationScope.pollResult["案例剖析类"]}人投票!
            <input name="Button" type="button" class="btn_grey" value="返回" onClick="window.location.href='index.jsp'"></td>
        </tr>
      </table>
      </body>
    </html>
    l>

    最后运行界面如下:

  • 相关阅读:
    [bzoj3694]最短路
    [bzoj3172][Tjoi2013]单词
    [bzoj2243][SDOI2011]染色
    [bzoj1036][ZJOI2008]树的统计Count
    [学习笔记]树链剖分
    [bzoj4552][Tjoi2016][Heoi2016]排序
    [51nod1515]明辨是非
    [51nod1685]第k大区间
    [日常训练]training
    BZOJ3811: 玛里苟斯
  • 原文地址:https://www.cnblogs.com/wuyudong/p/5089327.html
Copyright © 2011-2022 走看看