servlet不工作(也有空指针错误),servlet无法';无法从javascript获取值
我找不到servlet不在这里工作的原因 因此,在html中,我有一个选择国家字段,首先为空。一旦我单击下拉菜单不选择任何内容,然后单击其他任何位置,它将在字段旁边显示错误消息(请选择一个国家) html: servlet: 在servlet中,如果我不添加servlet不工作(也有空指针错误),servlet无法';无法从javascript获取值,javascript,html,tomcat,servlets,Javascript,Html,Tomcat,Servlets,我找不到servlet不在这里工作的原因 因此,在html中,我有一个选择国家字段,首先为空。一旦我单击下拉菜单不选择任何内容,然后单击其他任何位置,它将在字段旁边显示错误消息(请选择一个国家) html: servlet: 在servlet中,如果我不添加if(c!=null)条件,它将给出null指针错误。我尝试在浏览器中键入,以测试servlet是否正常工作。同样,如果我不添加如果(c!=null),它会给出HTTP状态500-java.lang.NullPointerException
if(c!=null)
条件,它将给出null指针错误。我尝试在浏览器中键入,以测试servlet是否正常工作。同样,如果我不添加如果(c!=null)
,它会给出HTTP状态500-java.lang.NullPointerException
然而,无论我在country字段中选择什么,servlet中的字符串c总是空的。
此外,即使字符串c为null,那么,out.print(“*testing!*”)
也应该返回到var return\u data=req.responseText
(在javascript中),但它没有返回。国家/地区字段旁边没有错误消息:“正在测试”
我检查了apache文件夹
C:\apache-tomcat-7.0.68\work\Catalina\localhost/ibmProject
它是空的,它应该有一些文件吗
我意识到警报(“嗨,这里是validateCountry内部”)
;(javascript)从不执行。所以,我想问题在于
var url=”http://localhost:8080/ibmProject/servlet?select-country=“+t.值()”代码>(在javascript中)
这条线。
java位于此处。
NetBeansProject\ibmProject\src\java
html、javascript和css都在这里:
\NetBeansProject\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...!*");
}
}
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>
servlet
servlet
servlet
/servlet
30
有人能帮忙吗?
非常感谢 如果从未调用您的onblur
处理程序:您是否检查过它的可用性,例如使用Firebug或浏览器的开发工具?只要通过一个临时按钮自愿地执行它,并将控制台放在视线范围内——它可能是某个地方的一个简单的打字错误。另外,我不太明白为什么从未调用您的validateCountry()
(或其中的警报),但您仍然会遇到servlet问题
说到servlet:您是如何在processRequest()
中实现您的逻辑的
按照中的建议将其移动到doGet()
或service()
。它将在适当的位置,如果参数存在于请求中,它将可用。如果愿意,可以在那里设置一个断点,并检查请求对象中的参数,以了解实际获得的数据。谢谢,这里有一个简单的输入错误。var url=”“+t.value();--<在这里应该是t值
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...!*");
}
}
<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>