반응형

1. Beans
    - Beans은 일종의 특정한 일을 독립적으로 수행하는 콤포넌트로, 

      set & get이 있어 속성을 제어하고 다양한 기능을 수행하는 방법들로 정의 할 수 있다.
    

user.java 파일 생성

package key;

public class user {

String name;

int num;

public user() {

name = "";

num = 0;

}

public String getName() {

return name;

}

public int getNum() {

return num;

}

public void setName(String name) {

this.name = name;

}

public void setNum(int num){

this.num = num;

}

}


uset.jsp 파일생성


<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>

<%request.setCharacterEncoding("euc-kr");%>

<jsp:useBean id="info" scope="request" class="key.user"/>

<jsp:setProperty name="info" property="name"/>

<jsp:setProperty name="info" property="num" param="id"/>

<html>

<body>

<P>

<FORM method=post>

<CENTER>

<TABLE border=0 width=300>

<TR>

<TH bgcolor=#996699 colspan=2>

<font color=white size=+1>JSP Beans테스트</font>

</TH>

</TR>

<TR>

<TH width=20% bgcolor=#BB6699 width=40%>

<FONT color=white size=-1>이름</FONT>

</TH>

<TD bgcolor=#99ccff width=60%>

<INPUT type=text name=name value<%=info.getName() %> size=10>

</TD>

</TR>

<TR>

<TH width=40% bgcolor=#BB6699>

<FONT color=white size=-1>학번</FONT>

</TH>

<TD bgcolor=#99ccff>

<INPUT type=text name=id value<%=info.getNum() %> size=10>

</TD>

</TR>

<TR>

<TD colspan=2>

<INPUT type=submit vlaue="보내기">

<INPUT type=reset vlaue="다시쓰기">

</TD>

</TR>

</TABLE>

</CENTER>

</FORM>

</P>

<jsp:include page="1_setget.jsp" />

</body>

</html>


setget.jsp 파일 생성


<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>

<jsp:useBean id="info" scope="request" class="key.user" />


현재 값:

<jsp:getProperty name="info" property="name" />

<jsp:getProperty name="info" property="num" />


<BR>

Form으로부터 설정된 값:

<jsp:setProperty name="info" property="name" />

<jsp:setProperty name="info" property="num" param="id" />

<jsp:getProperty name="info" property="name" />

<jsp:getProperty name="info" property="num" />


<BR>

직접 설정한 값:

<jsp:setProperty name="info" property="name" value="모짜르트"/>

<jsp:setProperty name="info" property="num" value="123456" />

<jsp:getProperty name="info" property="name" />

<jsp:getProperty name="info" property="num" />



2. Session

- 클라이언트가 사이트를 방문하면 세션이 형성되며 서블릿 엔진은 유일한 ID를 세션에

         지정한다. 웹에서의 세션은 특정 사용자와 지속적으로 대화가 일어나고 있는 것을 의미


<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>

<html>

<body>

<H3> SESSION 테스트</H3>

<%

session = request.getSession();

String[] a =  session.getValueNames();

out.println("세션 ID : " + session.getId() + "<BR>" );

out.println("세션유지시간 : " + session.getMaxInactiveInterval() + "<BR>");

if(a.length == 0){

session.putValue(session.getId(), "A");

} else {

String what = (String)session.getValue(a[0]);

out.print("<BR>" + "이름" + a[0] + "값 : " + what + "<BR>");

session.putValue(session.getId(), what + "A");

}

%>

<a href="sessionTest.jsp">다시 읽기</a>

</body>

</html>


3. Count + File 저장


count.java 파일 생성


package key;


public class counter {

int count;

public counter() {

count = 0;

}

public int getCount() {

return count;

}

public void setCount() {

count = count + 1;

}

}


counter.jsp 파일생성

<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@ page import="java.io.*" %>
<jsp:useBean id="cnt" scope="application" class="key.counter"></jsp:useBean>
<!-- scope가 application이면 서버가 가동중일 때만 값을 유지한다. -->
<html>
<body>
<%
int count = 0;
session = request.getSession();
session.setMaxInactiveInterval(1); //현재 session의 최대 세션유지시간을 1초로 정의한다.
// session에 checkfirst값을 확인한다. 위에 세션유지시간이 지나면 해당 값을 지운다.
// first변수 확인하는 조건을 삭제하면 계쏙 방문수는 증가한다.
String first = (String)session.getValue("checkfirst");
String count_file = "c:/count.txt";
if(cnt.getCount() == 0){
int j=0;
String old = null;
File file = new File(count_file);
try {
if(file.exists()){
BufferedReader input = new BufferedReader(new FileReader(file));
if((old = input.readLine()) != null){
int i = Integer.parseInt(old);
for(j=0; j<i; j++){
cnt.setCount();
}
input.close();
}
}
} catch(IOException e) {
out.println(e.getMessage());
}
}
if(first != null){
count = cnt.getCount();
} else {
cnt.setCount();
count = cnt.getCount();
session.putValue("checkfirst", "false");
}
if(count % 10 == 0){
try {
PrintWriter pw = new PrintWriter(new FileWriter(count_file));
pw.println(count);
pw.close();
} catch(IOException e){
out.println(e.getMessage());
}
}
out.println("현재까지 방문자 수 : " + count);
%>
<br><br>
<a href="counter.jsp">다시 읽기</a>
</body>
</html>


반응형

+ Recent posts