Tag: servlets

App Engine Java Servlet无法连接到Cloud SQL

我使用app引擎创建了一个java web servlet,servlet向数据库发出请求。 我已经使用本地数据库在本地测试了servlet并且它运行良好,然后我继续在本地测试servlet但是仍然访问了Cloud SQL数据库,这也很有效。 我部署servlet后出现问题。 部署完所有数据库请求后返回以下内容: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 我在云控制台中检查了一下,我的应用程序已正确添加到访问控制选项卡下的云SQL授权应用程序引擎应用程序中。 是否有人在部署的应用引擎servlet上遇到过类似的问题? 那里有任何解决方案或建议吗? 我将不胜感激任何帮助! 更新: 使用以下代码生成上述错误以访问db Class.forName(“com.mysql.jdbc.Driver”); Url = “jdbc:mysql://:3306/”; Connection con = DriverManager.getConnection (Url,”root”,); 使用此代码实现了同样的错误,请注意它与此处示例中显示的代码非常相似https://developers.google.com/appengine/docs/java/cloud-sql/ Class.forName(“com.mysql.jdbc.GoogleDriver”); Url = “jdbc:google:mysql:///? user=root&password=”; Connection […]

如何在servlet上设置内容类型

我正在使用一个简单的servlet,它将数据库中的文档内容作为字节数组发回。 我想设置一个内容类型,以便在通过doGet()调用检索它时具有适当的扩展名。 我确实将文档的类型存储为数据库中的元数据(例如png,gif,png,xls,docx …)。 我应该将什么设置为内容类型以便保留文件扩展名? 下载的文件名为“doc”,如何在servlet上设置要下载的数据的文件名。

如何重用HttpUrlConnection?

我有兴趣重用一个HttpUrlConnection(作为我正在开发的服务器和客户端之间的状态协议的一部分)。 我知道持久性http有一个Connection = keep-alive标头。 现在,我想知道如何重用这样一个问题。 我写了这段代码: URL u = new java.net.URL(“http://localhost:8080/Abc/Def”); HttpURLConnection c = (HttpURLConnection) u.openConnection(); c.setRequestMethod(“GET”); c.setRequestProperty(“Connection”, “keep-alive”); c.setHeader(“A”,”B”); c.getInputStream() //here I see that server gets my messages (using DEBUG) c.setHeader(“B”,”C”); // 现在我如何重新发送这个“B”标头到服务器,我尝试重新连接等,但没有任何东西让它工作。 并且服务器还执行response.setHeader(“Connection”, “keep-alive”); 我看过许多论坛,但没有人写过这个。 也许HttpURLConnection不处理这个?

从简单的java类获取HttpSession | Request而不是servlet类

我希望会话对象不在servlet类中,而是普通的应用程序。 WEB.XML com.abc.web.ApplicationManager com.abc.web.SessionManager ViewPrices.java public class ViewPrices implements Cloneable, Serializable { Session session = request.getSession(); servletContext.getSession() anyWay.getSession(); }

单击超链接调用servlet

有没有办法在不使用JavaScript的情况下点击超链接调用Java Servlet?

在Servlet中使用org.json会导致java.lang.ClassNotFoundException:org.json.JSONException

我正在尝试开发一个servlet来发送一些JSON对象,但我得到了几个例外。 我相信我需要添加一些jar文件,但我不确定哪个。 这是doGet方法以及我导入的所有内容: import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.json.JSONException; import org.json.JSONObject; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(“application/json”); PrintWriter out = response.getWriter(); JSONObject obj = new JSONObject(); try { obj.put(“name”, “jad”); } catch (JSONException e) { // TODO Auto-generated catch block […]

将InputStream写入HttpServletResponse

我有一个我想要写入HttpServletResponse的InputStream。 有这种方法,由于使用byte []需要太长时间 InputStream is = getInputStream(); int contentLength = getContentLength(); byte[] data = new byte[contentLength]; is.read(data); //response here is the HttpServletResponse object response.setContentLength(contentLength); response.write(data); 在速度和效率方面,我想知道最好的方法是什么。

与json_encode(在PHP中)相当的JSP是什么?

我正在尝试将JSP servlet编码为JSON。 JSP中json_encode()在PHP中的等价物是什么?

控制servlet中的类路径

我的servlet应用程序包含许多库.jars,其中一些包含嵌入的log4j.xml或log4j.properties文件。 我想确保log4j首先找到我的log4j.xml! 我已经尝试在servlet中搜索各种类路径元素的优先级的一些规范(例如WEB-INF / classes总是在WEB-INF / lib之前?),或者某种方式来配置或调整servlet的类加载器以便给定的资源目录出现在类路径的早期。 到目前为止,我已经画了一个空白。 有关确保servlet .war文件通过类加载器加载正确的log4j.xml的任何建议吗?

如何在JSP / Servlet中获取用户角色

有没有办法获得一个String []与用户在JSP或Servlet中的角色? 我知道request.isUserInRole(“role1”),但我也想知道用户的所有角色。 我搜索了servlet源代码,似乎这是不可能的,但这对我来说似乎很奇怪。 所以…任何想法?