⚡ include
jsp,servlert등 스크립트 언어는 서버가 없으면 돌아가지 않음
<%@ include file="./dbconfig.jsp" %>
▶ include file
정적 문법 - 변수활용 가능
외부파일 로드(단,다른 서버에 있는 파일은 로드하지 못함)
@ : 라이브러리 불러오기,파일 로드,페이지 표시할 때 사용 / jstl 엔진 로드 시 사용
<jsp:include page="./dbconfig.jsp"></jsp:include> <jsp:include page="./dbconfig.jsp" flush="false"></jsp:include>
▶ jsp:include page=" " :
동적 문법-변수 활용 불가능
flush : cache 메모리에 있는 buffered 사용 유/무 (거의 false 씀, ?v=1 같은느낌..?)
false - 데이터를 새롭게 반영 , true - 데이터 반영 x (반대임)
👀
정적형태
- DB사용X , ex) 로그인,회원가입
변수활용 가능
동적형태
- DB사용O
배열
백엔드 투입
변수활용 불가능
ex) 상품 리스트
⚡ sms,이메일 수신여부에 따른 회원정보 리스트 출력 파트(select)
실제론 이렇게 jsp에 바로 사용 x 걍 해보는거
이건 어렵게 짜는거 => 쉬운거 내일 해볼예정
input type hidden일경우( ==text )
1. 값이 있을경우엔 equals로 받기
2. 값이 없을경우엔 연산기호로(==)로 받기
<%@page import="java.sql.ResultSet"%> <%@page import="java.sql.PreparedStatement"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="./dbconfig.jsp" %> <% String sms = (String)request.getParameter("ad_sms"); String email = (String)request.getParameter("ad_email"); String full = (String)request.getParameter("all_user"); if(sms == null || sms == "Y" && email == null || email == "Y"){ sms = "Y"; email = "Y"; } String table = "mall_member"; String sql = ""; String sql2 = ""; if(full == null || full.equals("null")){ //전체회원이 아닌 각 파트별 수신여부 회원 리스트 sql = "select * from "+ table +" where ad_sms=? and ad_email=? order by midx desc"; sql2 = "select count(*) as ctn from "+table + " where ad_sms=? and ad_email=? order by midx desc"; }else{ //전체회원 출력 파트 sql = "select * from " + table + " order by midx desc"; sql2 = "select count(*) as ctn from " + table + " order by midx desc"; }; PreparedStatement ps = dbcon.prepareStatement(sql); if(full==null || full.equals("null")){ ps.setString(1,sms); ps.setString(2,email); } ResultSet rs = ps.executeQuery(); ps = dbcon.prepareStatement(sql2); if(full==null || full.equals("null")){ ps.setString(1,sms); ps.setString(2,email); } ResultSet rs2 = ps.executeQuery(); rs2.next(); //반복문 사용하지않을경우엔 이렇게 따로한번 써줘야함 %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>회원정보 리스트 출력 파트(select)</title> </head> <body> <!-- SPA형태 - 같은 페이지에서 돌림 --> <form id="frm" method="post" action="./jsp8.jsp"> <input type="hidden" name="all_user" value=<%=full%>> <!-- hidden에 Y가 있을 경우 전체회원 리스트 출력 --> <p> SMS 광고수신 : <input type="radio" name="ad_sms" value="Y" <%if(sms.equals("Y")) out.print("checked");%>>동의함 <input type="radio" name="ad_sms" value="N" <%if(sms.equals("N")) out.print("checked");%>>동의안함 </p> <p> Email 광고수신: <input type="radio" name="ad_email" value="Y" <%if(email.equals("Y")) out.print("checked");%>>동의함 <input type="radio" name="ad_email" value="N" <%if(email.equals("N")) out.print("checked");%>>동의안함 </p> <input type="button" value="검색" onclick="search()"> <input type="button" value="전체회원" onclick="all_member()"> </form> <table border="1" cellpadding="0" cellspacing="0"> <thead> <tr> <th>번호</th> <th>아이디</th> <th>고객명</th> <th>통신사</th> <th>전화번호</th> <th>이메일</th> <th>SMS 수신 여부</th> <th>이메일 수신 여부</th> <th>관리</th> </tr> </thead> <tbody> <% int w= Integer.parseInt(rs2.getString("ctn")); while(rs.next()){ %> <tr> <td><%= w %></td> <td><%= rs.getString("mall_id")%></td> <td><%= rs.getString("mall_name")%></td> <td><%= rs.getString("tel_corp")%></td> <td><%= rs.getString("tel_no")%></td> <td><%= rs.getString("mall_email")%></td> <td><%= rs.getString("ad_sms")%></td> <td><%= rs.getString("ad_email")%></td> <td> <input type="button" value="상세보기" onclick="viewpage(<%= rs.getString("midx")%>)"> <input type="button" value="삭제"> </td> </tr> <% w--; } %> </tbody> </table> </body> <script src="./js/jsp8.js?v=3"></script> </html> <% rs2.close(); rs.close(); ps.close(); dbcon.close(); %>
- input type button onclick js파일function search(){ frm.all_user.value = "null"; frm.submit(); //검색 버튼 클릭시 value를 문자 "null"로 넣어줌 , 사실 다른 텍스트 넣어도 됨 } function all_member(){ frm.all_user.value = "Y"; frm.submit(); }
너눔어렵땀..
setString - table,컬럼명에는 사용하지 않음(values,where절)
PreparedStatement를 선언하여 연결했을 경우 새롭게 PreparedStatement를 로드할 필요 없음
[ post 통신에 따른 조건문 핸들링 - input type hidden,text ] 참고
https://dev-eunse.tistory.com/169
🔽
상세정보 버튼 클릭시
function viewpage(no) {
location.href='./jsp10.jsp?idx='+no;
}
//parameter 방식 x
function viewpage(no) {
// var frm2 = document.createElement('form');
// frm2.method = 'POST';
// frm2.action = './jsp10.jsp';
//
// var input = document.createElement('input');
// input.type = 'hidden';
// input.name = 'idx';
// input.value = no;
//
// frm2.appendChild(input);
// document.body.appendChild(frm2);
frm2.idx.value = no;
frm2.submit();
}
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="./dbconfig.jsp" %>
<%
String idx = request.getParameter("idx");
String sql = "select * from mall_member where midx=?";
PreparedStatement ps = dbcon.prepareStatement(sql);
ps.setString(1,idx);
ResultSet rs = ps.executeQuery();
rs.next();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p>개인정보 상세내역</p>
<table border="1" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>아이디</td>
<td><%= rs.getString("mall_id") %></td>
<tr>
<tr>
<td>고객명</td>
<td><%= rs.getString("mall_name") %></td>
<tr>
<tr>
<td>연락처</td>
<td>[<%= rs.getString("tel_corp") %>] <%= rs.getString("tel_no") %></td>
<tr>
<tr>
<td>이메일</td>
<td><%= rs.getString("mall_email") %></td>
<tr>
<tr>
<td>주소</td>
<td>(<%= rs.getString("mall_post") %>) <%= rs.getString("mall_road") %> <%= rs.getString("mall_addr") %></td>
<tr>
<tr>
<td>광고수신(SMS)</td>
<td><%= rs.getString("ad_sms") %></td>
<tr>
<tr>
<td>광고수신(email)</td>
<td><%= rs.getString("ad_email") %></td>
<tr>
<tr>
<td>가입일자</td>
<td><%= rs.getString("mall_join") %></td>
<tr>
</tbody>
</table>
<input type="button" value="리스트 보기" onclick="golist()">
</body>
<script type="text/javascript">
function golist(){
location.href = "./jsp8.jsp";
}
</script>
</html>
<%
rs.close();
ps.close();
dbcon.close();
%>
사실 이건 get으로 하면 x => 보안 👎
'CLASS > JSP' 카테고리의 다른 글
#3-3 / 2예제 paging 기능 추가 (0) | 2024.06.26 |
---|---|
#3-2 / 2예제 고객정보 수정페이지(update) (0) | 2024.06.26 |
#3-1 / 2예제 상세보기-고객별 포인트,구매내역 추가 (0) | 2024.06.26 |
#1-2 / database jsp로 연결 (0) | 2024.06.24 |
#1-1 / 🌺 JSP 기초 (0) | 2024.06.24 |