黑马程序员技术交流社区

标题: 这个问题究竟出在哪里 [打印本页]

作者: 冯超    时间: 2013-3-31 00:20
标题: 这个问题究竟出在哪里
本帖最后由 冯超 于 2013-3-31 11:14 编辑

1servlet文件
  1. import java.io.IOException;
  2. import java.io.PrintWriter;

  3. import javax.servlet.ServletException;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;


  7. public class registerServlet extends HttpServlet {

  8.         public void doGet(HttpServletRequest request, HttpServletResponse response)
  9.                         throws ServletException, IOException {
  10.                 request.setCharacterEncoding("utf-8");
  11.                 response.setContentType("text/html; charset=UTF-8");
  12.                 //
  13.                 PrintWriter out = response.getWriter();
  14.                 String username = request.getParameter("username");
  15.                
  16.                
  17.                 out.println(username);
  18.         }

  19.         public void doPost(HttpServletRequest request, HttpServletResponse response)
  20.                         throws ServletException, IOException {
  21.         }

  22. }
复制代码
2.jsp文件
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  3. <html>
  4.         <head>

  5.                 <title>My JSP 'register.jsp' starting page</title>
  6.                 <script type="text/javascript">
  7.           //1.创建XMLHttpRequest对象并且获取xmlHttp对象
  8.           function creatXHR(){
  9.                     var xmlHttp;
  10.               if (window.XMLHttpRequest) {
  11.                     xmlHttp = new XMLHttpRequest();
  12.               }
  13.               else if (window.ActiveXObject) {
  14.                         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  15.               }
  16.                
  17.               if (!xmlHttp) {
  18.                   alert("你使用的浏览器不支持XMLhttp对象!")
  19.                   return false;
  20.               }
  21.               return xmlHttp;
  22.           }
  23.             function checkUsername() {
  24.                     //**********
  25.                        //<input id="chName" type="button" value="查看用户名" onclick="checkUsername()" />
  26.                            //<div id="divText"></div>
  27.                     var chNameEle = document.getElementById("user");
  28.                     var value = chNameEle.value;
  29.                     alert(value);
  30.                     //**********
  31.             
  32.                     //1.
  33.                     var xmlHttp = creatXHR();
  34.                     //4.
  35.                     xmlHttp.onreadystatechange = function() {
  36.                                if (xmlHttp.readyState == 4) {
  37.                             if (xmlHttp.status == 200)
  38.                                 alert(xmlHttp.responseText);        
  39.                                                 else {
  40.                                     alert('错误代码:' + xmlHttp.status);
  41.                         }        
  42.                 }
  43.                     }
  44.                     //2.打开和服务器的连接
  45.                     xmlHttp.open("get", "servlet/registerServlet", true);
  46.                     //3.发送数据 若用get 则不会发送任何数据  传递null
  47.             xmlHttp.send(null);
  48.             }
  49.             //4接受服务器信息
  50.             
  51.     </script>
  52.         </head>

  53.         <body>
  54.                 <fieldset>
  55.                         <legend>
  56.                                 请填写用户注册信息
  57.                         </legend>
  58.                         <table border="1px">
  59.                                 <tr>
  60.                                         <td rowspan="2">
  61.                                                 用户名
  62.                                         </td>
  63.                                         <td>
  64.                                                 <input id="user" type="text" name="username" />
  65.                                         </td>
  66.                                 </tr>
  67.                                 <tr>
  68.                                         <td>
  69.                                                 <input id="chName" type="button" value="查看用户名" onclick="checkUsername()" />
  70.                                                 <div id="divText"></div>
  71.                                         </td>
  72.                                 </tr>

  73.                                 <tr>
  74.                                         <td>
  75.                                                 密码
  76.                                         </td>
  77.                                         <td>
  78.                                                 <input type="password" name="password" />
  79.                                         </td>
  80.                                 </tr>

  81.                                 <tr>
  82.                                         <td>
  83.                                                 确认密码
  84.                                         </td>
  85.                                         <td>
  86.                                                 <input type="password" name="password" />
  87.                                         </td>
  88.                                 </tr>

  89.                                 <tr>
  90.                                         <td>
  91.                                                 生日
  92.                                         </td>
  93.                                         <td>
  94.                                                 <input type="text" name="birthday" width="10px" />
  95.                                         </td>
  96.                                 </tr>
  97.                         </table>
  98.                 </fieldset>
  99.         </body>
  100. </html>
复制代码
不要说我路径写错了,不要问我xml文件是什么,那些都没有问题,为什么servlet传递过来的username的值为null,他也一直打印为null,写贴的过程中,突然觉得是不是XMLHttp.send()这个里面是不是一定要传递值,和服务器连接方式是不是一定要用post? 我只是把ajxa视频看了get方式,就做他说的那个案例,用get方式是不是不行啊?
作者: 冯超    时间: 2013-3-31 00:21
明天看回复·····
作者: 黄小贝    时间: 2013-3-31 00:29
本帖最后由 黄小贝 于 2013-3-31 00:38 编辑

你的xmlHttp.send(null);传递一个null,收得到就遇见鬼了~~

servlet里面 request.getParameter("username") 这样想接受到东西,要么POST,要么Get

你的Get并没有通过url传值

我这里大概写下思路,用js取得你填入的username和password然后通过url传过去

xmlHttp.open("get", "servlet/registerServlet?username=yellowbaby", true)
  xmlHttp.send();

,当然最好是用POST传,AJAX post和get传值方法是一样的


作者: 冯超    时间: 2013-3-31 09:44
en ``谢谢
作者: 冯超    时间: 2013-3-31 10:15
黄小贝 发表于 2013-3-31 00:29
你的xmlHttp.send(null);传递一个null,收得到就遇见鬼了~~

servlet里面 request.getParameter("username" ...

照你说的用get方式又出现了第二个问题,就是乱码问题
  我servlet加了   request.setCharacterEncoding("utf-8");
                response.setContentType("text/html; charset=UTF-8");

怎么也会乱码啊··(post方式暂时不讨论)
作者: 黄小贝    时间: 2013-3-31 15:22
tomcat服务器的server.xml需要修改~(一般这个地方容易被忽略,我先假设你其他部分处理好了)

http://blog.csdn.net/qinyu0109/article/details/7348951




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2