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>이름 </td>
<td><input type="text" name="name" placeholder="이름 입력"></td>
</tr>
<tr>
<td align=right>나이 </td>
<td><input type="number" name="age" placeholder="나이 입력"></td>
</tr>
<tr>
<td align=right>좋아하는 음식 </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>성별 </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>아이디 </td>
<td><input type="text" name="id" placeholder="Email address" required></td>
</tr>
<tr>
<td align=right>패스워드 </td>
<td><input type="password" name="ps" required></td>
</tr>
<tr>
<td align=right>이름 </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 |