티스토리 뷰

VIEW/JSP&SERVLET

[JSP] <jsp:useBean>,Cookie,EL

찰떡쿠키부스트 2017. 12. 1. 15:50

 

# <jsp:useBean> 액션태그



<jsp:useBean id="" class="" [scope=""] />
id = 객체 불러올 아이디(변수)
class = 자바빈 클래스
scope = 영역(page,request,session,application) defalut=page



<%
 MemberBean bean=null;
 if(pageContext.getAttribute("member")==null){
 bean=new MemberBean();
 pageContext.setAttribute("member",bean);
 }else{
 bean=(MemberBean)pageContext.getAttribute("member");
 }
%>
이거를 짧고 보기좋게 바꾸면
<jsp:useBean id="bean" class="kr.co...MemberBean" scope="page" /> 
이런식으로 바꿀 수 있다.


xxx.jsp?id=aa
<% bean.setId("aa") %>
--> <jsp:setProperty name="bean" property="id" value="aa">
이것도 태그로 바꿀수있다.(property="*"하고 value값 없애면 자동세팅)


<%=bean.getId()%>
-->  <jsp:getProperty name="bean" property="id">
이것도 당연히 됨(property="*"은 못씀)

​# Cookie


: 클라이언트의 저장장소(사용자의 하드디스크에 저장)

 Cookie cookie=new Cookie("cookieName","cookieValue") //쿠키생성
 Cookie cookie=new Cookie("name",URLEncoder.encode("Value","UTF-8"))
 //한글 안될수도있으니까 인코딩해서 이렇게 쿠키만드는거 추천
 response.addCookie(cookie) //하드에 저장



  Cookie의 유효시간(defalut:웹브라우저종료할때(session이랑같음))
  cookie.setMaxAge(60*60) 60초*60 = 1시간



  쿠키얻기 (session아이디도 가지고 있다!!!!!)

  if(request.getCookies()!=null){
  Cookie[] coo=request.getCookies()
  for(Cookie gc:coo){
  out.println(gc.getName()+",");
  out.println(gc.getValue()+"<br/>");
  }
  }
 
 
  쿠키삭제 (메서드는 따로없다.)
 
  if(request.getCookies()!=null){
  for(Cookie gc:request.getCookies()){
  if(gc.getName().equals("id")){
 Cookie coo=new Cookie("id","")
 coo.setMaxAge(0);
 response.addCookie(coo);
  }
  }
  }
 
 
 
ex) 로그인 아이디 자동저장하기 (쿠키이용)

---------------------------------------------
<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<%
String id="";
if(request.getCookies()!=null){
 for(Cookie c:request.getCookies()){
 if(c.getName().equals("id")){
 id=c.getValue();
 }
 }
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="tt2.jsp">
ID : <input type="text" name="id" value="<%=id%>"><br/>
PW : <input type="text" name="pw"><br/>
<input type="checkbox" name="box">아이디 기억하기
<input type="submit" value="로그인">
</form>
</body>
</html>
------------------------------------------
<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
 String id=request.getParameter("id");
 String pw=request.getParameter("pw");
 String box=request.getParameter("box");

 if(id.equals(pw)){
 out.println("로그인성공");

if(box!=null){
 Cookie coo=new Cookie("id",id);
 coo.setMaxAge(5*60);
 response.addCookie(coo);
 }else{
 if(request.getCookies()!=null){
 for(Cookie c:request.getCookies()){
 if(c.getName().equals("id")){
 Cookie coo=new Cookie("id","");
 coo.setMaxAge(0);
 response.addCookie(coo);
 }
 }
 }
 }

 }else{
 out.println("로그인실패");
 }
%>
<a href="tt1.jsp">로그인폼으로 가기</a>
</body>
</html>
--------------------------------------------------

EL(표현언어)

<%= %> 표현식 대신에 사용 할 수 있음

[SY] ${}
map객체.키
자바빈즈객체.property

배열[]
java.util.List객체[인덱스]


ex1)
a.jsp?b=100
${param.b} --> 100



ex2)
a.jsp?b=100&b=200&b=300
for (String s:request.getParameterValues("b")){
 out.println(s+"<br/>")
}

--->  ${paramValues.b[0]}
   ${paramValues.b[1]}
      ${paramValues.b[2]}  

  
ex3)
<%
 pageContext.setAttribute("aa","bb");
 pageContext.setAttribute("cc","dd");
%>
${pageScope.aa}  --> bb
${pageScope.cc}  --> dd


ex4) 
<%
 String[] array={"aa","bb"};
 request.setAttribute("array",array);
 MemberBean bean=new MemberBean();
 bean.setId("cc");
 bean.setPw("dd");
 session.setAttribute("bean",bean);
 
%>  
${requestScope.array[0]} -->aa
${requestScope.array[1]} -->bb
${sessionScope.bean.id}  -->cc
${sessionScope.bean.pw}  -->dd

** xxxScope은 생략 가능.
${array[0]} -->aa
${array[1]} -->bb
${bean.id}  -->cc
${bean.pw}  -->dd

가능 (생략하면 page부터 application까지 순서대로 쭉읽으면서 이름같은거 찾음)


ex5)
<%
 Cookie cookie=new Cookie("aa","bb")
 response.addCookie(cookie) 
%>

${cookie.aa} --> cookie의 주소값
${cookie.aa.name} --> aa
${cookie.aa.value} --> bb



ex6)
<%=pageContext.getRequest().getContextPath()%>

-->
${pageContext.request.contextPath}

즉,
<form action="${pageContext.request.contextPath}/emp/a.jsp"></form>
<a href="${pageContext.request.contextPath}/emp/a.jsp">
<link src="${pageContext.request.contextPath}/emp/a.jsp">
<script src="${pageContext.request.contextPath}/emp/a.jsp">
 
 EL 추가내용

 연산자
${"10"+1} = 11
${"일"+10} = 에러
${null+1} = 1 (null 0처리)


 비교연산자
${someValue=='2004'}

'VIEW > JSP&SERVLET' 카테고리의 다른 글

[JSP] 국제화태그,필터  (0) 2017.12.01
[JSP] JSTL  (0) 2017.12.01
[JSP] preventDefault,stopPropagation,$.param(),폼태그전송방식,serialize(),serializeArray()  (0) 2017.12.01
[JSP] jqgrid  (0) 2017.12.01
[JSP] Servlet  (0) 2017.12.01
댓글