스프링을 사용하다보면 JSP만으로 코딩을 할 일이 많이 없습니다.
하지만 적은 인원으로 빠른 개발이 필요한 경우 JSP를 사용할 수 있습니다.
(여러분 그냥 PHP, node, Django 쓰세요...)
일단 jsp 만들 사용하여 backend를 만들려면 서버를 구동시키는 법을 알아야 합니다.
sql과 태그 라이브러리 jar를 다운받아 lib에 넣어주세요.
https://mvnrepository.com/artifact/mysql/mysql-connector-java
Maven Repository: mysql » mysql-connector-java
JDBC Type 4 driver for MySQL VersionVulnerabilitiesRepositoryUsagesDate8.0.x8.0.29Central157Apr, 20228.0.28Central269Jan, 20228.0.271 vulnerability Central262Oct, 20218.0.262 vulnerabilities Central214Jul, 20218.0.252 vulnerabilities Central219May, 20218.0
mvnrepository.com
https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl
Maven Repository: javax.servlet.jsp.jstl » jstl
mvnrepository.com
2022.06.20 - [SERVER/window] - apache tomcat 설정
apache tomcat 설정
톰캣 폴더 안에 들어와 webapps 폴더안에 들어오면 아래처럼 나옵니다. 톰캣은 아파치 서버와 다르게 ROOT가 / 이고, 그 안의 /test 처럼 폴더형식을 주고 싶으면 ROOT와 같은 webapps폴더안에 넣어주면
jacorinne.tistory.com
설정이 끝나셨고, 서버가 돌아가고 있으면 DB와 연결을 해봅시다.(mysql 은 당연히 깔려있어야 합니다.)
DB, DAO, VIEW 를 분리하여 사용합니다.
분리하여 사용할 경우 코드의 재활용성이 높아집니다.
DB연결을 만들어 줍니다.
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page import = "java.util.*" %>
<%@ page import="java.sql.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%!
String jdbcDriver ="jdbc:mysql://localhost:3306/DB이름?characterEncoding=UTF-8&serverTimezone=UTC";
String dbUser="user(사용자)";
String dbPass="passwd(비밀번호)";
public ArrayList<HashMap<String,String>> convertResultSetToArrayList(ResultSet rs) throws SQLException{
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
while(rs.next()){
HashMap<String,String> row = new HashMap<String,String>(columns);
for(int i=1; i<= columns; ++i){
row.put(md.getColumnName(i), rs.getString(i));
}
list.add(row);
}
return list;
}
public ArrayList<HashMap<String,String>> execQuery(String query){
ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try{
Class.forName("com.mysql.jdbc.Driver");
//2.데이터 베이스 커넥션 생성
conn=DriverManager.getConnection(jdbcDriver,dbUser,dbPass);
//3.Statement 생성
stmt=conn.createStatement();
//4. 쿼리실행
rs=stmt.executeQuery(query);
list = convertResultSetToArrayList(rs);
}catch(Exception ex) {
ex.getMessage();
}finally {
if(rs!=null) try{rs.close(); }catch(SQLException ex) {}
if(stmt!=null) try{stmt.close();} catch(SQLException ex) {}
if(conn!=null) try{conn.close(); }catch(SQLException ex) {}
}
return list;
}
%>
이제 DAO를 만들어 줍니다.
<%@ include file = "db.jsp" %>
<%!
public ArrayList<HashMap<String,String>> getData(){
String query = "SELECT * FROM tb_code;";
ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
list = execQuery(query);
return list;
}
%>
VIEW입니다.
저는 session에 저장하여 사용하였습니다.
다른 방법도 사용하셔도 됩니다.
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ include file = "dao.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>view</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<%ArrayList<HashMap<String,String>> list = getData();
session.setAttribute("list", list);
%>
<c:forEach var="code" items="${sessionScope.list}" varStatus="status">
<c:out value="${code.CODE_NAME}"/>
</c:forEach>
</body>
</html>
여기까지 하시면 데이터가 잘 나오는 것을 확인하실 수 있습니다.
'BACK END > jsp' 카테고리의 다른 글
jsp에서 json encode (0) | 2022.07.01 |
---|