<html>
  <head>
    <title>movie</title>

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=GB2312">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
  </head>
    <body>
     <h2>select from available movies</h2>
     <form action = movie method = post>
     <select name = "movies" size = "5" multiple>
     <option> air force </option>
     <option> happy gilmore </option>
     <option> so i married an axe murderer</option>
     <option> austin powers </option>
     <option> pure luck </option>
     </select><br>
     <input type = "submit" name = "add" value = "add movies">
     </form>
   </body>
</html>

解决方案 »

  1.   

    其实我理解的也不是很深,说得也有可能不对。
    request其实是一次请求,而servlet是一个服务器处理你请求的应用程序。当你像服务器发送一个请求的时候,会对你的请求打包成一个数据包发送到服务器,服务器接受到你的数据包以后交给服务器应用程序(servlet)进行处理,处理完成以后并给于响应(response),其实你给与了请求服务器就一定会响应(如果这个服务器存在的话),只是看它怎么响应而已。
    就如同你上面写的这个servlet,首先你输入地址访问这个servlet(其实不是访问servlet,而是访问那个地址),服务器接受到你的请求就交给servlet进行处理。servlet处理完,然后响应一个字符流给你(这个字符流就是你编写的那个html文本),你访问到的那个页面其实就是服务器发送给你的一个字符流。你的浏览器解析这个字符流得到一个html的页面。这个字符流以某种形式保存在你的本机上(客户端)。如果你受到的html文本是一个表单,这个表单不是在服务器上,而是在你本机上,它是服务其发给你的。当你填写表单信息并按提交按钮的时候,这又是一次请求了,这次请求吧你的请求信息再次打包,包括表单里面填写的那些信息一起打包并提交。服务器再次解析他们并交给服务器应用程序(servlet)进行处理,处理完以后并且响应。
    大概全过程就是如此
      

  2.   

    我写的这个页面是第一个页面,比如说我在地址栏中输入http:localhost:8000/sessionMovie/movie.html
    在我的页面接收到显示信息之前,web服务器是如何如何得到并把页面发送给我的呢?
    我上面写的servlet只是接收这个页面的信息,并在控制台打印,那么,我将如何得到第一个页面呢?
      

  3.   

    你向服务器发送一个请求,请求里面包含了各种信息,例如你机器的IP地址,你用的什么浏览器,你以什么方式访问的服务器(FTP,HTTP),你请求的是什么东西,等等都会在请求里面,服务器知道这些难道不能吧页面发给你?
    你上面写的那个servlet里面的out输出流都是向客户端发送信息,很明显,你的out是从response里面获得的,response是响应不是请求。
    你从客户端获得的信息是request.etParameterValues这个方法中获得的。
    这个servlet不仅仅获得表单提交的值,同样也向客户端发送了一个页面。