| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- gradle
- spring
- @Valid
- @ResponseBody
- 생성자주입
- MVC
- SpringBoot
- .xml
- Java
- Model
- 바인딩변수
- c:if
- springmvc
- 의존주입
- 유효성검사
- @RequestParam
- @
- 스프링
- produces
- jointpoint
- AOP
- 어노테이션
- springjdbc
- after-throwing
- application.properties
- 비즈니스레이어
- 서비스레이어
- frontController
- @RequestMapping
- PointCut
- Today
- Total
메모장
application 본문

application은 내장객체로서 session 보다 넓은 단위 이며 브라우저가 꺼져도 유지 된다. 크롬 이외 다른 브라우저를 이용시에도 서버가 꺼지지 않았기 때문에 데이터가 유지 된다 .
방문자 수를 확인해보는 페이지를 예시로 만들었다
application.setAttribute( " 이름 " , " 값 " ) ---> 기본 형식이다.
불러 올땐 application.getAttribute( " 이름 ") ---> 기본형식이다.

application.getAttribute("cnt") 로 방문자 수 를 불러왔고 , 페이지가 새로고침 될때 마다 방문자수가 올라가야 하므로 cnt ++ 해주고 다시 그 값을 넘겨 주기 위하여 setAttribute( " 이름 " , 값 ); 을 보낸다.
마지막 문장에서 getAttribute("memberName")을 불러왔고 그에 해당 하는 값(=이름) 인 "홍길동"을 불러왔다. 오늘의 방문자 수는 cnt 명 이다.
실습 문제 ) 로그인 페이지를 구현하고 로그인이 안되어있을 시엔 글 작성을 못하도록 하고 ,
로그인 후 접속하면 글작성을 할 수 있도록 , 또한 누가 쓴 글 인지 표시 해주시고
글은 브라우저가 꺼져도 남아 있어야 합니다 !
1.일단 로그인을 하기 위해서 input 태그 만들어 주기

2. 아이디와 비번을 입력하고 로그인 하면 b.jsp 로 이동 한다.
<한글 코딩 먼저 > 로그인을 하려는 과정
// 로그인 mid,mpw를 받아와
// 그정보를 mVO로 받아서 넘겨줘
// 근데 회원정보가 없으면 ?
// 만들면 됨
// 그것을 selectOne 으로 비교해줘
// 그러면 그 정보를 이제 추가해줘
근데 여기서 mVO 인자와 selectOne 기능을 수행할 mDAO가 필요 하므로 MemberVO와 MemberDAO를 먼저 만든다.
2-1. MemberVO, MemberDAO 만들기
1) 생성자 초기화(아이디,비번,이름) ,getter,setter 만들기, DAO에 DB역할을 할 데이터 만들고 값 세팅 해주기



2) 우리는 로그인 정보 비교 할 때 selectOne 을 사용할 것 이므로 selectOne 만 !
for문을 돌려 전체 중 받아온 mid 와 내가 가진 mid가 같니 ? 같으면 비밀번호도 맞니 ? 그러면 값 반환해.
2-2. 다시 돌아와서 한글코딩 내용 대로 작성해주기
// 로그인 mid,mpw를 받아와
String mid = request.getParameter("mid"); 사용자가 보내온 정보를 요청으로 받는다.
String mpw = request.getParameter("mpw"); 아이디와 비밀번호 받기
// 그 정보를 mVO로 받아서 넘겨줘
MemberVO mVO = new MemberVO();
mVO.setMid(mid); mVO로 보낼 준비
mVO.setMpw(mpw);
// 그것을 selectOne 으로 비교해줘
MemberDAO mDAO = new MemberDAO();
mVO=mDAO.selectOne(mVO); 그 mVO를 인자로 넣고 selectOne 하여 아이디와 비밀번호가 있는지 확인
- 그걸 다시 새로운 mVO 에 담는다 (재활용 방식)
- 새로운 객체를 쓸거면 담을 객체 이름을 mdata 등 다르게 짓는다.
// 근데 회원정보가 없으면 ?
if(mVO == null){ --회원정보가 없는 회원정보니 ?
out.println("<script>alert('로그인 실패...');history.go(-1);</script>");
}
else{ -- 회원 정보가 있어 ?
// 그러면 그 정보를 이제 보내줘
session.setAttribute("name", mVO.getName());
이름 이름에 대한 값
response.sendRedirect("a.jsp"); 다시 a.jsp로 돌아가자
얘는 데이터 유지가 x 인데 그럴 필요가 없는것이 session 에서 이미 정보를 들고 있음
}
근데 이것을 줄여서 쓸 수 있다 !!

<jsp:useBean> : 우리가 새로운 객체를 선언할 때 new 새로운 객체(); 라고 만들었는데 이것을 대신해주는 기능
<jsp:setProperty> : pVO의 모든 setter를 호출하겠다. setter에 넣을 값을 request.getParameter()에서 자동으로 매핑해주겠다! 형변환까지도 해준다 !
그래서 로직이 간단해진다.

3. 다시 돌아 가서 "name" 으로 받아오기 !

session.getAttribute("name") == null (혹시 로그인이 안되어있니?)
{ 그러면 로그인 부터해 }
else { ㅇㅇ 님 환영합니다 ! <a href>로그아웃</a> }
4. 로그인에 성공하면 이제 글 작성 할 수 있다.
글 작성은 또 form을 통해 전송 한다.

이것으로 유추해봤을때 저쪽에서 write 라는 이름으로 사용자의 정보를 요청 받을 것이다.
required 를 걸어줌으로서 아무것도 입력하지 않았을 시 못넘어가도록 잡아주기
4-1. 정보를 넘기면 글 작성이 될수 있도록 값을 넘겨야 한다.
// 한글코딩 먼저
// 사용자가 보내는 정보 (=값) 받아야해
String write = request.getParameter("write");
// 그것이 (=글)여러개 일 것이니까 배열리스트로 받아야해
// 근데 브라우저가 꺼져도 글은 계속 남아 있어야해
ArrayList<String> letter =(ArrayList<String>)application.getAttribute("letter");
// 만약 글작성이 아무것도 안되어있다면 ?
if(letter == null){
// 만들어 주면 돼
letter = new ArrayList<String>();
application.setAttribute("letter", letter);
}
// 있다면 추가 해줘
letter.add(write);
// 그리고 다시 전 으로 돌아가줘
response.sendRedirect("a.jsp");

5. 정보 받아와서 보이는 페이지에 출력 해줘

<li></li> 태그를 쓰기 위해선 <ul></ul> 태그나 <ol></ol> 태그를 써야 한다.
불러올땐 "letter" 로 불러온다. 만약 글이 아예 작성된것이 없다면 , 글이 작성되지 않았다는 문구 띄워주고
아닐시 for문을 돌려 list 를 하나씩 출력 해준다.
6. 잘 동작하는지 확인

'JSP > 개념정리' 카테고리의 다른 글
| JSTL (0) | 2024.04.26 |
|---|---|
| JSP 와 JDBC 연결 (0) | 2024.04.26 |
| jsp 개념정리 (2) (0) | 2024.04.26 |
| JSP 내장객체 정리 (1) | 2024.04.26 |
| JSP 개념정리 (1) (1) | 2024.04.26 |