jsp와 servlets을 사용하여 웹 사이트를 만들고 있는데 기사 편집기가 삽입되었습니다. 그것은 텍스트 영역과 함께 작동하고 편집기에서 모든 코드를 넣어. 그럼 내 서블릿 에서이 코드를 받고 데이터베이스에 삽입 싶어요. 내가 삽입 요청이 을 dB로 만들 것입니다 방법이라고 서블릿과 그 방법에서 다음 sql에 html 코드 삽입
<p><strong>Inner text</strong></p>
<p> </p>
<p><strong>list item:</strong></p>
<ol>
<li><strong>first item</strong></li>
<li><strong>second item</strong></li>
<li><strong>third one</strong></li>
</ol>
<p>remember to turn off bold text</p>
<h1 style="text-align: center;">H1 title</h1>
<p><em>some common italic text</em></p>
<p><span style="text-decoration: line-through;">strikethrough text =3</span></p>
<p><span style="text-decoration: line-through;"> </span></p>
은 다음과 같습니다
: :public void insertArticle(String title, String content) {
Connection con = null;
Statement stmt = null;
String request = "insert into database_name.articles (title, content) values (" + title + ", " + content + ")";
try {
con = DriverManager.getConnection(URL, LOGIN, PASSWORD);
stmt = con.createStatement();
stmt.executeUpdate(request);
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (stmt != null) try {
stmt.close();
} catch (Exception e) {
e.printStackTrace();
}
if (con != null) try {
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
하지만 난 그런 예외가 수신 된 코드는 다음과 같습니다
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' <p><strong>Inner text</strong></p>
<p> </p>
<p><strong>list item:</stron' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
at com.mysql.jdbc.Util.getInstance(Util.java:387)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:942)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3966)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3902)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2526)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2673)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2545)
at com.mysql.jdbc.StatementImpl.executeUpdateInternal(StatementImpl.java:1540)
at com.mysql.jdbc.StatementImpl.executeLargeUpdate(StatementImpl.java:2595)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1468)
at com.lanzdev.classes.DB.insertArticle(DB.java:430)
at com.lanzdev.servlets.article.Editor.doPost(Editor.java:16)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:610)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1777)
나는이 HTML 코드를 수동으로 mysql workbench를 사용하여 삽입하려했지만 작동하지만 응용 프로그램에서는 그렇지 않다.
쿼리에서 앰퍼샌드 및 세미콜론의 의미를 고려하십시오. 연결에 의한'요청'빌드는 안전하지 않습니다.'PreparedStatement'를 체크 아웃하십시오. –