获取不到UserName

angelcm51 2009-04-16 05:48:19
package example_3;

import java.io.IOException;
import java.io.PrintWriter;

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 MessageServlet extends HttpServlet {


public void destroy() {
super.destroy(); // Just puts "destroy" string in log
}


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html;charset=GB2312");
response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
String strMsg=null;
request.setCharacterEncoding("GBK");
strMsg=request.getParameter("message");
if (strMsg==null||strMsg.equals("")) {
displayHtml(out);
} else {
ServletContext app=getServletContext();
StringBuffer objMsg=(StringBuffer)app.getAttribute("objMessage");
if(objMsg==null){
objMsg=new StringBuffer("");
}
String UserName=request.getParameter("name");//这段,我不明白这个name是指的哪里,好像我的这个文档里面就没有存名字的name,在别的文档又要怎么获得呢。
objMsg.append("<b>"+UserName+"说:</b>"+strMsg+"<br>");
app.setAttribute("objMessage", objMsg);
displayHtml(out);
}
out.flush();
out.close();
}

public void displayHtml(PrintWriter out){
out.println("<html>");
out.println("<head><title>MessageServlet</title></head>");
out.println("<body bgcolor=\"#00ffff\" onload='javascript:frm.message.focus();'>");
out.println("<form method='post' name='frm'>");
out.println("<input type='textbox' name='message' size='40'>");
out.println("<input type='submit' value='发送'>");
out.println("</form>");
out.println("</body>");
out.println("</html>");
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}


public void init() throws ServletException {
// Put your code here
}

}

String UserName=request.getParameter("name");//
这个name是指这里的吗?如果是,取不到也正常了。是按照书上的例子写的,怀疑是书上写错了。。。
out.println("<form method='post' name='frm'>");
out.println("<input type='textbox' name='message' size='40'>");


在这里面有存有名字
package example_3;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Vector;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class UserList extends HttpServlet {


public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html;charset=GB2312");
response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("<meta HTTP-EQUIV='REFRESH' content='3;userlist'>");
out.println(" <HEAD><TITLE>UserList</TITLE></HEAD>");
out.println(" <BODY bgcolor=\"#ffff00\">");
Vector usr=(Vector)getServletContext().getAttribute("userArray");
request.setCharacterEncoding("GBK");
String UserName=request.getParameter("userName");
if (usr==null) {
throw new ServletException("Servlet中发生错误.");
}
for(int i=0;i<usr.size();i++)
{
if(String.valueOf(usr.get(i)).equals(UserName)){
out.println("<b>"+String.valueOf(usr.get(i))+"</b><br>");
}
else {
out.println(String.valueOf(usr.get(i))+"<br>");
}
}
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}


public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doGet(request,response);
}


public void init() throws ServletException {
// Put your code here
}

}


要输出到这里
package example_3;

import java.io.IOException;
import java.io.PrintWriter;

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 DisplayServlet extends HttpServlet {

public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();
ServletContext app=getServletContext();
StringBuffer strMsg=(StringBuffer)app.getAttribute("objMessage");
if(strMsg==null){
strMsg=new StringBuffer(" ");
}
displayHtml(out,strMsg);

out.flush();
out.close();
}

public void displayHtml(PrintWriter out,StringBuffer msgBuffer){
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("<meta http-equiv='refresh' content='3;displayServlet'>");
out.println(" <HEAD><TITLE>MessageServlet</TITLE></HEAD>");
out.println(" <BODY bgcolor=\"#dd00ff\">");
out.println(msgBuffer.toString());
out.println(" </BODY>");
out.println("</HTML>");

}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doGet(request,response);
}

public void init() throws ServletException {
// Put your code here
}

}




这是第一个页面

package example_3;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class UserServlet extends HttpServlet {


public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html;charset=GBK");
response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>UserServlet</TITLE></HEAD>");
out.println(" <BODY bgcolor=\"#ffffff\" onload='javascript:frm.userName.focus();'>");
out.println("<FORM method=post action='/talk/servlet/main'name='frm'><center>请输入您的昵称<br><input type='text' " +
"name='userName'><input type='submit' value='聊天'></center></form>");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}


public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doGet(request,response);
}


public void init() throws ServletException {
// Put your code here
}

}
...全文
91 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gwikimo 2009-04-18
  • 打赏
  • 举报
回复
http://.../XXXservlet?name=wiki类似这样的方式就是request.getParameter("name")去获取的,如果name不行的话,你换个别的名字试试,因为我也碰到过这样的问题,不知道是不是因为name属于那种关键字会造成取不到值。
cnidb 2009-04-16
  • 打赏
  • 举报
回复
只有没有对应的属性,没有取不到的值
guoliping2009 2009-04-16
  • 打赏
  • 举报
回复
String UserName=request.getParameter("userName")中userName 与<input type="text" name="userName"/>中的name属性值应该是相同的
angelcm51 2009-04-16
  • 打赏
  • 举报
回复
我就是想服务端发送请求的时候地址是这样的http://.../XXXservlet?name=wiki,就是获取问号后面name的值
这样应该怎么做呢,1L说的用userName我试过了不行才来问的。。。
gwikimo 2009-04-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhoushaolan 的回复:]
String UserName=request.getParameter("name");//这段,我不明白这个name是指的哪里,好像我的这个文档里面就没有存名字的name,在别的文档又要怎么获得呢。
这么多,这个name对应你表单或url提交过来的字段名;

out.println(" <FORM method=post action='/talk/servlet/main'name='frm'> <center>请输入您的昵称 <br> <input type='text' " +
"name='userName'> <input type='submit' value='聊天'> </center> </form>");

[/Quote]

又细看了下,如楼上所说,你应该是写错了。
gwikimo 2009-04-16
  • 打赏
  • 举报
回复
String UserName=request.getParameter("name");
我没有查看全部的代码,只是解释下该语句。在这里的意思就是获取从客户端以get方式提交的数据,对应参数的名字为name,
例:
<input type="hidden" value="wiki" name="name"/>
那我得到的userName就是wiki了。
或者你想服务端发送请求的时候地址是这样的http://.../XXXservlet?name=wiki,就是获取问号后面name的值。
zhoushaolan 2009-04-16
  • 打赏
  • 举报
回复
String UserName=request.getParameter("name");//这段,我不明白这个name是指的哪里,好像我的这个文档里面就没有存名字的name,在别的文档又要怎么获得呢。
这么多,这个name对应你表单或url提交过来的字段名;

out.println("<FORM method=post action='/talk/servlet/main'name='frm'><center>请输入您的昵称<br><input type='text' " +
"name='userName'><input type='submit' value='聊天'></center></form>");
估计是这个

改成:String UserName=request.getParameter("userName");//名字要相同才取的到乃..

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧