티스토리 뷰
# <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 |