我正在使用Eclipse IDE,并且正在编写servlet。Servlet应该接受html文件中的值,并相应地返回JSON响应。
我的doPost()是:
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { try { res.setContentType("application/json"); res.setHeader("Cache-Control", "nocache"); res.setCharacterEncoding("utf-8"); PrintWriter out = res.getWriter(); JSONObject json = new JSONObject(); String un=req.getParameter("uname"); String pw=req.getParameter("password"); if(un.equals("xxx") && pw.equals("xxx")) json.put("result", "success"); else json.put("result", "fail"); out.print(json.toString()); } catch(Exception e){System.out.print( e.getMessage());} }
当我在Eclipse中运行此servlet时,会出现一个文件下载对话框。
当使用Tomcat在Eclipse外部运行时,出现错误:
root cause java.lang.NoClassDefFoundError: org/json/JSONObject Server1.doPost(Server1.java:25) javax.servlet.http.HttpServlet.service(HttpServlet.java:647) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) root cause java.lang.ClassNotFoundException: org.json.JSONObject org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1713) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558) Server1.doPost(Server1.java:25) javax.servlet.http.HttpServlet.service(HttpServlet.java:647) javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
行Server1.doPost(Server1.java:25)指的是
JSONObject json = new JSONObject();
我已经将org.json.jar添加到了构建路径,并将其添加到了 Properties->Configure build path->Deploymentassembly
Properties->Configure build path->Deploymentassembly
不。这不是正确的方法。 请参阅步骤,
For Classpath reference: 右键单击Eclipse中的项目-> Buildpath->配置构建路径-> Java构建路径(左窗格)-> Libraries(Tab)->添加外部Jars->选择您的jar并选择OK。
For Classpath reference:
For Deployment Assembly: 右键单击Eclipse中的WAR->构建路径->配置构建路径->部署程序集(左窗格)->添加->外部文件系统->添加->选择jar->添加->完成。
For Deployment Assembly:
这是正确的方法!不要忘记删除环境变量。现在不需要。
试试这个。当然可以。尝试使用Maven,它将简化您的任务。