728x90
html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 저장공간 (server, Client)
cookie:client저장 공간, String
ID,PassWord,방문회수
자바스크립트에서도 접근
session: server 저장공간, Object
저장기한 설정, 방문회수
한글사용 금지
개인정보 - (id,password,Name)
-->
<a href = "hello">hello Servlet</a>
<br><br>
<a href ="world">world Servlet</a>
</body>
</html>
Servlet
■ session 객체 생성하기
session 객체를 생성하는 방법은 request 내장 객체로부터 getSession() 메소드를 이용해서 다음과 같이 생성할 수 있다.
HttpSession session = request.getSession(true);
getSession() 메소드를 호출하면 서버에서는 쿠키나 URL로부터 세션 ID를 뽑아내서 서버에 저장되어 있는 세션 ID 목록과 비교를 하게 된다. 그 결과 일치하는 세션 ID가 있다면 해당 세션 ID의 세션 객체를 전달하고, 없다면 새로운 세션 객체를 생성해서 전달해 준다.
하지만, 세션 객체는 원래 JSP의 내장 객체로 제공된다. 따라서 위와 같이 직접 선언하지 않아도 프로그래머는 session 내장 객체를 이용함으로써 세션을 사용할 수 있다. session 내장 객체는 JSP 페이지의 pageContext 내장 객체로부터 getSession() 메소드를 이용해서 다음과 같이 생성된다.
HttpSession session = null;
session = pageContext.getSession();
package world;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/world")
public class WorldServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html; charset=utf-8");
PrintWriter pw = resp.getWriter();
pw.println("<html>");
pw.println("<head>");
pw.println("<title>제목</title>");
pw.println("</head>");
pw.println("<body>");
pw.println("<h3>worldServlet</h3>");
HttpSession session = req.getSession(false);
/*
getSession(false)
session object가 존재하면, 현재 HttpSession을 반환한다
존재하지 않으면 null반환
getSession(true)
session object가 존재하면, 현재 HttpSession을 반환한다
존재하지 않으면 새로 생성한다
*
*/
if(session == null) {
//세션이 없을때 if
session = req.getSession(true);
//선택
session.setMaxInactiveInterval(30);//365*24*60*60 1년
//30초후에는 세션이 없어진다
//session 생성
session.setAttribute("visited", "1");
pw.println("<p>첫번째방문입니다</p>");
}
else {
String visited = (String)session.getAttribute("visited");
int count = Integer.parseInt(visited);
count++;
pw.println("<p>방문횟수는 "+ count +"번째 방문입니다</p>");
session.setAttribute("visited", count + "");
//문자열로 바꾸기 위해 ""를 뒤에 추가
}
pw.println("</body>");
pw.println("</html>");
pw.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
super.doPost(req, resp);
}
}
728x90
'HTML' 카테고리의 다른 글
42일차// jsp설문지를 작성하여 jsp페이지로 데이터 넘겨주기(파라미터 넘기기) (0) | 2021.03.12 |
---|---|
41일차//JSP내장객체 (🙀매우중요) 파라미터로 데이터 받아 전송 (0) | 2021.03.11 |
41일차//Servlet 실습 4 (form만들어 서버에 보내 html출력) 이름, 연령, 취미 조사 (0) | 2021.03.11 |
Servlet 실습 3 (html code를 받아 서버에서 확인후 html 출력) 200,404,500 (0) | 2021.03.10 |
Servlet 실습 2 (html client에서 받은 데이터를 servlet 서버로 데이터를 날려준다. ) (0) | 2021.03.10 |