• 关于获取请求参数并处理显示的总结


    最近有个作业

    JavaEE上机考试题目

    根据学号选择题目:

    单数学号完成A题,双数学号完成B题。

    提交页面截屏、源代码(html/jsp/java/xml),制作Word文档,文件名:学号姓名题号.doc, 放于C: est下。
    完成后离开考场,考试期间不可互相交流。

    题目A:  

    制作:

    A、设计登陆页面login.html,页面可以参看图1所示。

    B、编写TestBean.java获取用户提交信息,按照图3提示计算总评成绩。

    C、编写default.jsp,实现成绩输出页面,页面可以参看图3所示。

    D、请注意代码的书写规范,实体的命名规范。

    E、页面效果不要求完全一致,可自行美化。

    编写login.html和default.jsp和 TestBean.java,实现功能如下:

     

    图1

     

    图2

     

     

    图3

    制作:

    A、设计登陆页面login.html,页面可以参看图1所示。

    B、编写TestBean.java获取用户提交信息,按照图3提示计算总评成绩。

    C、编写default.jsp,实现成绩输出页面,页面可以参看图3所示。

    D、请注意代码的书写规范,实体的命名规范。

    E、页面效果不要求完全一致,可自行美化。
    题目B:  

    编写login.jsp和LoginServlet(可使用JavaBeans,也可不用JavaBeans),实现功能如下图:

     

    图4

     

    图5

    制作:

    A、设计登陆页面login.jsp,页面可以参看图4所示。

    B、编写LoginServlet.java获取用户提交信息,按照图5提示比例计算总评成绩。

    C、编写web.xml,部署servlet,由该servlet直接响应login.jsp提交请求。

    D、在Servlet编码时如遇到汉字乱码问题,你可以选择:❶解决这个问题,方案有很多(如需编码转换工具可在网络课堂下载);❷选择使用英文提示,绕过这个问题。不过,用户输入的汉字需要正确显示。

    E、请注意代码的书写规范,命名规范。

    F、页面效果不要求完全一致,可自行美化。

    ,有点想法,现在说说来

    首先,抛开他所说的要求,仅仅从实现功能上来说,有三个方法

    第一,纯页面接受请求显示数据

    login.jsp页面代码

    <%@ page contentType="text/html;charset=gb2312"%>

    <html>
    <head>
    <title>test</title>
    </head>

    <body>
    <b>欢迎参加JavaEE上机考试</b>
    <form action="loginServlet.jsp" method="post">
    <center>
    <b>请输入姓名:<input type="text" name="name" /></b>
    </center><br />
    请输入平时成绩:&nbsp;&nbsp;&nbsp;<input type="text" name="c1" value="88" /><br />
    请输入作业1-5成绩:<input type="text" name="c2" value="99" /><br />
    请输入机考成绩:&nbsp;&nbsp;&nbsp;<input type="text" name="c3" value="77"/><br />
    请出入quiz成绩:&nbsp;&nbsp;&nbsp;<input type="text" name="c4" value="66" /><br />
    <center>
    <input type="submit" value="提交" />
    <input type="reset" value="重置" />
    </center>
    </form>
    </body>
    </html>

    loginServlet.jsp代码:

    <%@ page contentType="text/html;charset=gb2312"%>
    <html>
    <head>
    <title>test</title>
    </head>

    <body>
    <%
    request.setCharacterEncoding("gb2312");
    String name = request.getParameter("name");
    float c1 = Float.parseFloat(request.getParameter("c1"));
    float c2 = Float.parseFloat(request.getParameter("c2"));
    float c3 = Float.parseFloat(request.getParameter("c3"));
    float c4 = Float.parseFloat(request.getParameter("c4"));
    double avg = c1*0.1+c2*0.6+c3*0.2+c4*0.1;
    %>
    <b>欢迎<%=name%>&nbsp;参加JavaEE上机考试<br /></b>
    <center>JavaEE成绩清单</center><br />
    平时成绩(10%)<%=c1%><br />
    作业1-5(60%)<%=c2%><br />
    机考成绩(20%)<%=c3%><br />
    quiz成绩(10%)<%=c4%><br />
    (注:输入百分制的成绩,按以上比例计算总评成绩)<br />
    总评成绩:<%=avg%>
    </body>
    </html>

    第二,使用javabean来接受处理,在loginServlet.jsp中用javabean显示数据处理结果

    Student.java代码

    package zp.com;
    public class Student{
    public String name;//学生姓名
    public float c1; //学生的平时成绩
    public float c2; //学生的作业1-5成绩
    public float c3; //学生的机考成绩
    public float c4; //学生的quiz小测验成绩
    public float avg; //学生总评成绩
    //学生姓名的设置和获取
    public void setName(String name){
    this.name = name;
    }
    public String getName(){
    return this.name;
    }
    //学生的平时成绩的设置和获取
    public void setC1(float c1){
    this.c1 = c1;
    }
    public float getC1(){
    return this.c1;
    }
    //学生的作业1-5成绩设置和获取
    public void setC2(float c2){
    this.c2 = c2;
    }
    public float getC2(){
    return this.c2;
    }
    //学生的机考成绩的设置和获取
    public void setC3(float c3){
    this.c3 = c3;
    }
    public float getC3(){
    return this.c3;
    }
    //学生的quiz小测验成绩的设置和获取
    public void setC4(float c4){
    this.c4 = c4;
    }
    public float getC4(){
    return this.c4;
    }
    public void setAvg(float avg){
    this.avg = avg;
    }
    public float getAvg(){
    return (float)(c1*0.1+ c2*0.6 +c3*0.2 + c4*0.1);
    }
    }

    login.jsp代码和第一个方法一样:这里就不多写了

    loginServlet.jsp代码如下:

    <%@ page contentType="text/html;charset=gb2312"%>

    <jsp:useBean id="student" class="zp.com.Student" scope="page" />

    <html>
    <head>
    <title>test</title>
    </head>

    <body>

    <jsp:setProperty name="student" property="name" param="name" />
    <jsp:setProperty name="student" property="c1" param="c1" />
    <jsp:setProperty name="student" property="c2" param="c2" />
    <jsp:setProperty name="student" property="c3" param="c3" />
    <jsp:setProperty name="student" property="c4" param="c4" />


    <b>欢迎<jsp:getProperty name="student" property="name" />&nbsp;参加JavaEE上机考试<br /></b>
    <center>JavaEE成绩清单</center><br />
    平时成绩(10%):<jsp:getProperty name="student" property="c1" /><br />//这里的四个成绩也都可以调用student内的get方法获得
    作业1-5(60%):<jsp:getProperty name="student" property="c2" /><br />
    机考成绩(20%):<jsp:getProperty name="student" property="c3" /><br />
    quiz成绩(10%):<jsp:getProperty name="student" property="c4" /><br />
    (注:输入百分制的成绩,按以上比例计算总评成绩)<br />
    总评成绩:<%=student.getAvg()%>
    </body>
    </html>

    第三种方法是:用到Servlet来处理页面请求数据,并处理显示

    login.jsp

    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="zp.com.*"%>

    <html>
    <head>
    <title>test</title>
    </head>

    <body>
    <b>欢迎参加JavaEE上机考试</b>
    <form action="ls" method="post">
    <center>
    <b>请输入姓名:<input type="text" name="name" value="test" /></b>
    </center><br />
    请输入平时成绩:&nbsp;&nbsp;&nbsp;<input type="text" name="c1" value="88" /><br />
    请输入作业1-5成绩:<input type="text" name="c2" value="99" /><br />
    请输入机考成绩:&nbsp;&nbsp;&nbsp;<input type="text" name="c3" value="77"/><br />
    请出入quiz成绩:&nbsp;&nbsp;&nbsp;<input type="text" name="c4" value="66" /><br />
    <center>
    <input type="submit" value="提交" />
    <input type="reset" value="重置" />
    </center>
    </form>
    </body>
    </html>

    LoginServlet.java

    package zp.com;
    //默认导入的包有java.lang.*;javax.servlet.*;javax.servlet.jsp.*;javax.servlet.http.*;

    //import java.io.PrintWriter;//类
    //import java.io.IOException;//异常类
    import java.io.*;
    //import javax.servlet.ServletException;//异常类
    import javax.servlet.*;
    //import javax.servlet.http.HttpServlet;//这是个类
    //import javax.servlet.http.HttpServletRequest;//接口
    //import javax.servlet.http.HttpServletResponse;//接口
    import javax.servlet.http.*;


    public class LoginServlet extends HttpServlet{
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
    doPost(request,response);
    }
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
    response.setContentType("text/html;charset=gb2312");
    PrintWriter out = response.getWriter();
    StringBuffer buffer = new StringBuffer();
    buffer.append("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0" + "Transitional//EN">");
    buffer.append("<html>");
    buffer.append("<head><title>");
    String title = "用户请求处理信息";
    buffer.append(title);
    buffer.append("</title></head>");
    buffer.append("<body>");
    String name = request.getParameter("name");
    float c1 = Float.parseFloat(request.getParameter("c1"));
    float c2 = Float.parseFloat(request.getParameter("c2"));
    float c3 = Float.parseFloat(request.getParameter("c3"));
    float c4 = Float.parseFloat(request.getParameter("c4"));
    double avg = c1*0.1+c2*0.6+c3*0.2+c4*0.1;
    buffer.append("<b>欢迎</b>" + name +"<b>参加JavaEE上机考试</b><br />");
    buffer.append("<center><b>JavaEE成绩清单</b></center><br />");
    buffer.append("平时成绩(10%) " + c1 +"<br />");
    buffer.append("作业1-5(60%)" + c2 + "<br />");
    buffer.append("机考成绩(20%)" + c3 + "<br />");
    buffer.append("quiz成绩(10%)" + c4 + "<br />");
    buffer.append("(注:输入的百分制的成绩,按以上比例计算总评成绩)<br />");
    buffer.append("总评成绩 " + avg);
    buffer.append("</body>");
    buffer.append("</html>");
    out.println(buffer.toString());
    }
    }

    web.xml里的配置

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">
    <servlet>
    <servlet-name>loginservlet</servlet-name>
    <servlet-class>zp.com.LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>loginservlet</servlet-name>
    <url-pattern>/ls</url-pattern>
    </servlet-mapping>
    </web-app>

    最后的一点个人看法

    其实后来想想也可以在LoginServlet中通过调用Student.java类来实现数据的计算处理,即:在servlet中在调用javabean

    这样一来其实就把LoginServlet.java仅仅看做是jsp的作用,似乎是披着羊皮的狼,呵呵,这个多少有点违背用servlet的初衷,所以后面的在servlet中用到javabean就不多写了,想这样写的可以好好参照上面的使用方法即可

  • 相关阅读:
    [.net 面向对象程序设计深入](2)UML——在Visual Studio 2013/2015中设计UML用例图
    [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图
    [.net 面向对象程序设计进阶] (28) 结束语——告别2015
    [.net 面向对象程序设计进阶] (27) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git
    [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit
    [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境
    [.net 面向对象程序设计进阶] (24) 团队开发利器(三)使用SVN多分支并行开发(下)
    [.net 面向对象程序设计进阶] (23) 团队开发利器(二)优秀的版本控制工具SVN(上)
    [.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS
    [.net 面向对象程序设计进阶] (21) 反射(Reflection)(下)设计模式中利用反射解耦
  • 原文地址:https://www.cnblogs.com/burns/p/3504591.html
Copyright © 2020-2023  润新知