JSP paging

select count(*) from mem_jsp에서 몇개인지 알려면, rs.getInt("COUNT(*)")로 얻어온다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="/common/header.jsp" %>
	<jsp:useBean id="dao" class="member.MemberDAO" />
	<h3>모든 목록 확인</h3>
	<table border="1">
		<tr>
			<th>이름</th>
			<th>주소</th>
			<th>전화번호</th>
		</tr>
		<c:set var="rsMap" value="${dao.getList(param.page)}"></c:set>
		<c:forEach var="dto" items="${rsMap.get('list') }">
		<tr>
			<td>
				<c:choose>
					<c:when test="${loginId ne null }">
						<c:set var="result" value="/m_info.jsp?id=${dto.id}"></c:set>
					</c:when>
					<c:otherwise>
						<c:set var="result" value="/m_login.jsp"></c:set>
					</c:otherwise>
				</c:choose>
				<a href="${path}member${result}">${dto.name}</a>
			</td>
			<td>${dto.addr}</td>
			<td>${dto.tel}</td>
		</tr>
		</c:forEach>
		<tr>
			<td align="center" colspan="3">
				<c:forEach var="cnt" begin="1" end="${rsMap.get('endPage')}">
					<a href="m_list.jsp?page=${cnt}">${cnt}</a>
				</c:forEach>
			</td>
		</tr>
	</table>
</body>
</html>
package member;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;

public class MemberDAO {
	String url = "jdbc:oracle:thin:@localhost:1521:orcl";
	String user="c##LTY", pwd="1213";
	Connection con;
	PreparedStatement ps;
	ResultSet rs;
	
	public MemberDAO() {
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			System.out.println("--드라이브 로드 성공--");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public MemberDTO getOneMember(String id) {
		MemberDTO dto = null;
		String sql = "select * from mem_jsp where id=?";
		try {
			con = DriverManager.getConnection(url, user, pwd);
			ps = con.prepareStatement(sql);
			ps.setString(1, id);
			rs = ps.executeQuery();
			if (rs.next()) {
				dto = new MemberDTO();
				dto.setId(rs.getString("id"));
				dto.setPwd(rs.getString("pwd"));
				dto.setName(rs.getString("name"));
				dto.setAddr(rs.getString("addr"));
				dto.setTel(rs.getString("tel"));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return dto;
	}
	private int getTotalCount() {
		String sql = "select count(*) from mem_jsp";
		int tCnt = 0;
		try {
			con = DriverManager.getConnection(url, user, pwd);
			ps = con.prepareStatement(sql);
			rs = ps.executeQuery();
			if (rs.next()) {
				tCnt = rs.getInt("COUNT(*)");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return tCnt;
	}
	private HashMap<String, Object> getOperation(int page, int tCnt){
		HashMap<String, Object> rsMap = new HashMap<>();
		if (page == 0) {
			page = 1;
		}
		int pageNum = 2; //한 페이지당 글 개수
		int endPage = tCnt / pageNum + (tCnt % pageNum == 0 ? 0 : 1); //총 페이지 개수
		int startNum = (page -  1) * pageNum + 1; //페이지당 처음 글 번호
		int endNum = pageNum * page; //페이지당 마지막 글 번호
		
		rsMap.put("endPage", endPage);
		rsMap.put("startNum", startNum);
		rsMap.put("endNum", endNum);
		return rsMap;
	}
	public HashMap<String, Object> getList(int page){
		System.out.println("page : " + page);
		int tCnt = getTotalCount();
		System.out.println("tCnt : " + tCnt);
		
		HashMap<String, Object> rsMap = getOperation(page, tCnt);
		
		String sql = "select A.* from"
				+"(select rownum rn,id,pwd,name,addr,tel from mem_jsp)"
				+"A where rn between ? and ?";
		//String sql = "select * from mem_jsp";
		MemberDTO dto = null;
		ArrayList<MemberDTO> list = new ArrayList<>();
		try {
			con = DriverManager.getConnection(url, user, pwd);
			ps = con.prepareStatement(sql);
			ps.setInt(1, (int)rsMap.get("startNum"));
			ps.setInt(2, (int)rsMap.get("endNum"));
			rs = ps.executeQuery();
			while(rs.next()) {
				dto = new MemberDTO();
				dto.setId(rs.getString("id"));
				dto.setPwd(rs.getString("pwd"));
				dto.setName(rs.getString("name"));
				dto.setAddr(rs.getString("addr"));
				dto.setTel(rs.getString("tel"));
				list.add(dto);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if(rs != null) rs.close();
				if(ps != null) ps.close();
				if(con != null) con.close();
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}
		rsMap.put("list", list);
		return rsMap;
	}
	public int register(MemberDTO dto) {
		int result = 0;
		String sql = "insert into mem_jsp(id, pwd, name, addr, tel) values(?,?,?,?,?)";
		try {
			con = DriverManager.getConnection(url, user, pwd);
			ps = con.prepareStatement(sql);
			ps.setString(1, dto.getId());
			ps.setString(2, dto.getPwd());
			ps.setString(3, dto.getName());
			ps.setString(4, dto.getAddr());
			ps.setString(5, dto.getTel());
			
			result = ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
	public int modify(MemberDTO dto) {
		int result = 0;
		String sql = "update mem_jsp set pwd=?, name=?, addr=?, tel=? where id=?";
		try {
			con = DriverManager.getConnection(url, user, pwd);
			ps = con.prepareStatement(sql);
			ps.setString(1, dto.getPwd());
			ps.setString(2, dto.getName());
			ps.setString(3, dto.getAddr());
			ps.setString(4, dto.getTel());
			ps.setString(5, dto.getId());
			result = ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
	public int delete(String id) {
		int result = 0;
		String sql = "delete from mem_jsp where id=?";
		try {
			con = DriverManager.getConnection(url, user, pwd);
			ps = con.prepareStatement(sql);
			ps.setString(1, id);
			result = ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
}

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP file upload & download

https://www.servlets.com/  -  COS File Upload Library  -  cos-22.05.zip(아래쪽)다운 - 압출 cos.jar 옮기기

enctype="multipart/form-data" : 파일이나 이미지를 전송할 때 주로 사용(post방식에서만 사용 가능)

pageContext.request : 클라이언트가 서버로 전송한 HTTP요청에 대한 정보(타입 = HttpServletRequest)

MultipartRequest mul = new ~~(); : cos.jar에서 제공해주는 라이브러리

new DefaultFileRenamePolicy() : 동일한 파일이 있을 경우, 파일명(1) 이런식으로 처리

Enumeration  e = mul.getFileNames() : 파일 목록들 (타입 = Enumeration<String>)

e.nextElement() : 파일 명 가져오기 

e.hasMoreElements() : 다음 값 확인(true or false)

mul.getFilesystemName( e.nextElement() ) : 실제 파일 명

mul.getOriginalFileName( e.nextElement() ) : 폴더에 저장될 파일 명

 

pageContext.response: (타입 = HttpServletResponse)

pageContext.response.addHeader("다운로드 방식(Content-Disposition)", "파일명 표시 ");

FileInputStream : 해당 파일에 대한 입력 스트림을 생성, 이후 read()로 읽어온다.(파일의 끝에 도달 = -1반환)

OutputStream : 출력스트림(InputStream)을 통해 얻어온 데이터를 out에 할당하여 클라이언트에게 전달

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="upload.jsp" method="post" enctype="multipart/form-data">
		<input type="text" name="id" placeholder="id"><br>
		<input type="file" name="save_file"><br>
		<input type="submit" value="전송">
	</form>
	<a href="download_form.jsp">파일 확인</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	result : ${ pageContext.request }<br>
	result : <%= request %><br>
	
	<jsp:useBean id="file" class="file.FileOperation" />
	${ file.upload( pageContext.request) }
	<% response.sendRedirect("upload_form.jsp"); %>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
	<jsp:useBean id="file" class="file.FileOperation" />
	<c:forEach var="item" items="${file.getFileList() }">
		<img alt="" src="download.jsp?img=${item}" width="100" height="100">
		<a href="download.jsp?img=${item}">${item}</a>
		<br>
	</c:forEach>
	<hr>
	<a href="upload_form.jsp">form이동</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%= response %>
	<jsp:useBean id="file" class="file.FileOperation" />
	${file.fileDown(param.img, pageContext.response) }
</body>
</html>
package file;

import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.util.Enumeration;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.oreilly.servlet.MultipartRequest;
import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;

public class FileOperation {
	public void upload(HttpServletRequest req) throws Exception {
		String path = "c:/jsp_file";
		int size = 1024 * 1024 * 200; //10MB
		System.out.println(req);
		MultipartRequest mul = new MultipartRequest(req, path, size, "UTF-8",
														new DefaultFileRenamePolicy());
		System.out.println("req : " + req.getParameter("id"));
		System.out.println("mul : " + mul.getParameter("id"));
		
		Enumeration<String> e = mul.getFileNames();
		System.out.println("e : " + e);
		System.out.println("다음 값 확인 : " + e.hasMoreElements());
		String fileName = e.nextElement(); //파일 명 가져오기
		System.out.println("파일 명(input name) : " + fileName);
		System.out.println("다음 값 확인 : " + e.hasMoreElements());
		
		String changeName = mul.getFilesystemName(fileName); //실제 파일 명
		String originName = mul.getOriginalFileName(fileName); //폴더에 저장될 파일 명
		
		System.out.println("실제 파일 명 : " + originName);
		System.out.println("변경 파일 명(저장용) : " + changeName);
	}
	public String[] getFileList() {
		File file = new File("c:/jsp_file");
		return file.list();
	}
	public void fileDown(String fileName, HttpServletResponse res) throws Exception {
		res.addHeader("Content-Disposition", "attachment;filename="+fileName);
		// 다운로드 방식 , 파일명을 저렇게 표기
		File file = new File("c:/jsp_file/"+fileName);
		FileInputStream in = new FileInputStream(file);
		OutputStream out = res.getOutputStream();
		byte b[] = new byte[1024];
		int data = 0;
		while(data != -1) {
			data = in.read(b);
			out.write(b);
		}
		out.close(); in.close();
	}
}

 

실행 결과

'jsp' 카테고리의 다른 글

JSP 활용(2)  (0) 2024.05.01
JSP 활용 (1)  (0) 2024.04.30
JSP 기초  (0) 2024.04.29

 

 

 

 

 

 

JSP el (1)

* ${} 를 사용하여 출력 

\(역슬래시) : 연산하지 않고 그냥 표현

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP el (2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP el_scope

${ 키명 } : 현재 범위에서 가장 작은 속성 출력

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP jstl (1)

설치 방법

https://tomcat.apache.org/taglibs/standard/

standard1.1 - download - binaries - jakarta-taglibs-standard-1.1.2.zip(933k) - lib파일 안에 두 jar파일 옮기기

 

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> : jstl을 c로 사용하겠다는 뜻

<c:out value="내용" /> : 내용을 출력

<c:set var="변수명" value="변수값" /> : 변수 설정

<c:if test="조건" /> : 조건이 true면 실행

<c:choose> : choose태그 안에 if, else if, else문 작성 가능

첫번째 <c:when> : if문, 나머지 <c:when> : else if문, <c:otherwise> : else문

<c:forEach var="변수" begin="시작값" end="끝값" step="증가값"> : for문(step 생략 가능)

<c:set var="배열명" value="첫번째 배열값, 두번째, ...." /> : 배열 생성

<c:forEach var="변수명" items="${배열명}"> : 배열 출력

<c:forTokens var="저장될 변수명" items="${변수명}" delims="/"> : /를 기준으로 나눠서 출력

<c:catch var="result" /> : 태그 안에 내용에 오류 발생시 오류내용이 result로 저장됨

<c:import url="경로" /> : 해당 경로에 있는 내용을 가져옴

<c:remove var="변수명" /> : 해당 변수를 삭제

<c:redirect url="경로"> : 해당 경로로 이동

<c:url var="변수명" value="현재 최상위 폴더 뒤에 경로"> : value가 abcd이면, 7_el_jstl/abcd로 적용

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	ex01.jsp<br>
	<c:out value="안녕하세요" /><br>
	<c:set var="num" value="12345"/>
	c:out : <c:out value="${ num }" /><br>
	\%{ num } : ${ num }<br>
	<hr>
	<h3>c:if</h3>
	<c:set var="num1" value="12345" />
	<c:if test="${ num1 == num }">
		<b>두 값은 같다</b>
	</c:if>
	<c:if test="${ num1 ne num }">
		<b>두 값은 같지않다</b>
	</c:if>
	<hr>
	<c:set var="number" value="100" />
	<c:choose>
		<c:when test="${number > 90 }">
			90보다 크다
		</c:when>
		<c:when test="${number > 70 }">
			70보다 크다
		</c:when>
		<c:otherwise>
			그 외의 값 실행
		</c:otherwise>
	</c:choose>
	<hr>
	<h3>forEach</h3>
	<c:forEach var="i" begin="1" end="5" step="1">
		i : ${ i }<br>
	</c:forEach>
	<hr>
	<c:set value="0" var="sum" />
	<c:set value="10" var="n" />
	<c:forEach var="i" begin="1" end="${ n }">
		<c:set value="${ sum + i }" var="sum" />
	</c:forEach>
	sum : ${ sum }<hr>
	<c:set var="arr" value="홍길동, 김개똥, 고길똥" />
	<c:forEach var="item" items="${ arr }">
		${ item }<br>
	</c:forEach><hr>
	<h3>forTokens</h3>
	<c:set var="str" value="안녕/하세/요" />
	<c:forEach var="item" items="${ str }">
		${ item }<br>
	</c:forEach>
	<hr>
	<c:forTokens var="item" items="${ str }" delims="/">
		${ item }<br>
	</c:forTokens>>
	<hr>

	<c:catch var="result">
		<%= 10/0 %>
	</c:catch>
	<c:if test="${ result != null }">
		<b>문제 발생 : ${ result }</b>
	</c:if>
	
	<c:set var="name" value="홍길동" scope="session" />
	<hr>
	<a href="ex02_session.jsp">session확인</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>test페이지 입니다</h3>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<c:import url="ex02_test.jsp" />
	<hr color="hotpink" size="10">
	<h3>session 확인</h3>
	session : ${ name }<br>
	${ sessionScope.name }
	<hr>
	<a href="ex02_delete.jsp">세션 삭제</a>
	<hr>
	getContextPath : <%= request.getContextPath() %><br>
	<a href="<%= request.getContextPath() %>/jstl/ex01.jsp">ex01</a>
	
	<c:set var="path" value="<%= request.getContextPath() %>"></c:set>
	<a href="${ path }/jstl/ex01.jsp">ex01</a>
	
	<a href="<c:url value="/jstl/ex01.jsp" /> ">ex01</a>
	
	<c:url var="url" value="/jstl/ex01.jsp" />
	<br>url : ${ url }
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<c:remove var="name"/>
	<c:redirect url="/jstl/ex02_session.jsp" />
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP jstl (2)

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP jstl (3)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
	<h1>모든 목록 확인</h1>
	<jsp:useBean id="dao" class="test.TestDAO"/>
	<c:set var="list" value="${dao.getList() }" />
	<c:forEach var="dto" items="${list }">
		name : ${dto.getName() }<br>
		addr : ${ dto.addr }<hr>
	</c:forEach>
	<a href="ex04_one_data.jsp?num=1">하나의 데이터 확인</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
	<jsp:useBean id="dao" class="test.TestDAO"></jsp:useBean>
	<c:set var="dto" value="${ dao.getData(param.num) }" />
	<h1>하나의 목록</h1>
	name : ${dto.name }<br>
	addr : ${dto.addr }<br>
	<a href="<c:url value='/jstl/ex04_all_data.jsp' />">목록 이동</a>
</body>
</html>
package test;

public class TestDTO {
	String name, addr;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAddr() {
		return addr;
	}

	public void setAddr(String addr) {
		this.addr = addr;
	}
	
}
package test;

import java.util.ArrayList;

public class TestDAO {
	ArrayList<TestDTO> list;
	public TestDAO() {
		list = new ArrayList<>();
		for(int i=0 ; i<5 ; i++) {
			TestDTO dto = new TestDTO();
			dto.setName("홍길동 "+i);
			dto.setAddr("산골짜기 "+i);
			list.add(dto);
		}
	}
	public ArrayList<TestDTO> getList(){
		return list;
	}
	public TestDTO getData(int num) {
		return list.get(num);
	}
}

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP header(include)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<c:url var="path" value="/" />
	<h1 align="center">Test Web</h1>
	<hr>
	<a href="${ path }index.jsp">HOME</a>&nbsp; &nbsp;
	<a href="${ path }member/m_list.jsp">MEMBERS</a>&nbsp; &nbsp;
	<c:if test="${loginId == null }">
		<a href="${ path }member/m_login.jsp">LOGIN</a>
	</c:if>
	<c:if test="${loginId != null }">
		<a href="${ path }member/m_logout.jsp">LOGOUT</a>
	</c:if>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="/common/header.jsp" %>
	<h1>기본 페이지 입니다!!!</h1>
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP login / logout

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="/common/header.jsp" %>
	<h1>login 페이지입니다!!!</h1>
	${param.result}
	<c:choose>
		<c:when test="${loginId == null}">
			<form action="${path}member/m_login_check.jsp" method="post">
				<input type="text" name="id" placeholder="input id"><br>
				<input type="text" name="pwd" placeholder="input pwd"><br>
				<input type="submit" value="login">
				<a href="${path}member/m_register_form.jsp">회원가입</a>
			</form>
		</c:when>
		<c:otherwise>
			${loginName}님 로그인 상태입니다!!<br>
			<a href="${path}member/m_logout.jsp">로그아웃</a>
		</c:otherwise>
	</c:choose>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<jsp:useBean id="dao" class="member.MemberDAO" />
	<c:set var="dto" value="${dao.getOneMember(param.id)}" />
	dto : ${dto}<br>
	<c:choose>
		<c:when test="${dto == null}">
			<c:set var="result" value="존재하지 않는id입니다!!" />
		</c:when>
		<c:otherwise>
			<c:choose>
				<c:when test="${dto.pwd == param.pwd}">
					<c:set var="result" value="인증 성공!!" />
					<c:set var="loginId" value="${dto.id}" scope="session" />
					<c:set var="loginName" value="${dto.name}" scope="session" />
				</c:when>
				<c:otherwise>
					<c:set var="result" value="존재하지 않는pwd입니다!!" />
				</c:otherwise>
			</c:choose>
		</c:otherwise>
	</c:choose>
	<c:redirect url="/member/m_login.jsp">
		<c:param name="result" value="${result}"></c:param>
	</c:redirect>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		session.invalidate();
		response.sendRedirect(request.getContextPath()+"/member/m_login.jsp");
	%>
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP register

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="/common/header.jsp" %>
	<hr>
	${param.result}
	<form action="${path}member/m_register.jsp" method="post">
		<input type="text" name="id" placeholder="아이디"><br>
		<input type="text" name="pwd" placeholder="비밀번호"><br>
		<input type="text" name="name" placeholder="이름"><br>
		<input type="text" name="addr" placeholder="주소"><br>
		<input type="text" name="tel" placeholder="전화번호"><br>
		<input type="submit" value="회원가입"><br>
	</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<% request.setCharacterEncoding("utf-8"); %>
	<jsp:useBean id="dto" class="member.MemberDTO"></jsp:useBean>
	<jsp:setProperty property="*" name="dto" />
	
	<jsp:useBean id="dao" class="member.MemberDAO"></jsp:useBean>
	<c:choose>
		<c:when test="${dao.register(dto) == 1}">
			<c:set var="result" value="회원가입 되었습니다!!!"></c:set>
			<c:set var="url" value="m_login.jsp"></c:set>
		</c:when>
		<c:otherwise>
			<c:set var="result" value="문제 발생!!!"></c:set>
			<c:set var="url" value="m_register_form.jsp"></c:set>
		</c:otherwise>
	</c:choose>
	<c:redirect url="${url}">
		<c:param name="result" value="${result}"></c:param>
	</c:redirect>
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP list & info

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="/common/header.jsp" %>
	<jsp:useBean id="dao" class="member.MemberDAO" />
	<h3>모든 목록 확인</h3>
	<table border="1">
		<tr>
			<th>이름</th>
			<th>주소</th>
			<th>전화번호</th>
		</tr>
		<c:set var="list" value="${dao.getList()}"></c:set>
		<c:forEach var="dto" items="${list}">
		<tr>
			<td>
				<c:choose>
					<c:when test="${loginId ne null }">
						<c:set var="result" value="/m_info.jsp?id=${dto.id}"></c:set>
					</c:when>
					<c:otherwise>
						<c:set var="result" value="/m_login.jsp"></c:set>
					</c:otherwise>
				</c:choose>
				<a href="${path}member${result}">${dto.name}</a>
			</td>
			<td>${dto.addr}</td>
			<td>${dto.tel}</td>
		</tr>
		</c:forEach>
	</table>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="/common/header.jsp" %>
	<jsp:useBean id="dao" class="member.MemberDAO"></jsp:useBean>
	<c:set var="dto" value="${dao.getOneMember(param.id)}"></c:set>
	<h3>- 개 인 정 보 -</h3>
	id : ${dto.id}<br>
	pwd : ${dto.pwd}<br>
	name : ${dto.name}<br>
	addr : ${dto.addr}<br>
	tel : ${dto.tel}<br>
	<hr>
	<input type="button" value="수 정" 
		onclick="location.href='m_modify_form.jsp?id=${dto.id}'" >
	<input type="button" value="삭 제" 
		onclick="location.href='m_delete.jsp?id=${dto.id}'" > 
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP modify

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
	<style type="text/css">
		label {display: inline-block; width: 70px;}
	</style>
</head>
<body>
	<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
	<%@ include file="/common/header.jsp" %>
	<jsp:useBean id="dao" class="member.MemberDAO"></jsp:useBean>
	<c:set var="dto" value="${dao.getOneMember(param.id)}"></c:set>
	<form action="m_modify.jsp" method="post">
		<label>아이디</label><input type="text" readonly name="id" value="${dto.id }"><br>
		<label>비밀번호</label><input type="text" name="pwd" value="${dto.pwd }"><br>
		<label>이 름</label><input type="text" name="name" value="${dto.name }"><br>
		<label>주 소</label><input type="text" name="addr" value="${dto.addr }"><br>
		<label>전화번호</label><input type="text" name="tel" value="${dto.tel }"><br>
		<input type="submit" value="완료">
		<input type="reset" value="취소" onclick="javascript:history.back();">
	</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
	<% request.setCharacterEncoding("utf-8"); %>
	<jsp:useBean id="dto" class="member.MemberDTO"></jsp:useBean>
	<jsp:setProperty property="*" name="dto"/>
	
	<jsp:useBean id="dao" class="member.MemberDAO"></jsp:useBean>
	
	<c:choose>
		<c:when test="${dao.modify(dto) == 1 }">
			<c:redirect url="m_info.jsp?id=${dto.id}"></c:redirect>
		</c:when>
		<c:otherwise>
			<c:redirect url="m_modify_form.jsp?id=${dto.id}"></c:redirect>
		</c:otherwise>
	</c:choose>
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP delete

<%@page import="member.MemberDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		MemberDAO dao = new MemberDAO();
		int result = dao.delete(request.getParameter("id"));
		
		if(result == 1){
			response.sendRedirect("m_list.jsp");
		}else{
			response.sendRedirect("m_info.jsp?id=" + request.getParameter("id"));
		}
	%>
</body>
</html>

 

실행 결과

 

'jsp' 카테고리의 다른 글

JSP 활용(3)  (0) 2024.05.02
JSP 활용 (1)  (0) 2024.04.30
JSP 기초  (0) 2024.04.29

 

 

 

 

 

 

JSP response

response : 사용자에게 응답

response.sendRedirect("경로") : 사용자에게 경로를 전달(서버를 실행하면 해당 경로로 바로 이동)

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	login.jsp<br>
	<form action="check.jsp" method="post">
		<input type="text" name="id" placeholder="아이디 입력"><br>
		<input type="text" name="pwd" placeholder="비밀번호 입력"><br>
		<input type="submit" value="login"><br>
	</form>
</body>
</html>
<%@page import="java.io.PrintWriter"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	check.jsp<br>
	<%
		request.setCharacterEncoding("utf-8");
		String DB_id = "1", DB_pwd = "1";
		String userId = request.getParameter("id");
		String userPwd = request.getParameter("pwd");
		String msg = null;
		if(DB_id.equals(userId) && DB_pwd.equals(userPwd)){
			//response.sendRedirect("main.jsp");
			msg = "<script>alert('로그인 성공');";
			msg += "location.href='main.jsp'</script>";
		}else{
			//response.sendRedirect("login.jsp");
			msg = "<script>alert('로그인 실패!!!');";
			msg += "location.href='login.jsp';</script>";
		}
		PrintWriter pr = response.getWriter();
		pr.print(msg);
	%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	main.jsp<br>
	<h1>로그인 성공 페이지</h1>
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP scope

.setAttribute() : 영역의 속성을 저장

.getAttribute() : 속성 값을 가져옴

session : 해당하는 브라우저가 바뀌기 전까지는 유지

applicaion : 서버가 종료되기 전까지는 유지

request.getRequestDispatcher("get01.jsp").forward(request, response) : request를 해당페이지까지 유지

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	set_scope.jsp<br>
	<%
		pageContext.setAttribute("name", "page");
		request.setAttribute("name", "request");
		session.setAttribute("name", "session");
		application.setAttribute("name", "application");
	%>
	page : <%= pageContext.getAttribute("name") %><br>
	request : <%= request.getAttribute("name") %><br>
	session : <%= session.getAttribute("name") %><br>
	application : <%= application.getAttribute("name") %><br>
    	<%--
		request.getRequestDispatcher("get01.jsp").forward(request, response);
	--%>
	<a href="get01.jsp">get01.jsp</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	page : <%= pageContext.getAttribute("name") %><br>
	request : <%= request.getAttribute("name") %><br>
	session : <%= session.getAttribute("name") %><br>
	application : <%= application.getAttribute("name") %><br>
	<a href="get02.jsp">get02.jsp</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	page : <%= pageContext.getAttribute("name") %><br>
	request : <%= request.getAttribute("name") %><br>
	session : <%= session.getAttribute("name") %><br>
	application : <%= application.getAttribute("name") %><br>
	<a href="get01.jsp">get01.jsp</a>
	<a href="set_scope.jsp">set_scope.jsp</a>
</body>
</html>

 

실행 결과 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP cookie

Cookie cookie = new Cookie("키값", "밸류값")

cookie.setMaxAge(5) : 얼마나 쿠키를 유지할지 지정(5초)

response.addCookie(cookie) : 쿠키를 응답하겠다(사용자에게 전달)

쿠키명.getName() : 쿠키의 키 값 가져옴

쿠키명.getValue() : 쿠키의 밸류 값 가져옴

* cookie값은 하위에 위치한 폴더에게는 전달 가능하나, 상위에 위치한 폴더에겐 전달 불가

cookie.setPath("/") : 쿠키를 사용할 수 있는 범위 지정(/ = 최상위 폴더이므로 다 사용 가능)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	ex01.jsp<br>
	<h1>쿠키 확인</h1>
	<%
		Cookie cookie = new Cookie("testCookie", "myCookie");
		cookie.setMaxAge(5);
		cookie.setPath("/");
		response.addCookie(cookie);
		
		boolean bool = true;
		
		Cookie[] cookieArr = request.getCookies();
		for(Cookie c : cookieArr){
			out.print("name : " + c.getName() + "<br>");
			out.print("value : " + c.getValue() + "<hr>");
			if( c.getName().equals("testCookie") ){
				bool = false;
			}
		}
	%>
	<% if(bool){ %>
			<script type="text/javascript">
				window.open("popup.jsp", "", "width=400, height=200, top=500, left=500");
			</script>
	<% } %>
	<a href="../test.jsp">test.jsp</a>
	<a href="delete.jsp">delete.jsp</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1> - 공 지 사 항 - </h1>
	<h3>내용 . . . .</h3>
	<input type="checkbox" id="chk" onClick="window.close()">
	<label for="chk">하루동안 열지 않음</label>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>test.jsp</h3>
	<%
		for( Cookie c :request.getCookies()){
			out.print("name : " + c.getName() + "<br>");
		}
	%>
	<a href="cookie/ex01.jsp">es01.jsp</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>쿠키 삭제</h3>
	<a href="../test.jsp">test.jsp</a><br>
	<%
		Cookie[] cookieArr = request.getCookies();
		for(Cookie c : cookieArr){
			out.print("name : " + c.getName() + "<br>");
			out.print("value : " + c.getValue() + "<hr>");
			if( c.getName().equals("testCookie") ){
				c.setMaxAge(0);
				c.setPath("/");
				response.addCookie(c);
			}
		}
	%>
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP session

session.removeAttribute("세션명") : 세션명에 해당하는 세션만 삭제

session.setMaxInactiveInterval(5) : 5초후에 모든 세션 만료

session.invalidate() : 바로 모든 세션 만료

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	login.jsp<br>
	<%if(session.getAttribute("loginUser") == null){ %>
		<form action="check.jsp" method="post">
			<input type="text" name="id"><br>
			<input type="text" name="pwd"><br>
			<input type="submit" value="로그인"><br>
		</form>
	<% } else {%>
		<%= session.getAttribute("nick") %>님 로그인 상태입니다.
		<a href="logout.jsp">로그아웃</a>
		<a href="main.jsp">main 이동</a>
	<%} %>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		String id="1", pwd="1", nick="홍길동";
		if(id.equals( request.getParameter("id")) &&
						pwd.equals(request.getParameter("pwd")) ){
			session.setAttribute("nick", nick);
			session.setAttribute("loginUser", id);
			response.sendRedirect("main.jsp");
		}else{
			response.sendRedirect("login.jsp");
		}
	%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%if(session.getAttribute("nick") == null){ 
		response.sendRedirect("login.jsp");
	} %>
	<h3>로그인 성공 사용자 접근 가능</h3>
	<%= session.getAttribute("nick") %>님 환영합니다.
	<a href="logout.jsp">로그아웃</a>
	<a href="login.jsp">로그인</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		session.invalidate();
	%>
	<script type="text/javascript">
		alert("로그아웃 되었습니다!");
		location.href="login.jsp";
	</script>
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP database

db 접속 방법

String driver = "oracle.jdbc.driver.OracleDriver";

Class.forName(driver);

String url = "jdbc:oracle:thin:@localhost:1521:orcl";

String id = "c##LTY", pwd="1213";

Connection con = DriverManager.getConnection(url, id, pwd);

* 11번전은 orcl => xe, c##LTY => LTY

db sql 실행 방법

PreparedStatement ps = con.prepareStatement(sql);

ResultSet rs = ps.executeQuery();

* ResultSet : bof - 내용1 - 내용2 - ... - eof (ResultSet.next() = true or false)

* sql문 안에 ?가 있으면, ps.setString(순서, 값)을 사용한다

<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		String driver = "oracle.jdbc.driver.OracleDriver";
		Class.forName(driver);
		
		String url = "jdbc:oracle:thin:@localhost:1521:orcl";
		String id="c##LTY", pwd="1213";
		Connection con = DriverManager.getConnection(url, id, pwd);
		System.out.println("--- 연결 성공 ---");
	%>
</body>
</html>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="driver.jsp" %>
	con : <%= con %><br>
	<%
		String sql = "select * from member_jsp";
		PreparedStatement ps = con.prepareStatement(sql);
		ResultSet rs = ps.executeQuery();
		while(rs.next()){ %>
			id : <%= rs.getString("id") %><br>
			name : 
				<a href="select_one.jsp?id=<%= rs.getString("id") %>">
					<%= rs.getString("name") %>
				</a>
			<br>
			kor : <%= rs.getInt("kor") %><br>
			eng : <%= rs.getInt("eng") %><br>
			math : <%= rs.getInt("math") %><hr>
		<% } %>
</body>
</html>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="driver.jsp" %>
	<%	
		String paramId = request.getParameter("id");
		String sql = "select * from member_jsp where id = ?";
		PreparedStatement ps = con.prepareStatement(sql);
		ps.setString(1, paramId);
		ResultSet rs = ps.executeQuery();
		if(rs.next()){ %>
			id : <%= rs.getString("id") %><br>
			name : <%= rs.getString("name") %><br>
			kor : <%= rs.getInt("kor") %><br>
			eng : <%= rs.getInt("eng") %><br>
			math : <%= rs.getInt("math") %><hr>
		<% } %>
        <a href="select_all.jsp">모든 목록 확인</a>
</body>
</html>

 

실행 결과 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP 액션 태그 (1)

<jsp:forward>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		String msg = (String)request.getAttribute("msg");
		if(msg != null){
			out.print("msg : " + msg + "<br>");
			out.print(request.getParameter("id") + " : 존재하지 않는id<br>");
		}
	%>
	<form action="check.jsp" method="post">
		<input type="text" name="id"><br>
		<input type="text" name="pwd"><br>
		<input type="submit" value="로그인"><br>
	</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		request.setCharacterEncoding("utf-8");
		String DB_id = "aaa", DB_pwd = "aaa";
		String id = request.getParameter("id");
		String pwd = request.getParameter("pwd");
		if(DB_id.equals(id) && DB_pwd.equals(pwd)){ %>
			<jsp:forward page="main.jsp">
				<jsp:param value="로그인 성공!!" name="msg"/>
			</jsp:forward>
		<% }else{ 
			request.setAttribute("msg", "로그인 실패!!!");
			//response.sendRedirect("login.jsp");
			request.getRequestDispatcher("login.jsp").forward(request, response);
		} %>
	%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%= request.getParameter("id") %>님<br>
	<%= request.getParameter("msg") %><hr>
	<a href="javascript:history.back()">이전</a>
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP 액션 태그 (2)

<jsp:include> : 각각의 파일을 따로따로 번역 (변수를 같이 못쓴다)

<%@ include %> : 한꺼번에 번역 (변수를 같이 쓸 수 있다)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>ex01.jsp</h3>
	<a href="jsp_include.jsp">jsp이동</a>
	<a href="tag_include.jsp">tag이동</a>
	<hr>
	<%
		String name = "홍길동";
	%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<jsp:include page="ex01.jsp"></jsp:include>
	<h1>jsp include 페이지</h1>
	<%-- name : <%= name %> --%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="ex01.jsp" %>
	<h1>tag include 페이지</h1>
	name : <%= name %>
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP 액션 태그 (3)

<jsp:useBean>, <jsp:setProperty>, <jsp:getProperty>

<jsp:useBean id="객체명" class="객체 타입(위치)" />

<jsp:setProperty property="변수명" name="객체명" value="값" />

<jsp:getProperty property="변수명" name="객체명" />

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>기본 페이지 입니다</h3>
	<hr>
	<a href="show_list.jsp">회원 목록</a> &nbsp; &nbsp;
	<a href="register_form.jsp">회원 가입</a> 
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<jsp:include page="/bean/index.jsp"></jsp:include>
	<form action="register.jsp">
		<input type="text" name="id" placeholder="id"><br>
		<input type="text" name="pwd" placeholder="pwd"><br>
		<input type="text" name="name" placeholder="name"><br>
		<input type="text" name="addr" placeholder="addr"><br>
		<input type="text" name="tel" placeholder="tel"><br>
		<input type="submit" value="등록"><br>
	</form>
</body>
</html>
<%@page import="member.MemberDAO"%>
<%@page import="member.MemberDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		String id = request.getParameter("id");
		String pwd = request.getParameter("pwd");
		String name = request.getParameter("name");
		String addr = request.getParameter("addr");
		String tel = request.getParameter("tel");
		
		MemberDTO dto = new MemberDTO();
		dto.setId(id); dto.setPwd(pwd);
		dto.setName(name); dto.setAddr(addr);
		dto.setTel(tel);
	
	%>
	id : <%= dto.getId() %><br>
	pwd : <%= dto.getPwd() %><br>
	name : <%= dto.getName() %><br>
	addr : <%= dto.getAddr() %><br>
	tel : <%= dto.getTel() %><br>
	<hr>
	
	<h3>useBean</h3>
	<jsp:useBean id="mDto" class="member.MemberDTO" />
	<jsp:setProperty property="*" name="mDto"/>
	id : <%= mDto.getId() %><br>
	pwd : <%= mDto.getPwd() %><br>
	name : <%= mDto.getName() %><br>
	addr : <%= mDto.getAddr() %><br>
	tel : <%= mDto.getTel() %><br>
	
	<%
		MemberDAO dao = new MemberDAO();
		dao.register(mDto);
		response.sendRedirect("show_list.jsp");
	%>
</body>
</html>
<%@page import="member.MemberDTO"%>
<%@page import="java.util.ArrayList"%>
<%@page import="member.MemberDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<jsp:include page="/bean/index.jsp"></jsp:include>
	<hr>
	show_list 페이지 입니다
	<%
		MemberDAO d = new MemberDAO();
	%>
	<jsp:useBean id="dao" class="member.MemberDAO" />
	<%
		ArrayList<MemberDTO> list = dao.getList();
		System.out.println("size : " + list.size());
	%>
	<table border="1">
		<tr>
			<th>아이디</th>
			<th>이름</th>
			<th>주소</th>
		</tr>
		<% for(MemberDTO dd : list){ %>
			<tr>
				<td><%= dd.getId() %></td>
				<td><%= dd.getName() %></td>
				<td><%= dd.getAddr() %></td>
			</tr>
		<% } %>
	</table>
</body>
</html>
package member;

public class MemberDTO {
	String id, pwd, name, addr, tel;

	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddr() {
		return addr;
	}
	public void setAddr(String addr) {
		this.addr = addr;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
}
package member;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

public class MemberDAO {
	String url = "jdbc:oracle:thin:@localhost:1521:orcl";
	String user = "c##LTY", pwd="1213";
	Connection con;
	PreparedStatement ps;
	ResultSet rs;
	public MemberDAO() {
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			System.out.println("--- 드라이브 로드 성공 ---");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public ArrayList<MemberDTO> getList() {
		String sql = "select * from mem_jsp";
		ArrayList<MemberDTO> list = new ArrayList<>();
		try {
			con = DriverManager.getConnection(url, user, pwd);
			ps = con.prepareStatement(sql);
			rs = ps.executeQuery();
			while(rs.next()) {
				MemberDTO dto = new MemberDTO();
				dto.setId(rs.getString("id"));
				dto.setPwd(rs.getString("pwd"));
				dto.setName(rs.getString("name"));
				dto.setAddr(rs.getString("addr"));
				dto.setTel(rs.getString("tel"));
				list.add(dto);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}
	public void register(MemberDTO dto) {
		String sql = 
		"insert into mem_jsp(id,pwd,name,addr,tel) values(?,?,?,?,?)";
		try {
			con = DriverManager.getConnection(url, user, pwd);
			ps = con.prepareStatement(sql);
			ps.setString(1, dto.getId());
			ps.setString(2, dto.getPwd());
			ps.setString(3, dto.getName());
			ps.setString(4, dto.getAddr());
			ps.setString(5, dto.getTel());
			ps.execute();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

실행 결과

'jsp' 카테고리의 다른 글

JSP 활용(3)  (0) 2024.05.02
JSP 활용(2)  (0) 2024.05.01
JSP 기초  (0) 2024.04.29

 

 

 

 

JSP 설치

확인 방법 : 설치된 ecipse에서 (crtr + n) - dy 검색 => dynamic web project 가 있으면 확인

 

없으면 설치 진행

https://www.eclipse.org 

 

The Community for Open Collaboration and Innovation | The Eclipse Foundation

The Eclipse Foundation provides our global community of individuals and organisations with a mature, scalable, and business-friendly environment for open source …

www.eclipse.org

Download - Download Packages - Eclipse IDE for Enterprise Java and Web Developers - windows - Download

 

 

 

 

 

 

 

 

 

 

 

 

apache tomcat 설치

tomcat9 - 64-bit windows zip - 작업할 공간에 압축 풀기

 

 

 

 

 

 

 

 

 

 

 

 

JSP 서버 설정

Dynabic Web Project - project name 지정 -

Target runtime - New Runtim - apache Tomcak v9.0 지정 - create a new local server 체크 - 

Browse - apache-tomcat-9.0.88 - finish

 

 

 

 

 

 

 

 

 

 

 

JSP 실행

webapp - ctrl + n - JSP File - File name - finish

ctrl + shift + s = 전체 저장

(ctrl + F11) - Tomcat v9.0 Server at loclahost 지정 , Always use this server where running this project = 실행 

 

오류 발생 시 : Port Number = 8080 => 아무거나 

 

 

 

 

 

 

 

 

 

 

 

 

JSP UTF-8 설정

UTF-8 : 3바이트 처리, 한글을 효율적으로 처리.

 

window - preperences

general - workspace - UTF-8 설정

web - CSS Files - Encoding - 제일 처음의 UTF-8 설정

web - HTML Files -  Encoding - 제일 처음의 UTF-8 설정

web - JSP Files -  Encoding - 제일 처음의 UTF-8 설정

Apply and Close

 

EUC-KR => UTF-8 로 바뀜.

 

 

 

 

 

 

 

 

 

 

 

 

JSP 기본 태그 

서버 : eclipse, 클라이언트 : chrome(Window - Web Browser - 지정)

System.out.println(); : 서버에서만 보인다.

out.print(); : 클라이언트에서만 보인다.

 

<%! %> : 처음에 한번만 실행하고, 그 다음부터는 실행하지 않는다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%--
		int num = 100;
		System.out.println("num :" + num);
		out.print("num :" + num);
	--%>
	<%!
		int num = 1234;
	%>
	<%
		out.print("num : <b> " + num + "</b>");
	%>
	<br>
	num : <h4><%= num++ %></h4>
</body>
</html>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP 메소드 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%!
		public String name = "홍길동";
		public void setName(String name) {
			this.name = name;
		}
		public String getName() {
			return name;
		}
		class Abc {
			public String test(){
				return "객체 메소드";
			}
		}
	%>
	기본 이름 : <%= name %><br>
	<% setName("김길이"); %>
	변경 이름 : <%= getName() %><br>
	<% Abc obj = new Abc(); %>
	객체 사용 : <%= obj.test() %>
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP 기본 문법 

<%@page import="java.util.HashMap"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	ex04.jsp<br>
	<%
		String name = "홍길동";
		HashMap<String, String> map = new HashMap<>();
		map.put("naver", "https://www.naver.com");
		map.put("google", "https://www.google.co.kr");
	%>
	<input type="text" value="<%= name %>"><br>
	<input type="text" value="<% out.print(name); %>"><br>
	<a href="<%= map.get("naver") %>">네이버</a>
	<a href="<%= map.get("google") %>">구글</a>
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP 상대경로, 절대경로

 

 

default.jsp 기준으로 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	/ : 포트까지의 경로<br>
	../ : 현재위치 전<br>
	../../ : 2단계 전<br>
	<h2>default 위치</h2>
	<a href="/2_get_post/test/test1.jsp">test1</a>
	<a href="test/test2/test2.jsp">test2</a>
</body>
</html>

 

 

test1.jsp 기준으로

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h2>test1 위치</h2>
	<a href="/2_get_post/default.jsp">default</a>
	<a href="/2_get_post/test/test2/test2.jsp">test2</a>
</body>
</html>

 

 

test2.jsp 기준으로

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h2>test2 위치</h2>
	<a href="../test1.jsp">test1</a>
	<a href="../../default.jsp">default</a>
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP get, post (1)

                      post나 get방식으로 넘어온 값 받기 : request.getParameter("변수명(name)");

* post방식을 한글을 넘기면 깨진다. 따라서 encodinf 처리를 해줘야 한다. : request.getCharacterEncoding("utf-8");

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>method get</h3>
	<form action="get.jsp" method="get">
		<input type="text" name="id"><br>
		<input type="text" name="pwd"><br>
		<input type="submit" name="submit"><br>
	</form>
	
	<h3>method post</h3>
	<form action="/2_get_post/get_post/post.jsp" method="post">
		<input type="text" name="id"><br>
		<input type="text" name="pwd"><br>
		<input type="submit" name="submit"><br>
	</form>
	
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>get.jsp</h3>
	id : <%= request.getParameter("id") %><br>
	pwd : <%= request.getParameter("pwd") %><br>
	<a href="form.jsp">form 이동</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% request.setCharacterEncoding("utf-8"); %>
	<h3>post.jsp</h3>
	id : <%= request.getParameter("id") %><br>
	<%
		String pwd = request.getParameter("pwd");
	%>
	pwd : <%= pwd %><br>
	<a href="form.jsp">form 이동</a>
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP get, post (2)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="result.jsp" method="post">
		<input type="text" name="id" placeholder="register id"><br>
		<input type="text" name="pwd" placeholder="register password"><br>
		<input type="text" name="name" placeholder="register name"><br>
		남 : <input type="radio" name="gender" value="남">
		여 : <input type="radio" name="gender" value="여"><br>
		<input type="submit" value="저장">
	</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<% request.setCharacterEncoding("utf-8"); %>
	<h3>넘어온 값</h3>
	id : <%= request.getParameter("id") %><br>
	pwd : <%= request.getParameter("pwd") %><br>
	name : <%= request.getParameter("name") %><br>
	gender : <%= request.getParameter("gender") %><br>
	<a href="form2.jsp">form이동</a>
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP  지시자

taglib

<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		ArrayList<String> list = new ArrayList<>();
		list.add("오늘");
		list.add("내일");
		list.add("그리고");
	%> 
	<%
		for(int i = 0; i < list.size(); i++){
			out.print(list.get(i) + "<br>");
		}
	%>
	<hr>
	<% for(String s : list){ %>
			값 : <%= s %> <br>
	<% } %>
</body>
</html>

 

실행 결과 

 

 

page

<%@ page errorPage="error_msg.jsp"%> : 현재 페이지에 에러 발생시, 해당하는 페이지(error_msg.jsp)로 연결

<%@ page isErrorPage="true" %>

위와 같은 태그가 있으면 exception 사용 가능

<%= exception.getMessage() %> : 에러 내용을 간략하게 알려줌

<%= exception.toString() %> : 에러 내용을 자세하게 알려줌

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page errorPage="error_msg.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	ex02.jsp<hr>
	<%= 10 / 0 %>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page isErrorPage="true" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>요청 페이지에 문제 발생!!!</h3>
	<%= exception.getMessage() %><br> 
	<%= exception.toString() %><br>
</body>
</html>

 

실행 결과

 

include

* <%@ include %>에서 절대경로를 지정할 때는, 시작점이 webapp이다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		String name = "홍길동";
	%>
	<header>
		<hr>서브페이지 | 카페 | 메인페이지 <hr>
	</header>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<footer>
		<hr>바닥글~ / 회사소개 / 제휴제한 /
	</footer>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="header.jsp" %>
	<h1>인크루드 속성</h1> : <%= name %>
	<%@ include file="/tag/footer.jsp" %>
</body>
</html>

 

실행 결과 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Quiz01

 

풀이 과정

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<a href="/2_get_post/tag/quiz/main.jsp">메인</a>&emsp;
	<a href="/2_get_post/tag/ex01.jsp">ex01</a>&emsp;
	<a href="/2_get_post/tag/error_msg.jsp">ex02(에러)</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="header.jsp" %>
	<hr>
	<h1>main 기본페이지 입니다</h1>
</body>
</html>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="/tag/quiz/header.jsp" %>
	<hr>
	<%
		ArrayList<String> list = new ArrayList<>();
		list.add("오늘");
		list.add("내일");
		list.add("그리고");
	%> 
	<%
		for(int i = 0; i < list.size(); i++){
			out.print(list.get(i) + "<br>");
		}
	%>
	<hr>
	<% for(String s : list){ %>
			값 : <%= s %> <br>
	<% } %>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page isErrorPage="true" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="/tag/quiz/header.jsp" %>
	<hr>
	<h3>요청 페이지에 문제 발생!!!</h3>
	
	<%-- 
	<%= exception.getMessage() %><br> 
	<%= exception.toString() %><br>
	--%>
</body>
</html>

 

실행 결과 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP request, response (1)

request.getContextPath() : port번호 다음에 들어오는 경로(프로젝트 이름)

* 위에서 언급한 경로는 Servers - server.xml에서 변경 가능

request.getMethod() : 사용자가 요청하는 방식(default = get)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%= request.getContextPath() %><br>
	<%= request.getMethod() %><br>
	
</body>
</html>

 

실행 결과 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP request, response (2)

request.getParameter("파라미터명") : 하나의 대한 데이터만 얻어올 때 사용

request.getParameterValues(" 파라미터명") : 여러개의 데이터를 얻어올 때 사용 (배열)

 

* Enumeration<String> e = request.getParameterNames();

request.getParameterNames(); : 받아온 파라미터명을 받아온다 

 request.getParameterNames()는 Enumeration<String> 형식으로 받아온다

 받아온 값은 첫번째는 bof, 마지막에는 eof로 받아온다

e.hasMoreElements() : bof 다음 값이 있으면 true, 다음 값이 eof면 false

e.nextElement() : 해당하는 파라미터명을 출력한다

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% String path = request.getContextPath(); %>
경로 : <%= path %>/req/ex02_result.jsp<br>
	<form action="<%= path %>/req/ex02_result.jsp" method="post">
		1 <input type="checkbox" name="chk" value="일">
		2 <input type="checkbox" name="chk" value="이">
		3 <input type="checkbox" name="chk" value="삼">
		<hr>
		우편번호 : <input type="text" name="addr"><br>
		주소 : <input type="text" name="addr"><br>
		상세주소 : <input type="text" name="addr"><br>
		<hr>
		우편번호 : <input type="text" name="a1"><br>
		주소 : <input type="text" name="a2"><br>
		상세주소 : <input type="text" name="a3"><br>
		<input type="submit" value="전송">
	</form>
</body>
</html>
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<% request.setCharacterEncoding("utf-8"); %>
	<%-- 
	chk : <%= request.getParameter("chk") %>
	<hr>
	--%>
	<%
		String[] chks = request.getParameterValues("chk");
		if(chks != null){
			for(String s : chks){
				out.print(s + "<br>");
			}
		}
	%>
	<hr>
	<h3>주소</h3>
	<%
		for(String addr : request.getParameterValues("addr")){
			out.print(addr + "<br>");
		}
	%>
	<hr>
	<h3>주소2</h3>
	<%= request.getParameter("a1") %><br>
	<%= request.getParameter("a2") %><br>
	<%= request.getParameter("a3") %><br>
	<hr>
	<%
		Enumeration<String> e = request.getParameterNames();
		while(e.hasMoreElements()) {
			String name = e.nextElement();
			out.print(name + " : " + request.getParameter(name) + "<br>");
		}
	%>
	<a href="ex02_form.jsp">form</a>
</body>
</html>

 

실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Quiz02

 

풀이 과정

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h2>설문조사 폼 만들기</h2>
	<form action="quiz_result.jsp" method="post">
		이름 : <input type="text" name="name"><br><br>
		소개 : <textarea rows="4" cols="14" name="introduce"></textarea><br><br>
		<fieldset style="width: 300px">
		  <legend>연령 조사</legend>
		  <label for="ten">10대</label>
		  <input type="radio" id="ten" name="age" value="10대">
		  <label for="twenty">20대</label>
		  <input type="radio" id="twenty" name="age" value="20대" checked>
		  <label for="thity">30대</label>
		  <input type="radio" id="thity" name="age" value="30대">
		  <label for="forty">40대</label>
		  <input type="radio" id="forty" name="age" value="40대">
		</fieldset>
		<fieldset style="width: 300px">
		  <legend>취미 조사</legend>
		  <label for="book">책읽기</label>
		  <input type="checkbox" id="book" name="hobby" value="책읽기">
		  <label for="dance">춤추기</label>
		  <input type="checkbox" id="dance" name="hobby" value="춤추기">
		  <label for="mung">멍때리기</label>
		  <input type="checkbox" id="mung" name="hobby" value="멍떄리기">
		</fieldset>
		<input type="submit" value="전송">
	</form>
</body>
</html>
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<% request.setCharacterEncoding("utf-8"); %>
	<h1>설문 조사 결과</h1>
	<%
		Enumeration<String> e = request.getParameterNames();
		while(e.hasMoreElements()){
			String val = e.nextElement();
			
			if(val.equals("name")){
				out.print("이름 : " + request.getParameter(val) + "<br>");
			}else if(val.equals("introduce")){
				out.print("소개 : " + request.getParameter(val) + "<br>");
			}else if(val.equals("age")){
				out.print("나이 : " + request.getParameter(val) + "<br>");
			}else if(val.equals("hobby")){
				out.print("취미 : ");
				if(request.getParameterValues(val).length >= 2){
					for(int i = 0; i < request.getParameterValues(val).length; i++){
						if(i == request.getParameterValues(val).length - 1){
							out.print(request.getParameterValues(val)[i]);
						}else{
							out.print(request.getParameterValues(val)[i] + ", ");
						}
					}
				}else if(request.getParameterValues(val).length == 1){
					out.print(request.getParameter(val));
				}
			}
		}
	%>
</body>
</html>

 

실행 결과

'jsp' 카테고리의 다른 글

JSP 활용(3)  (0) 2024.05.02
JSP 활용(2)  (0) 2024.05.01
JSP 활용 (1)  (0) 2024.04.30

+ Recent posts