Web programming

(22.12.11)Web ํ”„๋กœ๊ทธ๋ž˜๋ฐ : ์›นํŽ˜์ด์ง€ ํ—ค๋” ๋งŒ๋“ค๊ธฐ (include file ์ด์šฉํ•˜๊ธฐ)

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2022. 12. 11.

 

โ—โ—์›นํŽ˜์ด์ง€ ํ—ค๋” ๋งŒ๋“ค๊ธฐโ—โ—

 

 

 

 

โ—โ—์ „์ฒด ์ฝ”๋“œโ—โ—

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<%@ page contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<% String userid = (String)session.getAttribute("userid"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>1๋ถ„ ๋Œ„์Šคํ•™์Šตํ•˜๊ธฐ</title>
<script src="https://code.jquery.com/jquery-3.6.1.min.js" 
integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous">
</script>
<script>
    var uid='<%=userid%>';
    $(function(){
        if(uid=='null'){
            $('#id').css('display','none'); 
            $('#logout').css('display','none');
            $('#my_info').css('display','none'); 
        }
        else if(uid!=null){
            $('#loginbtn').css('display','none');
            $('#joinmem').css('display','none');
            
        }
    });
</script>
<script type="text/javascript">
function logout()
{    
    $.ajax({
        url : 'lmslogin',
        method: 'post',
        data:{"cmd":"logout"},
        cache : false,
        dataType:'json',
        success:function(res){
            alert(res.logout ? '๋กœ๊ทธ์•„์›ƒ ์„ฑ๊ณต' : '๋กœ๊ทธ์•„์›ƒ ์‹คํŒจ');
            location.href='lmslogin';
        },
        error : function(xhr,status,err){
            alert('์—๋Ÿฌ:' + err);
        }
    });
}
</script>
<script>
function loginOK(){
    
    var loginDone = <%=userid%>;
    
    if(loginDone==null){
        alert("๋กœ๊ทธ์ธ์„ ๋จผ์ €ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.");
        location.href='lmslogin?cmd=loginform';
    }
    else if(loginDone!=null){
        location.href='lms?cmd=learn';
    }
}
</script>
<style type="text/css">
@import url(//fonts.googleapis.com/earlyaccess/jejumyeongjo.css);
    
header{
  background-color:rgba(0,35,245,0.8);
  height:110px;
  line-height:110px;
  text-align:center;
  font-family: 'Jeju Myeongjo', cursive;
  font-size:2em;
  color: white;
  text-shadow: 0px 3px 3px rgba(200, 0, 0, 0.66);}
nav {
  background-color:rgba(245,205,20,0.5);
  height:60px;
  font-family: 'Jeju Myeongjo', serif;
  line-height:60px;
  text-shadow: 0px 5px 5px rgba(255, 255, 255, 0.7);
  }
 
a:link{
 text-decoration:none;
 color: black;}
a:visited{
 text-decoration:none;
 color: black;}
a:hover{
 text-decoration:none;
 color: white;}
a:active{
 text-decoration:none;
 color: white;}
 
</style>
</head>
<body>
<header> <h2> ๐Ÿ’ƒ1๋ถ„ ๋Œ„์Šคํ•™์Šตํ•˜๊ธฐ๐Ÿ•บ</h2></header>
<nav>
<font size=5><b>
 <span id="id">&emsp;<%=userid%></span>&emsp;
 <span id="loginbtn"><a href=lmslogin?cmd=loginform>๋กœ๊ทธ์ธ</a>&emsp;</span>
 <span id="logout"><a href="javascript:logout();">๋กœ๊ทธ์•„์›ƒ</a>&emsp;</span>
 <span id="joinmem"><a href="lmslogin?cmd=joinmem">ํšŒ์›๊ฐ€์ž…</a>&emsp;</span>
 <span id="my_info"><a href="lmslogin?cmd=my_info">๋‚ด์ •๋ณด ๋ณด๋Ÿฌ๊ฐ€๊ธฐ</a>&emsp;</span>
 <a href="javascript:loginOK();">๋™์˜์ƒ ํ•™์Šต</a>&emsp; 
 <a href="lms">ํ™ˆ์œผ๋กœ</a></b>
 </font> 
 </nav>
cs

 

 

 

โ—โ—<header>ํ—ค๋” ํƒœ๊ทธ <nav> ๋„ค๋น„๊ฒŒ์ด์…˜ ๋งํฌ ํƒœ๊ทธโ—โ—

1
2
3
4
5
6
7
8
9
10
11
12
<header> <h2> ๐Ÿ’ƒ1๋ถ„ ๋Œ„์Šคํ•™์Šตํ•˜๊ธฐ๐Ÿ•บ</h2></header>
<nav>
<font size=5><b>
 <span id="id">&emsp;<%=userid%></span>&emsp;
 <span id="loginbtn"><a href=lmslogin?cmd=loginform>๋กœ๊ทธ์ธ</a>&emsp;</span>
 <span id="logout"><a href="javascript:logout();">๋กœ๊ทธ์•„์›ƒ</a>&emsp;</span>
 <span id="joinmem"><a href="lmslogin?cmd=joinmem">ํšŒ์›๊ฐ€์ž…</a>&emsp;</span>
 <span id="my_info"><a href="lmslogin?cmd=my_info">๋‚ด์ •๋ณด ๋ณด๋Ÿฌ๊ฐ€๊ธฐ</a>&emsp;</span>
 <a href="javascript:loginOK();">๋™์˜์ƒ ํ•™์Šต</a>&emsp; 
 <a href="lms">ํ™ˆ์œผ๋กœ</a></b>
 </font> 
 </nav>
cs

 

๋„ค์ด๊ฒŒ์ด์…˜ ๋งํฌ ํƒœ๊ทธ๋“ค๋กœ ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ, ํšŒ์›๊ฐ€์ž…, ๋‚ด์ •๋ณด ๋ณด๋Ÿฌ๊ฐ€๊ธฐ, ๋™์˜์ƒํ•™์Šต, ํ™ˆ์œผ๋กœ 6๊ฐœ์˜ ๋งํฌ๋ฅผ ์ฃผ์—ˆ๋‹ค.

 


 

 

โ—โ—ํ—ค๋” ํƒœ๊ทธ, ๋„ค๋น„๊ฒŒ์ด์…˜ ๋งํฌ ํƒœ๊ทธ css ์Šคํƒ€์ผโ—โ—

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<style type="text/css">
@import url(//fonts.googleapis.com/earlyaccess/jejumyeongjo.css);
    
header{
  background-color:rgba(0,35,245,0.8);
  height:110px;
  line-height:110px;
  text-align:center;
  font-family: 'Jeju Myeongjo', cursive;
  font-size:2em;
  color: white;
  text-shadow: 0px 3px 3px rgba(200, 0, 0, 0.66);}
nav {
  background-color:rgba(245,205,20,0.5);
  height:60px;
  font-family: 'Jeju Myeongjo', serif;
  line-height:60px;
  text-shadow: 0px 5px 5px rgba(255, 255, 255, 0.7);
  }
 
a:link{
 text-decoration:none;
 color: black;}
a:visited{
 text-decoration:none;
 color: black;}
a:hover{
 text-decoration:none;
 color: white;}
a:active{
 text-decoration:none;
 color: white;}
 
</style>
cs

๋งํฌ๋“ค์ด ๋ฐฉ๋ฌธ๋˜๊ธฐ ์ „์ด๋‚˜ ๋ฐฉ๋ฌธ๋œ ํ›„๋Š” ๊ฒ€์ • ๊ธ€์”จ๋กœ ๋งˆ์šฐ์Šค์ปค์„œ๊ฐ€ ์˜ค๋ฒ„๋์„ ๋•Œ ์‹คํ–‰๋์„ ๋• ํฐ์ƒ‰ ๊ธ€์”จ๋กœ ๋ณ€ํ•˜๊ฒŒ ํ•ด์ฃผ์—ˆ๋‹ค.

ํ—ค๋”์™€ ๋„ค๋น„๊ฒŒ์ด์…˜์€ ํˆฌ๋ช…๋„๋ฅผ ์ฃผ์—ˆ๋‹ค. ๊ธ€์”จ์—๋„ ๊ทธ๋ฆผ์ž ํšจ๊ณผ๋ฅผ ์ฃผ์—ˆ๋‹ค.

 

 


 

โ—โ—Javascriptโ—โ—

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script>
    var uid='<%=userid%>';
    $(function(){
        if(uid=='null'){
            $('#id').css('display','none'); 
            $('#logout').css('display','none');
            $('#my_info').css('display','none'); 
        }
        else if(uid!=null){
            $('#loginbtn').css('display','none');
            $('#joinmem').css('display','none');
            
        }
    });
</script>
cs

 

์„ธ์…˜์—์„œ ์‚ฌ์šฉ์ž์˜ ์•„์ด๋””๋ฅผ ๋ฐ›์•„ ๋กœ๊ทธ์ธ์ด ๋˜์–ด ์žˆ์„ ๋• ๋กœ๊ทธ์ธ๋งํฌ์™€ ํšŒ์›๊ฐ€์ž… ๋งํฌ๋ฅผ ์—†์• ๋ฒ„๋ฆฌ๊ณ  ๋กœ๊ทธ์ธ์ด ๋˜์–ด ์žˆ์ง€ ์•Š์„ ๋• ๋กœ๊ทธ์•„์›ƒ, ์•„์ด๋”” ํ‘œ์‹œ, ๋‚ด์ •๋ณด ๋ณด๋Ÿฌ๊ฐ€๊ธฐ ๋งํฌ๋ฅผ ์—†์•ด๋‹ค.

 

 

๋กœ๊ทธ์ธ์„ ํ•˜์ง€ ์•Š์•˜์„ ๋•Œ

 

๋กœ๊ทธ์ธ์„ ํ–ˆ์„ ๋•Œ

 


 

 

โ—โ—๋กœ๊ทธ์ธํ•˜์ง€ ์•Š๊ณ  ๋™์˜์ƒ ํ•™์Šตํ•˜๋ ค ํ•  ๋•Œโ—โ—

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script>
function loginOK(){
    
    var loginDone = <%=userid%>;
    
    if(loginDone==null){
        alert("๋กœ๊ทธ์ธ์„ ๋จผ์ €ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.");
        location.href='lmslogin?cmd=loginform';
    }
    else if(loginDone!=null){
        location.href='lms?cmd=learn';
    }
}
</script>
cs

๋กœ๊ทธ์ธ์„ ํ•˜์ง€ ์•Š๊ณ  ๋™์˜์ƒ ํ•™์Šต ๋งํฌ๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ ๋กœ๊ทธ์ธ์„ ๋จผ์ € ํ•ด์•ผํ•œ๋‹ค๋Š” alert์ฐฝ ๋„์šฐ๊ณ  ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ๋ณด๋‚ด๊ธฐ

 

์‹คํ–‰ ๊ฒฐ๊ณผ :

 

 


 

 

โ—โ—๋กœ๊ทธ์•„์›ƒ ์ฒดํฌํ•˜๊ธฐโ—โ—

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script type="text/javascript">
function logout()
{    
    $.ajax({
        url : 'lmslogin',
        method: 'post',
        data:{"cmd":"logout"},
        cache : false,
        dataType:'json',
        success:function(res){
            alert(res.logout ? '๋กœ๊ทธ์•„์›ƒ ์„ฑ๊ณต' : '๋กœ๊ทธ์•„์›ƒ ์‹คํŒจ');
            location.href='lmslogin';
        },
        error : function(xhr,status,err){
            alert('์—๋Ÿฌ:' + err);
        }
    });
}
</script>
cs

๋ฐฑ์—”๋“œ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ๋กœ๊ทธ์•„์›ƒ ๊ฒฐ๊ณผ ํ‘œ์‹œ ํ•˜๊ธฐ

 

์‹คํ–‰ ๊ฒฐ๊ณผ :

 


 

์œ„์™€ ๊ฐ™์ด ๋งŒ๋“  ํ—ค๋”๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด Main.jsp์— ์Šคํฌ๋ฆฝํŠธ ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ include file =ํŒŒ์ผ ๊ฒฝ๋กœ๋กœ ๋„ฃ์–ด์ฃผ๋ฉด ํŽ˜์ด์ง€์˜ ํ—ค๋”๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

 

1
2
3
4
5
6
7
8
9
10
11
<%@ page contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
 
<%@ include file="/WEB-INF/jsp/lms/user_info.jsp"%>
 <% String uid = (String) session.getAttribute("userid"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>๋™์˜์ƒ ํ•™์Šตํ”„๋กœ๊ทธ๋žจ</title>
</head>
cs

 

๋Œ“๊ธ€