实战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>

最后运行界面如下:

时间: 2025-01-03 16:02:09

实战2--应用EL表达式显示投票结果的相关文章

实战3--应用EL表达式判断用户登录信息

1.判断用户名是否为空,空则显示提示信息 (1)编写index.jsp页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w

如何将数据库中的值经过servlet传入到jsp页面,并且用EL表达式显示出值

方法一:通过id查询某一数据库表中具体的行,将值封装在相应的对象中,如下面的对象Notice servlet中 String noticeId=request.getParameter("noticeId"); Notice displayEditnotice=publicnoticeservice.displayEditnotice(Integer.valueOf(noticeId)); request.setAttribute("list_displayEditnotic

(九)el表达式的使用

一.bean封装 public class Person { private String name="张三"; private int age; private Date birthday; private Address addr; public Person() { super(); } public Person(String name) { super(); this.name = name; } public Address getAddr() { return addr;

strut1.x及JSTL的标签库、EL表达式

struts标签库 国际化配置 配置国际化 1.国际化配置 在struts自带的app中的struts-config.xml中的<message-resources parameter="MessageResources"/>加入到项目中的配置文件中默认为struts-config.xml. 2.国际化文件导入 MessageResources.properties(位于 \struts-1.3.10\src\apps\blank\src\main\java\Message

EL表达式无法显示Model中的数据

EL表达式无法显示Model中的数据 最近在学习SpringMVC,所有的配置都已经完成,但是在测试的时候EL表达式一直无法显示,例如存储在Model中${message},在jsp页面既然原样输出${message},EL表达式好像就无效, 那么问题来了,什么原因导致的不显示了,反复检查代码和配置,依然没有发现错误,代码如下: 首先是Spring Controller import org.springframework.web.servlet.ModelAndView;import org.

Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库

一.jsp部分 只要是与页面显示相关的都是重点 1.jsp的脚本 <%java代码%>:被翻译到service方法内部,局部变量,局部的功能 <%=表达式或变量%>:翻译成service方法中out.write(表达式或变量) <%!java代码%>:被翻译成servlet的全局的内容,方法,全局变量 2.jsp的运行原理 jsp在运行时翻译成servlet index.jsp------>work/index_jsp.java----->work/inde

Spring Model存储值在jsp EL表达式中不能正确显示(原样显示)问题

这几天我搭了一个SpringMvc环境,写了一个Controller,并且Controller里面有一个很简单的映射到jsp页面的方法,如下: 这里的Map<String,String>其实就是Model对象的一个替代品,Spring会把它当成Model的.从代码里看到我存了两个值,然后跳转到dashboard.jsp页面.如下: 当我启动项目,并访问时发现EL表达式原样输出,如下: 我查看了我所有配置,发现没有什么问题.百思不得其解,后来经过google一番,发现原来是web.xml版本不对

如何将servlet中的变量在jsp页面中显示---jsp中的EL表达式

1.EL(Expression Language)表达式 语 法:${},放在body中 2.EL表式一般情况下,从作用域对象中取值作用域对象有四个:pageContext,request,session,application,从小到大 例如: <% int a = 1234; //利用作用域对象设置key-value,即变量 pageContext.setAttribute("a", a); %> -----这是设置在<!DOCTYPE html >标签之上

EL表达式和jsp标签

2 EL表达式 2.1 简介 EL表达式替代jsp表达式.因为开发jsp页面的时候遵守原则:在jsp页面中尽量少些甚至不写java代码. EL表达式作用:向浏览器输出域对象中的变量或表达式计算的结果 基本语法: ${变量或表达式}    代替<%=变量或表达式%> 2.2 EL获取不同类型的数据 普通字符串 普通的对象 数组或List集合 Map集合 2.3 EL执行表达式 算术表达式 比较表达式 逻辑表达式 判空表达式 2.4 EL的11个内置对象 pageContext pageScope