학교/JAVA

06) JSP 예제

서윤-정 2023. 12. 17. 01:32

Lab1.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>
<%
request.setCharacterEncoding("utf-8");

// 클라이언트가 보내온 데이터 받기
String name = request.getParameter("name");
String age = request.getParameter("age");
String gender = request.getParameter("gender");
String food = request.getParameter("food");
String hobbies[] = request.getParameterValues("hobby");

int ages = Integer.parseInt(age);
String result = "";
switch(ages/10){
case 2: result = "(20대)" ; break;
case 3: result = "(30대)" ; break;
case 4: result = "(40대)" ; break;
case 5: result = "(50대)" ; break;
default: result="(해당없음)";
}
result = age + "세" + result;
%>

<h2>사용자 정보</h2>
<table border>
<tr>
<th>이름</th>
<th>성별</th>
<th>이름</th>
<th>좋아하는 음식</th>
<th>관심분야</th>
<tr>
<td>1.<%=name %> </td>
<td>2. <%=result %> </td>
<td>3. <%=gender %> </td>
<td>4.<%=food%>  </td>
<td>5.
<%
for(int i = 0; i < hobbies.length; i++){
	out.print(hobbies[i] + "<br>");
}
%>  </td>
</tr>
</table>
</body>
</html>

 

 

Lab1.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Lab1.jsp" method="post">
<table align=center>
<tr><td colspan=2 align=center height=40><b>회원가입</b><td></tr>
<tr>
<td align=right>이름&nbsp;</td>
<td><input type="text" name="name" placeholder="이름 입력"></td>
</tr>
<tr>
<td align=right>나이&nbsp;</td>
<td><input type="number" name="age" placeholder="나이 입력"></td>
</tr>
<tr>
<td align=right>좋아하는 음식&nbsp;</td>
<td>
<select name="food">
<option value="김치째개">김치찌개</option>
<option value="케이크">케이크</option>
<option value="불고기">불고기</option>
<option value="비빔밥">비빔밥</option>
<option value="none">없음</option>
</td>
</tr>
<tr>
<td align=right>성별&nbsp;</td>
<td><input type="radio" name="gender" value="여성" checked>여성
<input type="radio" name="gender" value="남성">남성</td>
</tr>
<tr>
<td align=right>관심분야</td>
<td>
<input type="checkbox" name="hobby" value="웹프로그램">웹프로그램
<input type="checkbox" name="hobby" value="네트워크관리">네트워크관리
<input type="checkbox" name="hobby" value="보안">보안
<input type="checkbox" name="hobby" value="게임프로그램">게임프로그램
<input type="checkbox" name="hobby" value="데이터분석">데이터분석
</td>
</tr>
<tr>
<td colspan=2 align=center height=50>
<input type="submit" value="회원가입">
</td>
</tr>
</table>
</form>
</body>
</html>

 

 


scoreResult.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>
<%!
// avarage() 메소드 선언
double average(int[] jumsu){
	int sum = 0;
	for(int i = 0; i < jumsu.length; i++){
		sum += jumsu[i];
	}
	return (double)sum/jumsu.length;
}
%>
<%
request.setCharacterEncoding("utf-8");

// 데이터 받기
String name = request.getParameter("name");
int Java = Integer.parseInt(request.getParameter("Java"));
int Web = Integer.parseInt(request.getParameter("Web"));
int IOT = Integer.parseInt(request.getParameter("IOT"));
int Android = Integer.parseInt(request.getParameter("Android"));

int[] jumsu = {Java,Web,IOT,Android};

// 평균 계산하는 함수 호출
double avg = average(jumsu);
// 학점 산출
String grade = "";
switch((int) avg/10){
case 10:
case 9: grade = "A"; break;
case 8: grade = "B"; break;
case 7: grade = "C"; break;
case 6: grade = "D"; break;
default: grade = "F";
}
%>

<!-- 사용자에게 결과 출력하기 위한 html -->
<h2>학점확인프로그램</h2>
<table>
<tr>
<td>이름</td>
<td><%=name %></td>
</tr>
<tr>
<td>Java 점수</td>
<td><%=Java %></td>
</tr>
<tr>
<td>Web 점수</td>
<td><%=Web %></td>
</tr>
<tr>
<td>IOT 점수</td>
<td><%=IOT %></td>
</tr>
<tr>
<td>Android 점수</td>
<td><%=Android %></td>
</tr>
<tr>
<td>평균</td>
<td><%=avg %></td>
</tr>
<tr>
<td>학점</td>
<td><b><%=grade %></b></td>
</tr>
</body>
</html>

 

scoreForm.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="scoreResult.jsp" method="post">
<h2>학점확인프로그램</h2>
<table>
<tr>
<td>이름</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>Java 점수</td>
<td><input type="text" name="Java"></td>
</tr>
<tr>
<td>Web 점수</td>
<td><input type="text" name="Web"></td>
</tr>
<tr>
<td>IOT 점수</td>
<td><input type="text" name="IOT"></td>
</tr>
<tr>
<td>Android 점수</td>
<td><input type="text" name="Android"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="확인하기"></td>
</tr>

</table>
</form>
</body>
</html>


 

 

 

 

 

Member.java

package com.smart.beans;

public class Member {
	private String id;
	private String ps;
	private String name;
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPs() {
		return ps;
	}
	public void setPs(String ps) {
		this.ps = ps;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	
}

 

MemberManager.java

package com.smart.beans;

import java.util.ArrayList;
import java.util.List;

public class MemberManager {
	// 회원 목록을 관리하기 위한 ArrayList
	List<Member> list = new ArrayList<Member>();
	
	// 회원 추가 메서드
	public void add(Member member) {
		list.add(member);
	}
	
	// 회원 목록 전달 메서드
	public List<Member> getList() {
		return list;
	}
}

 

 


 

regist.jsp

<%@page import="java.util.ArrayList"%>
<%@page import="com.smart.beans.Member"%>
<%@ page contentType="text/html; charset=UTF-8" %>
<%
    // 클라이언트로부터 데이터 받기
    String id = request.getParameter("id");
    String ps = request.getParameter("ps");
    String name = request.getParameter("name");

    // 사용자 정보를 Member 객체에 저장하기
    // 1. 객체 생성
    Member member = new Member();

    // 2. setter 메소드 이용한 저장
    member.setId(id);
    member.setPs(ps);
    member.setName(name);

    // ArrayList member 추가
    // 1. Application 객체에 list가 존재하는지 확인
    ArrayList<Member> list = (ArrayList<Member>) application.getAttribute("list");
    if (list == null) {
        list = new ArrayList<>();
    }

    // 2. Member 데이터 추가
    list.add(member);

    // 3. application 객체에 정보 저장
    application.setAttribute("list", list);
%>
<h2>가입 회원 정보</h2>
ID:<%=member.getId() %><br>
PW:<%=member.getPs() %><br>
Name:<%=member.getName() %><br>
<hr>
<a href="report.jsp">회원정보보기</a>
<a href="login.html">로그인</a>

 

 

regist.html

<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form action="regist.jsp">
<table align=center>
<tr><td colspan=2 align=center height=40><b>회원가입</b><td></tr>
<tr>
	<td align=right>아이디&nbsp;</td> 
	<td><input type="text" name="id" placeholder="Email address" required></td>
</tr>
<tr>
	<td align=right>패스워드&nbsp;</td> 
	<td><input type="password" name="ps" required></td>
</tr>
<tr>
	<td align=right>이름&nbsp;</td> 
	<td><input type="text" name="name" required></td>
</tr>
<tr>
	<td colspan=2 align=center height=50>
		<input type="submit" value="회원가입">
	</td>
</tr>
</table>
</form>
</body>
</html>

 

 


 

login.jsp

<%@page import="com.smart.beans.MemberManager"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.util.List"%>
<%@page import="com.smart.beans.Member"%>
<%@page import="java.util.ArrayList"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>regist.jsp</title>
</head>
<body>
<div align="center">
<%@include file="menu.jsp" %>
<hr>
<%
	String id = request.getParameter("id");
	String pw = request.getParameter("pw"); 
	
	MemberManager mm = (MemberManager)application.getAttribute("list");
	
    // 입력받은 id가 null이거나 MemberManager 객체가 null인 경우 (회원가입 되어있지 않은 상태)
	if(id == null || mm==null){ // 비정상 접근 또는 회원가입 코드가 한번도 실행 되지 않았다면 mm은 null
		out.print("회원가입 하세요"); 
	}else{
		
        // mm은 MemberManager 클래스의 인스턴스로, getList() 메서드 통해 회원 목록인
        // List<Member>를 반환받음
		List<Member> list = mm.getList();
        // 얻어온 회원목록(list)에 반복문 수행. i는 반복문에서 현재 회원의 인덱스 나타냄
		int i;
		for(i=0; i<list.size(); i++){
        	// 현재 반복 진행 중인 인덱스 i에 해당하는 회원 정보를 list에서 가져와 member변수에 할당
			Member member = list.get(i);
			// 회원가입이 되어있는 경우, MemberManager에서 회원목록을 가져와 입력된 id와 비밀번호 비교
			if(member.getId().equals(id) && member.getPw().equals(pw)){
            	// 로그인에 성공하면 session에 해당 회원 정보 저장, 
                // main.jsp로 리다이렉트
				session.setAttribute("member", member);
				response.sendRedirect("main.jsp");
			}
		}
        
        // 만약 for 루프가 모두 돌아가도 일치하는 아이디, 비번 못 찾으면 실행
		if(i==list.size()){
			out.print("아이디와 비밀번호를 확인하세요");
		}
	}
%>
</div>
</body>
</html>

 

login.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<TITLE>주소록</TITLE>
</HEAD>
<BODY>
<div align="center">
<nav>
<a href="login.html">로그인</a> | <a href="regist.html">회원가입</a> | <a href="report.jsp">회원정보</a>
</nav>
<HR>
<H2>로그인</H2>
<form method="post" action=login.jsp>
<table border=1 cellspacing="1" cellpadding="5">
<tr>
<td>아이디</td>
<td><input type=text size=20 name=id></td>
</tr>
<tr>
<td>비밀번호</td>
<td><input type=password size=20 name=pw></td>
</tr>
<tr><td colspan=2 align=center>
	<input type=submit value="로그인">
	<input type=reset value="초기화"></td></tr>
</table>

</form>
</div>
</BODY>
</HTML>

 

 

 


report.jsp

<%@page import="java.util.*"%>
<%@page import="com.smart.beans.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>주소록 목록</title>
</head>
<body>
<div align=center>
<%@include file="menu.jsp" %>
<HR>
<%
	// 현재 세션에서 로그인한 사용자의 정보 가져옴
	Member member = (Member)session.getAttribute("member");
	//세션 존재하는가?
	if(member!=null){
    	// MemberManager에서 getList() 메서드 사용하여 전체 회원 목록 가져옴
		MemberManager mm = (MemberManager)application.getAttribute("list");
		List<Member> list = mm.getList();		
%>
<H2>회원주소록</H2>
<p><%=member.getName() %>님(<a href="logout.jsp">로그아웃</a>)</p>  
<table border=1 width=500>
<tr><th>번호</th><th>이름</th><th>이메일</th></tr>
<%
		// list에 있는 회원 목록 반복하여 각 회원 정보 표시
		for(int i=0; i < list.size(); i++) {
			member = list.get(i);
%>
	<tr align="center">
	<td> <%=(i+1) %></td>
	<td> <%=member.getName()%></td>
	<td> <%=member.getEmail() %></td>
<%	
		}	
	}else{
		out.print("로그인 후 사용하기 바랍니다.");
	}
%>
</table>
</div>
</body>
</html>

 

 


 

main.jsp

<%@page import="com.smart.beans.MemberManager"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.util.List"%>
<%@page import="com.smart.beans.Member"%>
<%@page import="java.util.ArrayList"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>regist.jsp</title>
</head>
<body>
<div align="center">
<%@include file="menu.jsp" %>
<hr>
<%
	Member member = (Member)session.getAttribute("member");

	if(member==null){
		out.print("회원가입 후 사용하기 바랍니다.");
	}else {	
%>
<p><%=member.getName() %>님 반갑습니다.(<a href="logout.jsp">로그아웃</a>)</p>  
<p>메인페이지입니다.</p> 
<% } %>
</div>
</body>
</html>

 

 


 

logout.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>
<%
	// 세션 무효화. 세션 무효화는 현재 세션에 저장된 모든 데이터를 삭제하고 새로운 세션 생성
	session.invalidate();
    // 로그아웃 완료 후, 사용자를 로그인 페이지로 리다이렉트
	response.sendRedirect("login.html");
%>
</body>
</html>

 

 

'학교 > JAVA' 카테고리의 다른 글

자바빈(JavaBean)  (0) 2023.12.17
05) 서블릿 예제  (0) 2023.12.16
07) 내장 객체 예제  (0) 2023.12.15
05) 서블릿  (0) 2023.12.14
06) JSP  (0) 2023.12.14