Я думаю, что проблема может быть здесь:
data: {"mykey":"test value"},
Вам не нужно указывать имя параметра в кавычках:
data: {mykey:"test value"},
Затем в вашем сервлете попробуйте:
String key = request.getParameter("mykey");
Также стоит упомянуть, что вы можете сделать свой ajax следующим образом с помощью jquery (меньше строк):
var params = {mykey: "test value"};
$.post("/test", $.param(params), function(response) {
// handle response here if you have one
});
РЕДАКТИРОВАТЬ:
Я только что протестировалВаш код и смог получить параметр без проблем (в Chrome).Таким образом, кавычки вокруг имени параметра не должны иметь никакого значения.Поэтому попробуйте сделать ваш ajax иначе, чем в моем примере, посмотрите, поможет ли это.