0

二重のバックスラッシュを試しましたが、同じエラーが発生し続けます。以下は、私が使用しているコードです。

<%@ page  import="java.io.*"%>
<%@ page  import="java.sql.Connection"%>
<%@ page  import="java.sql.DriverManager"%>
<%@ page  import="java.util.HashMap"%>
<%@ page  import="java.util.Map"%>
<%@ page  import="net.sf.jasperreports.engine.*"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Planning</title>
    </head>
    <body>
        <h2>Planning</h2>
        <%
            Connection conn = null;
            try {
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                conn = DriverManager.getConnection("jdbc:sqlserver://DC1VCWSQL105\sql05:1433;databaseName=TD_DA_Test;integratedSecurity=True");
        } catch (Exception ex) {
            ex.printStackTrace();


        }
        File reportFile = new File(application.getRealPath("//bespoke//rapport//Planning.jasper"));
        Map parameters = new HashMap();
        byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(), parameters, conn);

        response.setContentType("application/pdf");
        response.setContentLength(bytes.length);
        ServletOutputStream outStream = response.getOutputStream();
        outStream.write(bytes, 0, bytes.length);
        outStream.flush();
        outStream.close();
    %>

</body>

私の場合、\ が機能しないのはなぜですか? 正確なエラーは次のとおりです。

エラーが発生しました:

PWC6033: Unable to compile class for JSP PWC6197: An error occurred at line: 18 in the jsp file: /bespoke/rapportplanning/Planning.jsp PWC6199: Generated servlet error: Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )  
org.apache.jasper.JasperException: PWC6033: Unable to compile class for JSP PWC6197 
4

4 に答える 4

1

より良い方法は-

String url = "jdbc:oracle:thin:@amrood:1521:EMP";
String user = "username";
String pass = "password"
Connection conn = DriverManager.getConnection(url, user, pass);

または、これらのプロパティをプロパティ ファイルに移動してから使用することもできます -

DriverManager.getConnection(String url, Properties info);
于 2013-08-23T09:20:22.660 に答える
1

@SRI が述べたように、a の「\」は「\」でStringエスケープする必要があります。正しい行は次のようになります。

conn = DriverManager.getConnection("jdbc:sqlserver://DC1VCWSQL105\\sql05:1433;databaseName=TD_DA_Test;integratedSecurity=True");
于 2013-08-23T09:10:19.443 に答える
0

接続 URL に

jdbc:sqlserver://DC1VCWSQL105\sql05:1433;databaseName=TD_DA_Test;integratedSecurity=True

Java コンパイラはエスケープとして扱い\s、有効なエスケープではなくなります。そのため、エラーが発生しました。

Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )  

代わりに使用\\sすると、Java コンパイラは\\エスケープおよびschar として扱います。

于 2013-08-23T09:20:47.833 に答える
0

http://en.wikipedia.org/wiki/Escape_characterここに、エスケープ文字とシーケンスに関する情報があります。あなたのコードには、\適切なエスケープシーケンスが続く必要があるエスケープ文字があり\ます.あなたの出力文字列。\\\

于 2013-08-23T09:20:58.287 に答える