index.jsp 코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>표지 페이지</title>
</head>
<body>
<form action="main2.jsp" method="post"> <!-- main2로 이동, 정보를 주는거니 post -->
<input type="text" name="id">
<input type="submit" value="로그인">
</form>
</body>
</html>
add.jsp 코드
누가 어떠한 msg를 작성했는지 AL<String> 에 저장하는 로직
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.ArrayList" %>
<%
request.setCharacterEncoding("UTF-8");
String msg=request.getParameter("msg");
msg=session.getAttribute("id")+" "+msg; // 글쓴이 + 내용으로 출력 위해
ArrayList<String> datas=(ArrayList)application.getAttribute("datas");
if(datas==null){ // 글을 담을 AL이 없다면 담을 AL를 만들어줘야함
datas=new ArrayList<String>();
application.setAttribute("datas", datas);
}
datas.add(msg);
response.sendRedirect("main2.jsp"); // 전달할 정보가 없이 새로운 요청을 하기 때문에 senRedirect
%>
main.jsp 코드
if(id!=null){ // 매번 하지말고 index2.jsp를 통해서 페이지를 출력할 때에만 세션에 새 정보를 넣어달라는 의미
session.setAttribute("id", id); // 보안상의 이유로 session에 넣어야함.
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.ArrayList" %>
<%
request.setCharacterEncoding("UTF-8");
String id=request.getParameter("id");
if(id!=null){ // 매번 하지말고 index2.jsp를 통해서 페이지를 출력할 때에만 세션에 새 정보를 넣어달라는 의미
session.setAttribute("id", id); // 보안상의 이유로 session에 넣어야함.
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="add2.jsp" method="post"> <!-- add.2로 채팅내역을 보내야함 -->
[<%=session.getAttribute("id")%>]님: <input type="text" name="msg"> <input type="submit" value="글쓰기">
</form>
<hr>
<h3>글 목록</h3>
<ol>
<%
ArrayList<String> datas=(ArrayList)application.getAttribute("datas");
if(datas==null){
out.println("아직 내용이 없습니다!");
}
else{
for(String v:datas){
out.println("<LI>"+v+"</LI>");
}
}
%>
</ol>
</body>
</html>
수행결과
application 단위이기 때문에 서버를 종료할 때 까지 남아있으며,
다른 브라우저에서 다른 아이디로 접속해 글을 남겨도 적용이 같이 된다.