package useBeans.useBeansTest;
public class UseBeansExample {
public int x;
public int cube(int n) {
return n*n*10;
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="beans" class="useBeans.useBeansTest.UseBeansExample"/>
<%
beans.x=5; //5를 멤버 변수 x에 대입
int z=beans.x;
int example=beans.cube(z); //250
%>
<jsp:useBean id= "instanceName" scope= "page | request | session | application"
class= "packageName.className" type= "packageName.className"
beanName="packageName.className | <%= expression >" >
</jsp:useBean>
package useBeans.useBeansTest;
public class UseBeansTest {
private String nick;
private String pass;
public String getNick() {
return nick;
}
public void setNick(String nick) {
this.nick=nick;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass=pass;
}
}
<body>
<form action="Beans.jsp" method="post">
<input type="text" name="nick" required="required">
<input type="password" name="pass" required="required">
<button type="submit">
</form>
</body>
<%
String nick=request.getParameter("nick");
String pass=request.getParameter("pass");
UseBeansTest dto=new UseBeansTest();
dto.setNick(nick);
dto.setPass(pass);
UseBeansDao dao=new UseBeansDao();
dao.someMethod(dto);
%>
<jsp:useBean id="dto" class="useBeans.useBeansTest.UseBeansTest"/>
<jsp:useBean id="dao" class="useBeans.useBeansTest.UseBeansDao"/>
<jsp:setProperty property="*" name="dto"/>
<%
dao.someMethod(dto);
%>
<body>
<%
session.setAttribute("msg", "happy");
session.setMaxInactiveInterval(10); //인자값 안주면 기본값 30분
%>
<form action="sessionAction.jsp" method="post">
<h2>가고싶은 여행지</h2>
<input type="radio" value="베트남 3박4일" name="travel" checked>베트남 3박4일
<input type="radio" value="태국 4박5일" name="travel">태국 4박5일
<input type="radio" value="필리핀 6박7일" name="travel">필리핀 6박7일
<input type="radio" value="대만 2박3일" name="travel">대만 2박3일
<input type="radio" value="캄보디아 3박4일" name="travel">캄보디아 3박4일
<input value="여행당첨" type="submit">
</form>
</body>
<%
//세션이 있는지 확인후 없으면 꽝!!!
String msg=(String)session.getAttribute("msg");
String travel=request.getParameter("travel");
if(msg==null||!msg.equals("happy"))
{%>
<h3 style="color:red">시간초과로 꽝입니다</h3>
<%}
else
{%>
<h3>축!!!<%=travel %>상품에 당첨됨!!!</h3>
<%}
%>
<%
//세션을 저장하는 방법
session.setAttribute("msg", "happy monday");
session.setMaxInactiveInterval(60); //60초동안 유지시간 지정
%>
//세션 값 얻기
세션값:<%=session.getAttribute("msg") %><br>
세션유지시간:<%=session.getMaxInactiveInterval() %>초<br>
세션 생성시간:<%=session.getCreationTime() %><br>
세션 생성시간:<%=new Date(session.getCreationTime()) %>
//세션 값 삭제
session.removeAttribute("msg");
session.invalidate();
<body>
<div class="loginform">
<form action="loginAction.jsp" method="post">
<input type="text" name="id" placeholder="ID" required="required"><br>
<input type="password" name="pass" placeholder="password" required="required"><br>
<button type="submit">로그인</button><br>
<input type="checkbox" name="savechk">아이디저장
</form>
</div>
</body>
public class SignOInMethods {
//id에 맞는 pass인지 확인
public boolean authentification(String id,String pass) {
boolean flag=false;
Connection conn=db.getConnection();
PreparedStatement pstmt=null;
ResultSet rs=null;
String sql="select * from idx where id=? and pass=?";
try {
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, pass);
rs=pstmt.executeQuery();
if(rs.next())
flag=true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
db.dbClose(rs, pstmt, conn);
}
return flag;
}
}
<body>
<%
String id=request.getParameter("id");
String pass=request.getParameter("pass");
String save=request.getParameter("savechk");
//아이디와 비번이 맞는지 확인
SignOInMethods dao=new SignOInMethods();
boolean flag=dao.authentification(id, pass);
//맞으면 세션지정후 로그인메인으로 이동
if(flag)
{
//로그인중인지 알수있는 세션저장
session.setAttribute("loginStatus", "on");
//아이디 세션 저장
session.setAttribute("idSession", id);
//체크값 세션저장..체크하면 값 on,안하면 null
session.setAttribute("saveSession", save);
//세션 유지시간
session.setMaxInactiveInterval(60*60*8); //8시간동안 유지(생략시 30분)
//로그인메인으로 이동
response.sendRedirect("loginMain.jsp");
}
else
{%>
<script>
alert("ID and password is not corresponding");
history.back();
</script>
<%}
%>
</body>
DAO의 authentification() 메서드로 본인 인증 시 일치하면 로그인 상태로 간주하여 이후 사용할 session 생성
1) 로그인 상태가 지속되는 동안 유지되어, 로그인 상태를 판별하는 loginStatus session
2) session이 삭제될 때까지 지속되어, 어디서나 ID 값을 호출할 수 있는 idSession
3) 마찬가지로 어디서나 ‘아이디 저장’ 버튼 클릭 여부를 어디서나 호출할 수 있는 saveSession
본인 인증 시 불일치하면 로그아웃 상태 유지
<body>
<%
String loginStatus=(String)session.getAttribute("loginStatus");
if(loginStatus==null||loginStatus.equals("")) //logout상태
{%>
<jsp:include page="loginForm.jsp"/> <!-- 주소는 현재 파일이지만 include된 파일을 불러온다 -->
<%} else { //login상태 %>
<jsp:include page="logoutForm.jsp"/>
<%}
%>
</body>
public class SignOInMethods {
DBConnect db=new DBConnect();
//아이디 통해서 이름 얻기
public String getName(String id) {
String name="";
Connection conn=db.getConnection();
PreparedStatement pstmt=null;
ResultSet rs=null;
String sql="select * from idx where id=?";
try {
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, id);
rs=pstmt.executeQuery();
if(rs.next())
name=rs.getString("name");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
db.dbClose(rs, pstmt, conn);
}
return name;
}
}
<body>
<%
//세션으로부터 idSession
String id=(String)session.getAttribute("idSession");
//아이디에 해당하는 이름을 dao로부터 얻는다
SignOInMethods dao=new SignOInMethods();
String name=dao.getName(id);
%>
<br>
<b><%=name %></b> is staying signed in now
<input type="button" value="logout" onclick="location.href='logoutAction.jsp'">
</body>
<body>
<%
//로그인에 대한 세션값 삭제
session.removeAttribute("loginStatus");
//메인
response.sendRedirect("loginMain.jsp")
%>
</body>
<body>
<%
//세션으로부터 아이디 세이브체크값 얻기
String myid=(String)session.getAttribute("idSession");
String saveid=(String)session.getAttribute("saveSession");
boolean save=true;
if(saveid==null)
{
myid=""; //아이디저장을 체크하지 않을경우 아이디 없앤다
save=false; //체크하지 않을경우 false,그이외에는 초기값이 true니까 true
}
%>
<div class="loginform">
<form action="loginAction.jsp" method="post">
<input type="text" name="id" placeholder="ID" required="required" value="<%=myid %>"><br>
<input type="password" name="pass" placeholder="password" required="required"><br>
<button type="submit">로그인</button><br>
<input type="checkbox" name="savechk" <%=save?"checked":"" %>>아이디저장
</form>
</div>
</body>
유용한 정보 감사합니다.