티스토리 뷰

평소 개발시 스프링 프레임워크 또는 전자정부 표준프레임워크, model2 방식으로 ajax를 사용하는 것은 생각보다 쉽다.

하지만 순수 jsp로, model1 방식으로 ajax를 사용해야 할 때 요청은 보낼 수 있지만 요청을 받는 응답부분에서는 어떻게 return 또는 처리를 해야하나?

생각이 들고 궁금했다.

생각보다 간단했다.

요청을 받고 응답하는 jsp에서 EL, <%=%>, XML, JSON형식으로 출력해주면 된다. 쉽게 말하면 그냥 HTML을 작성(출력)하듯이 하면 된다.

밑의 소스는 사용자의 아이디가 있는지 없는지 중복여부를 체크하는 간단한 요청에 응답해주는 페이지 소스이다.

밑에서 보면 <%=result%> 부분이 있는데 저 부분이 ajax로 요청시 응답해주는 부분이다.

XML이나 JSON으로 응답(return)할 때에는 물론 그에 따른 변환을 해주면 되는 것.

예를들어 JSON으로 응답을 해준다면....

out.println("JSON형식"); 이렇게


<%@page import="org.apache.catalina.Session"%>

<%@page import="java.sql.Statement"%>

<%@page import="java.sql.ResultSet"%>

<%@page import="java.sql.PreparedStatement"%>

<%@page import="java.sql.Connection"%>

<%@page import="java.sql.DriverManager"%>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%!

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

String URL = "jdbc:oracle:thin:@localhost:1521:XE";

String ID = "hr";

String PWD = "hr";

Session session = null;

int result;

%>

<%

try{

String user_id = request.getParameter("user_id");

String sql = "SELECT COUNT(1) FROM TEST_MEMBER WHERE USER_ID='"+user_id+"'";

Class.forName("oracle.jdbc.driver.OracleDriver");

conn = DriverManager.getConnection(URL, ID, PWD);

stmt = conn.createStatement();

rs = stmt.executeQuery(sql);

rs.next();

result = rs.getInt(1);

}catch(Exception e){

e.printStackTrace();

}finally{

if(rs != null){

rs.close();

}

if(stmt != null){

stmt.close();

}

if(conn != null){

conn.close();

}

}

%>


<%=result%>

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함