JSP

[JSP]DB연동

siyuning 2022. 8. 10. 12:10

HttpServletRequest클래스의 getParameterNames메서드

[ex] 아래와 같이 요청했을때 파라메터의 이름만 화면에 출력하는 문장을 작성하기.
단, HttpServletRequest클래스의 getParameterNames메서드를 이용해야한다.
http://localhost:8282/project2/t1.jsp?a=100&b=200&c=300
a
b
c
[an]
<%@page import="java.util.Enumeration"%>
<%
for (Enumeration<String> e = request.getParameterNames(); e.hasMoreElements();)
           out.print(e.nextElement()+"<br/>");
%>

HttpServletRequest클래스의 getParameterMap메서드

http://localhost:8282/project2/t2.jsp?a=100&b=200&c=300&c=400
위와 같이 요청했을때 아래와 같이 Map에 저장된다.
map.put("a",new String[]{"100"});
map.put("b",new String[]{"200"});
map.put("c",new String[]{"300","400"});
[ex]  아래와 같이 요청했을때 파라메터의 이름만 화면에 출력하는 문장을 작성하기.
단, HttpServletRequest클래스의 getParameterMap메서드를 이용한다.
http://localhost:8282/project2/t2.jsp?a=100&b=200&c=300&c=400
a
b
c
[an]
<%@page import="java.util.Map"%>
<% 
Map<String,String[]> map=request.getParameterMap();
for( String key : map.keySet() ) out.print(key+"<br/>");
%>

[ex]  아래와 같이 요청했을때 파라메터의 값만 화면에 출력하는 문장을 작성하기.
단, HttpServletRequest클래스의 getParameterMap메서드를 이용한다.
http://localhost:8282/project2/t3.jsp?a=100&b=200&c=300&c=400
100
200
300  400
[an]
<%@page import="java.util.Map"%>
<% 
Map<String,String[]> map=request.getParameterMap();
for( String key : map.keySet() ){
    for( String value : map.get(key) )
        out.print(value+"   ");
    out.print("<br/>");
}
%>

DB연동하기

[ex]
- DBUtil.java
package kr.co.seoul.common.util;
import java.sql.Connection;
import java.sql.DriverManager;

public class DBUtil{
    public static Connection getConnection() throws Exception{
        Class.forName("oracle.jdbc.OracleDriver"); 
        String url="jdbc:oracle:thin:@//127.0.0.1:1521/xe";
        Connection conn=DriverManager.getConnection(url,"scott","tiger");
        return conn;
    }
}

- t4.jsp
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="kr.co.seoulit.common.util.DBUtil"%>
<%@page import="java.sql.Connection"%>
<%
Connection conn=DBUtil.getConnection();
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select ename from emp");
rs.next();
out.print(rs.getString("ename"));
%>

CRUD 요청

[ex] empno 모두 출력하기.
http://localhost:8282/project2/t6.jsp
[an]
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="kr.co.seoulit.common.util.DBUtil2"%>
<%@page import="java.sql.Connection"%>
<%
Connection conn=DBUtil2.getConnection();
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select empno from emp");
while(rs.next())
out.print(rs.getString("empno")+"<br/>");
%>
[ex] t7.jsp페이지를 요청했을때 서버에서 전달되어진 응답결과가 아래와 같다. 
t7.jsp문서를 작성하기.
<a href="t8.jsp?empno=7369">7369</a><br/>
<a href="t8.jsp?empno=7499">7499</a><br/>
<a href="t8.jsp?empno=7521">7521</a><br/>
...

[an]
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="kr.co.seoul.common.util.DBUtil2"%>
<%@page import="java.sql.Connection"%>
<%
Connection conn=DBUtil2.getConnection();
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select empno from emp");
while(rs.next()){
    String no=rs.getString("empno");
    out.print("<a href=t8.jsp?empno="+no+">");
    out.print(no);
    out.print("</a><br/>");
}
%>

[ex] http://localhost:8282/project2/t8.jsp?empno=7369
위와 같이 요청했을때 아래와 같이 출력되려면? 단, DB연동하지x 직원이름 : SMITH

[an]
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page import="kr.co.seoul.common.util.DBUtil2"%>
<%
String empno=request.getParameter("empno");
Connection conn=DBUtil2.getConnection();
String query="select ename from emp where empno=?";
PreparedStatement pstmt = conn.prepareStatement(query);
pstmt.setString(1,empno);
ResultSet rs=pstmt.executeQuery();
if(rs.next()) out.print(rs.getString("ename"));
%>