public class QRCodeServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
String qrtext = request.getParameter("qrtext");
ByteArrayOutputStream out = QRCode.from(qrtext).to(ImageType.PNG).stream();
response.setContentType("image/png");
response.setContentLength(out.size());
OutputStream outStream = response.getOutputStream();
outStream.write(out.toByteArray());
outStream.flush();
outStream.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
这是我用来生成 QRCode 的代码。我使用outputStream将QRCode显示到浏览器。但是如何将该 QRCode 保存为服务器上的图像文件并使用标签将其显示在另一个 html 文件中? 我在这里使用 iText 库生成 QrCode。
最佳答案
如果保存是可选的,但需要在HTML文件(实际上是JSP)中显示...接下来怎么办?
如果请求中有参数txt
:
<% var txt = request.getParameter("txt"); %>
<img src="/context/servletMapping?qrtext=<%=java.net.URLEncoder(txt, "UTF-8")%>">
对于 JSTL,请参阅 How to URL-encode a String with JSTL?
关于java - 如何将我刚刚生成的QRCode图像文件保存到服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17430982/