프로그래밍

[Web] day39 : 글 쓰기 / 오늘의 방문수 웹페이지 예제(세션, 어플리케이션, 내장객체 out 활용) 본문

Web/Web

[Web] day39 : 글 쓰기 / 오늘의 방문수 웹페이지 예제(세션, 어플리케이션, 내장객체 out 활용)

시케 2023. 8. 1. 16:49
728x90
반응형

2023.06.29.목

웹페이지 예제

 

세션, 어플리케이션, 내장객체 out 을 활용하여

로그인/로그아웃, 글 쓰기 및 오늘의 방문수를 보여주는 웹페이지를 구현하여 보자

 

글쓰기 웹페이지 예제

mainPage.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8" import="java.util.ArrayList" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 페이지</title>
</head>
<body>

	<div id="header">
		<%
		if (session.getAttribute("name") == null) {
		%>
		<form action="login.jsp" method="post">
			아이디 <input type="text" name="mid">
			비밀번호 <input type="password" name="mpw"> <input type="submit" value="로그인">
		</form>
		<%
		} else {
		%>
		<%=session.getAttribute("name")%>님, 안녕하세요! :D | <a href="logout.jsp">로그아웃</a>

		<hr>
		<h2>글 작성하기</h2>
		<form action="writePage.jsp" method="post">
			<textarea rows="10" cols="70" name="memo"></textarea>
			<input type="submit" value="작성하기">
		</form>
		
		<br>
		<hr>


		<div>
			<%
 
			ArrayList<String> write = (ArrayList<String>) application.getAttribute("write");

			if (write == null) {
				out.println("<p>작성된 글이 없습니다!</p>");
			} else {
				for (String v : write) {
					out.println("<p>" + v + "</p>");
				}
			}
			%>
		</div>



		<%
		}
		%>
	</div>

</body>
</html>

 

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="model.MemberVO" %>
    
<jsp:useBean id="mDAO" class="model.MemberDAO" />
<jsp:useBean id="mVO" class="model.MemberVO" />
<jsp:setProperty property="*" name="mVO" />

<%
	mVO = mDAO.selectOne(mVO);
	
	if(mVO == null) {
		out.println("<script> alert('로그인 실패...'); history.go(-1); </script>");
	}
	else{
		session.setAttribute("name", mVO.getName());
	}

	response.sendRedirect("mainPage.jsp");
%>

 

logout.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	session.removeAttribute("name");
	response.sendRedirect("mainPage.jsp");
%>

 

writePage.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import = "java.util.ArrayList" %>


<%	
	String memo = "["+session.getAttribute("name") + "님]: "+ request.getParameter("memo");
	
	ArrayList<String> write =(ArrayList<String>)application.getAttribute("write");
	
	if(write == null){
		write =new ArrayList<String>();
		application.setAttribute("write", write);
	} 
	
	write.add(memo);
%>
<script>
	alert('새로운 글이 추가되었습니다! :D');
	location.href='mainPage.jsp';
</script>

 

d.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<jsp:useBean id="mDAO" class="model.MemberDAO" />
<jsp:useBean id="mVO" class="model.MemberVO" />
<jsp:setProperty property="*" name="mVO" />
<%
	mVO=mDAO.selectOne(mVO);
	if(mVO == null){
		out.println("<script>alert('로그인 실패...');history.go(-1);</script>");
	}
	else{
		session.setAttribute("name", mVO.getName());
		
		response.sendRedirect("a.jsp");
	}
%>

 

 

오늘의 방문 수 예제

test01.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>

<% 
	application.setAttribute("memberName", "홍길동");
	application.setAttribute("cnt", 0);


%>

<a href ='test02.jsp'>방문자 수 확인하기</a>


</body>
</html>

test02.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>
<%
	Integer cnt = (Integer)application.getAttribute("cnt");
	cnt++;
	application.setAttribute("cnt", cnt);
%>

오늘의 방문자 수는 <%= cnt %>명입니다.

</body>
</html>

 

깃허브

https://github.com/jihyean/Web/tree/main/day39

 

728x90
반응형
Comments