参见英文答案 >

How to use Servlets and Ajax?                                    7个

我正在尝试创建一个简单的登录屏幕,其中包含电子邮件字段,密码字段和登录按钮(所有这三个都包含在< form />中).当用户提交表单时,客户端执行AJAX POST(异步,以便用户不必“遭受”页面重新加载!)到servlet.现在,servlet只进行虚拟检查,如果用户成功登录则返回“1”,如果电子邮件/密码错误则返回“0”.然后客户端处理响应(同样,将为0或1).

发生的事情是这样的:当我提交表单时,servlet接收HTTP POST请求,但电子邮件/密码字段显示为NULL:

public class SigninService extends HttpServlet {

private static final long serialVersionUID = 1L;

@Override

public void doPost(HttpServletRequest request, HttpServletResponse response) {

PrintWriter writer = null;

try {

writer = response.getWriter();

JSONSerializer serializer = new JSONSerializer();

System.out.println("\tFetching POST data...");

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

System.out.println("\tEmail is " + email + "...");

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

System.out.println("\tPassword is " + password + "...");

Integer answer = null;

// Dummy check; will replace with actual code once I get this example working...

if("testing@example.com".equals(email) && "12345".equals(password))

answer = 1;

else

answer = 0;

System.out.println("\tSerializing the HTTP response...");

String json = serializer.deepSerialize(answer);

System.out.println("\tSending response back to client...");

writer.write(json);

} catch (Throwable throwable) {

System.err.println(throwable.getMessage());

throwable.printStackTrace();

} finally {

writer.close();

}

}

}

上面的代码打印了电子邮件/密码的空值.我阅读了几篇关于从HttpServletRequest中提取POST数据的文章(特别是this文章以及this文章),但它们似乎都没有帮助我.两者似乎都建议使用request.getReader()方法,但这不是我需要的.我需要一种方法来直接访问表单变量及其各自的值.

我无法判断我的客户端代码是否错误地格式化POST请求并以Java servlet无法处理的方式发送表单数据,或者Java servlet是否未正确编码以处理请求.

当我运行Firebug并提交表单时,以下是与请求关联的Post选项卡的内容:

-----------------------------18671963685702-some-really-long-number

Content-Disposition: form-data; name="email"

testing@example.com

-----------------------------18671963685702-another-really-long-number

Content-Disposition: form-data; name="password"

12345

-----------------------------18671963685702-and-another-really-long-number--

对于未经训练的人来说,这看起来像客户端正在发送一个非NULL电子邮件变量,以及一个非空的密码变量,但同样,我在这里处于一个不熟悉的领域……

底线

我需要先弄清楚这是客户端还是服务器端的错误.这个问题试图将其诊断为服务器端错误,或者将其排除在外.那么,任何战斗厌倦的servlet老手都会看到HTTP请求或处理它的servlet代码有什么不对吗?如果这是一个服务器错误,我需要更改什么才能访问我的表单变量?

java servlet post取值_Java servlet无法获得POST参数相关推荐

  1. java 从数据库取值_JAVA操作数据库--从一张表中取值,经过判断,然后插入另一张表中。...

    JAVA操作数据库-->从一张表中取值,经过判断,然后插入另一张表中. SQL语句如下:两张表 weather 和 weather_process. id均为自动增长.Oracle中采用序列 S ...

  2. java 枚举类型 取值_java枚举类型

    一: 有时候变量的取值是在有限的集合内,比如说服务器状态:上线.下线.报废等. 可以将这些装备标记为:1.2.3 但是这种情况,我们在给变量赋值的有时候赋值为错误的值比如:0 或者true 这时候就出 ...

  3. java从map取值_java的map取值

    第一种方法根据键值的名字取值 import java.util.HashMap; import java.util.Map; /** * @param args */ public static vo ...

  4. java set循环取值_Java遍历Map和遍历Set

    Java遍历Map public static void main(String[] args) { Map map = new HashMap(); map.put("1", & ...

  5. java从map取值_java map中怎么通过键取出值?

    展开全部 在java map中取出键值有以32313133353236313431303231363533e59b9ee7ad9431333363396464下两种方法: 1.第一种方法根据键值的名字 ...

  6. java 从数据库取值_java 连接数据库取值问题

    publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,ServletExcep ...

  7. java set循环取值_java循环遍历类属性 get 和set值方法

    //遍历sqspb类 成员为String类型 属性为空的全部替换为"/" Field[] fields = sqspb.getClass().getDeclaredFields() ...

  8. Java美元符号取值_java:我如何使用printf打印美元符号和带2位小数的双精度值?...

    我对printf非常不满.如何添加%$ 2F到我的字符串格式,这样我可以得到的东西干净这样的: (我忘了添加"$"更早)java:我如何使用printf打印美元符号和带2位小数的双 ...

  9. java list取值_Java集合详解

    一.集合的由来 通常,我们的程序需要根据程序运行时才知道创建多少个对象.但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型.为了满足这些常规的编程需要,我们要 ...

最新文章

  1. 大厂项目是如何死掉的?太过真实!
  2. python orm benchmark_python 编写ORM
  3. http method
  4. 计算机基础扎实,到底是说什么?
  5. Netflix视频质量感知评价模型之路
  6. LSTM原理解读汇总
  7. Z表数据EXCEL导入
  8. Hive hang without response
  9. java(7)LinkedList源码
  10. ASP/COM+组件开发辅助软件之补充
  11. layoutIfNeeded 就这样把我害惨
  12. GitHub服务中断24小时11分钟事故分析报告
  13. MSP430单片机,大学的回忆
  14. 怎样用Python自制好看的指数估值图
  15. linux制作U盘启动盘无法使用,完美:使用syslinux制作U盘启动盘
  16. 数据传输速率与带宽之间的关系
  17. python调用加签名的接口_python接入开放平台:签名验签、加密解密、授权认证的测试方法...
  18. 苏州外包php,【苏州IT外包经验】Ubuntu 17.10系统下配置PHP+Apache+Mysql
  19. 按计算机病毒的传染方式来分类可以分为良性,5、 计算机病毒分为哪几类?传染途径有哪些?...
  20. [导入]中国民营企业500强

热门文章

  1. php sql update 字段a=字段b的信息_企业级PHP求职最全精品面试100问(附答案)
  2. 如何减小电压跟随器输出电阻_气动操作器FBD5061SF-1蓝宇品牌安徽
  3. CentOS RPM源镜像源(国内+国外)
  4. EPTP 和 EPT 分页结构条目的格式
  5. Paging Structures in the Different Paging Modes
  6. git 打tag_团队开发中的 Git 实践
  7. javascript之调度:setTimeout 和 setInterval
  8. flutter创建一个demo
  9. @Cotroller和@RestCotroller
  10. 服务器ip算是虚拟资产吗,云服务器算资产吗