JSP简明教程:令人兴奋的脚本编程

2019-05-27 21:33:37刘景俊


  图2.一个web站点回馈表单


  图中按钮:submit query--提交;reset――重填

  表单句柄将会检验名称和意见栏以确定它们已被填写,如果其中任何一个或两个是空白的,表单句柄会生成一条错误信息;否则它将继续查看用户意见是否与预先设定的字串匹配。如果匹配,它就输出一条专门的信息;否则输出“thank you”。

  例2

  <HTML>

  <HEAD>

  <META NAME="GENERATOR" Content="NetObjects ScriptBuilder 2.01">

  <TITLE>Feedback Results</TITLE>

  </HEAD>

  <%!

  // 姓名和意见栏不能为空白

  // 检查它们的值并返回结果

  boolean validateInput(String name, String comment) {

   boolean result = true;

   // 如果姓名或意见未填写,返回 false 以表明输入无效

   if (name.length() == 0)

     result = false;

   if (comment.length() == 0)

     result = false;

   return result;

  } // 结束输入验证validateInput



  // 根据表单上的意见栏输出结果

  String getStringCheese (String comment) {

   String cheese = "I like cheese.";

   String result;

   if (comment.compareTo(cheese) == 0)

    result = "We like cheese too!";

   else

    result = "We hope someday you'll learn to like cheese.";

   return result;

  } //结束 getStringCheese

  %>

  <BODY BGCOLOR="#F0F0E0">

  <%

   // 获取通过表单提交的数据

   String name = request.getParameter("name");

   String age = request.getParameter("age");

   String comment = request.getParameter("comment");

   boolean isValid;

   isValid = validateInput(name, comment);

   // 根据用户是否未填写姓名或意见栏决定输出内容

   if (isValid) {

  %>

  <H2>Thank you for your feedback!</H2>

  <H3>

  <%

    //输出意见栏的查询结果

    out.println(getStringCheese(comment));

   } // 结束 if 程序段

  else {

    out.println("You didn't give us your name or a comment.");

  %>

  </H3>

  Please <a href="feedback_form.html">try again</a>

  <%

   } //结束 else 程序段

  %>

  </BODY>

  </HTML>

  这个例子假定用户输入的意见是“I like cheese."(我喜欢奶酪)在代码中可以看到,这一响应是为填写这条意见的用户定制的。表单句柄将会返回如图3所示的页面: