servlet不工作(也有空指针错误),servlet不能't从javascript中获取值
servlet is not working (also has null pointer error) , servlet couldn't get the value from javascript
我找不到servlet不能在这里工作的原因。
因此,在html中,我有一个select country字段,首先为空。一旦我单击下拉菜单不选择任何内容,然后单击其他任何位置,它就会在字段旁边显示错误消息(请选择国家)。
html:
<select id="select-country" name = "select-country/region" onblur="validateCountry()">
<option value = "" selected = "selected">Select One</option>
<option value ="AU">Australia</option>
<option value ="BA">Bahamas</option>
<option value ="CN">China</option>
<option value ="DK">Denmark</option>
<option value ="US">United States</option>
</select>
<span id = "countryError"></span>
javascript:
var req;
var f;
var t;
function validateCountry()
{
t = document.getElementById("select-country");
f = document.getElementById("countryError");
alert ("start here" + t.value);
var url = "http://localhost:8080/ibmProject/servlet?select-country=" + t.value();
alert ("Hi,here is inside validateCountry");
req = new XMLHttpRequest();
req.open("GET", url, true);
req.onreadystatechange = callback;
req.send(null);
}
function callback()
{
alert ("Hi,here is inside countryValidation");
if (req.readyState === 4 && req.status === 200)
{
var return_data = req.responseText;
alert("callback: " + return_data);
f.innerHTML = return_data;
f.style.color = "#FF0000";
t.focus();
}
}
servlet:
在servlet中,如果我不添加if(c!=null)
条件,它会给出空指针错误。我试着打字http://localhost:8080/ibmProject/servlet在浏览器中测试servlet是否工作。同样,如果我不添加if(c!=null)
,它会给出HTTP状态500-java.lang.NullPointerException.
然而,无论我在country字段中选择什么,servlet中的字符串c始终为null。此外,即使字符串c为null,out.print("*testing!*")
也应该返回给var return_data = req.responseText
(在javascript中),但它没有。没有错误消息:"测试"旁边的国家字段。
我检查了apache文件夹,
C: ''apache-tomcat-7.0.68''work''Catalina''localhost/ibmProject
它是空的,是不是有一些文件?
我意识到alert ("Hi,here is inside validateCountry")
;(javascript)从不执行
所以,我想问题是关于var url = "http://localhost:8080/ibmProject/servlet?select-country=" + t.value();
(javascript)这条线。servlet.java位于此处。NetBeansProjects''ibmProject''src''java
html、javascript、css都在这里:''NetBeansProjects''ibmProject''web
public class servlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/plain;charset=UTF-8");
//response.setHeader("Access-Control-Allow-Origin", "*");
PrintWriter out = response.getWriter();
String c = request.getParameter("select-country");
if(c!=null)
{
System.out.println("Finally!!!!!!!!!!!!!!!!!!!!------------------------------------"+c);
if (c.equals(""))
{
out.print("*Please select a country!*");
}
else
{
out.print("");
}
}
else
{
out.print("*testing...!*");
}
}
pic1
web.xml:
<servlet>
<servlet-name>servlet</servlet-name>
<servlet-class>servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet</servlet-name>
<url-pattern>/servlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
有人能帮忙吗?真的很感激。
如果您的onblur
处理程序从未被调用:您是否检查过它的可用性,例如使用Firebug或浏览器的开发工具?只需通过一个临时按钮自愿执行它,并保持控制台在视线范围内——这可能是某个地方的一个简单打字错误。此外,我不太明白为什么validateCountry()
从未被调用(或其中的警报),但servlet仍然会遇到问题。
谈到servlet:您是如何在processRequest()
中实现逻辑的?
按照HttpServlet's
javadoc中的建议将其移动到doGet()
或service()
。它将在适当的位置,如果请求中存在参数,它将可用。如果您愿意,可以在那里设置一个断点,并检查请求对象的参数,以了解实际得到的数据。
- JSON分析错误:Java中AJAX、Javascript和Servlet的意外EOF
- Servlet仅在单击JavaScript警报消息后重定向
- 如何区分javascript中的servlet响应
- 为什么我得到responseText(通过Ajax从Servlet到javaScript)和额外的字符
- Servlet对浏览器上显示的纯文本Javascript的响应
- 在javascript中获取servlet值,并使用ajax将该值分配给一个文本框
- 从 Servlet 调用 Javascript 函数
- 从JavaScript到servlet的Ajax调用
- 将servlet请求从javascript发送到java给出了“;请求的资源不可用”;
- 将hashmap从javascript传递到servlet
- 数据库、servlet、json、javascript和highchart饼图
- servlet不工作(也有空指针错误),servlet不能't从javascript中获取值
- javaScript初学者:将数据从java脚本发送到servlet
- 如何在jsp中的javascript函数中从servlet获取json返回
- Java servlet对JavaScript的响应
- 将一个数组从javascript传递到servlet
- 如何在使用servlet处理时使用javascript设置隐藏变量的值
- 当从servlet返回到JSP时,Javascript的变化非常明显
- 从函数从 JavaScript 调用 servlet 的 Ajax 不返回值
- Servlet/Javascript chunking