본문 바로가기

jsp

JSP 활용 (1)

728x90

 

 

 

 

 

 

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 기초  (17) 2024.04.29