<div>data-jsp</div> <div> </div> <div><%@ page language="java" contentType="text/html; charset=UTF-8"<br> pageEncoding="UTF-8"%><br><%@ page import="hq.ConnectDB"%><br><%<br> // 자바파일이 필요하므로 위 코드처럼 임포트합니다.<br>%><br><%<br> request.setCharacterEncoding("UTF-8");<br> String id = request.getParameter("id");<br> String pwd = request.getParameter("pwd");<br> String type = request.getParameter("type");//로그인 요청인지 회원가입 요청인지를 구분하여 메서드를 실행하도록<br> //합니다.<br> //싱글톤 방식으로 자바 클래스를 불러옵니다.<br> ConnectDB connectDB = ConnectDB.getInstance();<br> if(type.equals("login")) {<br> String returns = connectDB.logindb(id, pwd);<br> out.print(returns);<br> } else if(type.equals("join")) {<br> String returns = connectDB.joindb(id, pwd);<br> out.print(returns);<br> }<br>%></div> <div></body><br></html></div> <div> </div> <div>ConnectDB.java</div> <div> </div> <div>package hq;</div> <div>import java.sql.Connection;<br>import java.sql.DriverManager;<br>import java.sql.PreparedStatement;<br>import java.sql.ResultSet;<br>import java.sql.SQLException;</div> <div>public class ConnectDB {<br> // 싱글톤 패턴으로 사용 하기위 한 코드들<br> private static ConnectDB instance = new ConnectDB();</div> <div> public static ConnectDB getInstance() {<br> return instance;<br> }</div> <div> public ConnectDB() {</div> <div> }</div> <div> private String jdbcUrl = "jdbc:mysql://내IP:3306/app"; // MySQL 계정 "jdbc:mysql://localhost:3306/DB이름"<br> private String dbId = "root"; // MySQL 계정 "로컬일 경우 root"<br> private String dbPw = "alsrb851!!"; // 비밀번호 "mysql 설치 시 설정한 비밀번호"<br> private Connection conn = null;<br> private PreparedStatement pstmt = null;<br> private PreparedStatement pstmt2 = null;<br> private ResultSet rs = null;<br> private String sql = "";<br> private String sql2 = "";<br> String returns = "";<br> String returns2 = "";</div> <div> // 데이터베이스와 통신하기 위한 코드가 들어있는 메서드<br> <font>public String joindb(String id, String pwd) {<br> try {<br> Class.forName("com.mysql.jdbc.Driver");<br> conn = DriverManager.getConnection(jdbcUrl, dbId, dbPw);<br> sql = "select id from user where id=?";<br> pstmt = conn.prepareStatement(sql);<br> pstmt.setString(1, id);<br> rs = pstmt.executeQuery();<br> if (rs.next()) {<br> if (rs.getString("id").equals(id)) { // 이미 아이디가 있는 경우<br> returns = "id";<br> } <br> } else { // 입력한 아이디가 없는 경우<br> sql2 = "insert into user values(?,?)";<br> pstmt2 = conn.prepareStatement(sql2);<br> pstmt2.setString(1, id);<br> pstmt2.setString(2, pwd);<br> pstmt2.executeUpdate();</font></div> <div><font> returns = "ok";<br> }<br> } catch (Exception e) {<br> e.printStackTrace();<br> } finally {if (pstmt != null)try {pstmt.close();} catch (SQLException ex) {}<br> if (conn != null)try {conn.close();} catch (SQLException ex) {}<br> if (pstmt2 != null)try {pstmt2.close();} catch (SQLException ex) {}<br> if (rs != null)try {rs.close();} catch (SQLException ex) {}<br> }<br> return returns;<br> }</font></div> <div><font> public String logindb(String id, String pwd) {<br> try {<br> Class.forName("com.mysql.jdbc.Driver");<br> conn = DriverManager.getConnection(jdbcUrl, dbId, dbPw);<br> sql = "select id,pw from user where id=? and pw=?";<br> pstmt = conn.prepareStatement(sql);<br> pstmt.setString(1, id);<br> pstmt.setString(2, pwd);<br> rs = pstmt.executeQuery();<br> if (rs.next()) {<br> if (rs.getString("id").equals(id) && rs.getString("pw").equals(pwd)) {<br> returns2 = "true";// 로그인 가능<br> } else {<br> returns2 = "false"; // 로그인 실패<br> }<br> } else {<br> returns2 = "noId"; // 아이디 또는 비밀번호 존재 X<br> }</font></div> <div><font> } catch (Exception e) {</font></div> <div><font> } finally {if (rs != null)try {rs.close();} catch (SQLException ex) {}<br> if (pstmt != null)try {pstmt.close();} catch (SQLException ex) {}<br> if (conn != null)try {conn.close();} catch (SQLException ex) {}<br> }<br> return returns2;<br> }<br>}</font></div> <div> </div> <div>저빨간곳에서 에러가 나는거같은데..</div> <div>네 안드로이드 데이터를 JSP에서 받으려하는데요.</div> <div> </div> <div>이렇게 했더니 </div> <div> </div> <div>코드상에 에러는 없는데</div> <div> </div> <div><font face="Arial Black">Parameter index out of range (1 > number of parameters, which is 0).</font><br> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:963)<br> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:896)<br> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:885)<br> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)<br> at com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3321)<br> at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3306)<br> at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:4021)<br> at hq.ConnectDB.joindb(ConnectDB.java:45)<br> at org.apache.jsp.data_jsp._jspService(data_jsp.java:130)<br> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)<br> at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)<br> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)<br> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)<br> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)<br> at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)<br> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)<br> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)<br> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)<br> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)<br> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108)<br> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522)<br> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)<br> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)<br> at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)<br> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)<br> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)<br> at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110)<br> at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)<br> at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785)<br> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425)<br> at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)<br> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)</div> <div> </div> <div>이렇게 오류가 뜹니다.</div> <div> </div> <div>저게 구글링해보니 파라미터를 한개더받아서 그렇다는데..</div> <div>어디를 수정해야될지 모르겠습니다.</div> <div>도와주세요 ㅠㅠ</div> <div><br> </div> <div> </div> <div> </div> <div> </div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.