当前位置: 首页 > 知识库问答 >
问题:

如何发送字符串到servlet有空白?

东门越
2023-03-14

我有一个jsp页面,其中有一个下载链接。单击该链接时,它将调用一个servlet downloadservlet,该servlet从数据库获取要下载的文件。但问题是我发送给servlet的文件的标题包含空格。乙二醇=

我现在使用jsp文件下载pdf。此处pdf已下载,但无法打开。任何人都可以建议对代码进行任何更改。

下载jsp

<%@page import="java.sql.*,java.io.*"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
    String connectionURL = "jdbc:oracle:thin:@localhost:1521:xe";
    String title = request.getParameter("title");
    Statement stmt = null;
    Connection con = null;
    Blob b=null;
    try
    {
        String filename = title+".pdf";
        Class.forName("oracle.jdbc.driver.OracleDriver");
        con = DriverManager.getConnection(connectionURL, "shivashukla", "system");
        stmt = con.createStatement();
        String qry = "select * from law where title ='" + title+"'";

        ResultSet rst = stmt.executeQuery(qry);
        if (rst.next())
        {
            b = rst.getBlob(6);
        }
        InputStream in = b.getBinaryStream();
        byte b1[] = new byte[(int) b.length()];
        in.read(b1);
                response.reset();

        //response.setContentType("*.pdf");

        response.setHeader("cache-control", "no-cache");
        //response.setHeader("Content-disposition", "attachment; filename=" + filename);

        response.setContentType("application/pdf");  

response.setHeader("Content-disposition","attachment; filename="+filename);  


    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
%>

jsp页面

<body style="background-color: antiquewhite;">
    <%
        try {
            String cat = (String)session.getAttribute("cat");
            String state = (String)session.getAttribute("state");
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "shivashukla",
                    "system");
            PreparedStatement ps = con.prepareStatement("select * from law where category=? and state=?");
            ps.setString(1, cat);
            ps.setString(2, state);
            ResultSet rs = ps.executeQuery();
    %>

    <table class="table table-bordered table-responsive table-hover" >
        <tr>
            <th>SECTION</th>
            <th>CATEGORY</th>
            <th>TITLE</th>
            <th>STATE</th>
            <th>YEAR</th>
            <th>PDF</th>
        </tr>
        <%
            while (rs.next()) {
        %>
        <tr>
            <td><%=rs.getString(1)%></td>
            <td><%=rs.getString(2)%></td>
            <td><%=rs.getString(3)%></td>
            <td><%=rs.getString(4)%></td>
            <td><%=rs.getString(5)%></td> 
            <td><a href="downloadservlet?title=<%=rs.getString(3)%>" target="_blank">Download</a>
            </td>
        </tr>
        <%
                }
            } catch (Exception e) {
                System.out.println(e);
            }
        %>
    </table>
</body>

共有1个答案

孙京
2023-03-14

您可以使用java。网URL解码器。解码()

尝试从以下位置更改:

String fn = req.getParameter("title");

致:

String fn = java.net.URLDecoder.decode(req.getParameter("title"));
 类似资料:
  • 问题内容: 如何检查字符串是否包含空格字符,空格或“”。如果可能,请提供一个Java示例。 例如: 问题答案: 要检查字符串是否 包含空格,请 使用并调用它的find方法。 如果要检查它是否 仅包含空格, 则可以使用:

  • 处理JSP页时发生异常。第62行 后来呢 bean名称'command'的BindingResult和普通目标对象都不能作为请求属性使用

  • 问题内容: 我需要在系统内进行一些自动测试。有些字段得到了验证,可能不能仅仅通过它来完成(然后,我正在做,它只写了一个字符串,而不是整个字符串。尝试通过字符串迭代sendKeys,也不起作用) 现在,我正在尝试通过javascript将值输入字段。有类似的东西: 但是,我不希望在executeScript中具有值,而在java变量中具有值,因此它看起来更好地工作。并得到一些随机化 我该怎么做? 问

  • 我正在创建一个活动,仅当edittext的内容不是空字符串时,才允许您向edittext中的邮件发送重置链接。但我的控制失灵了。以下是完整的代码: 实际上,在任何情况下,即使字符串为空 (= "") 条件为真,因此我有这个错误: 2021-06-02 16:26:55.015 28645-28645/com。康塔。pophome E/AndroidRuntime:致命异常:主进程:com。康塔。p

  • 问题内容: 我正在构建Android应用程序的项目的C 方面。我需要一些信息(通过字符串和字符串数组)传递给Java应用程序(通过JNI)。我以前从未做过,相反方向的人没有C 的经验,并承认他们不能真正提供帮助。 我确实找到了以下代码(从这里开始) 但这对我来说毫无意义。通常,我不确定如何将其合并到程序的C ++端,而且我无法确切了解其工作原理。代码是否在执行该行时发出消息?还是在for循环中执行

  • 问题内容: 如何删除python字符串中的所有空格?例如,我希望将一个字符串转换为,但是我似乎无法通过以下方式完成此操作: 问题答案: 利用没有sep参数的str.split的行为: 如果只想删除空格而不是所有空格: 过早优化 尽管效率不是主要目标(编写清晰的代码是),但以下是一些初始时间: 请注意,正则表达式已缓存,因此它没有您想象的那么慢。编译事前帮助一些,但在实践中,如果你把这个只会重要 很