1월 23일 Ajax04, ELtag, CoreTag, JSPtag
2020. 6. 13. 02:15ㆍ프론트엔드 & 백엔드 개발자 과정/jsp
<< Ajax4 index >>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<p id="demo"></p>
<br>
<button type="button">click</button>
<script type="text/javascript">
$(document).ready(function () {
$("button").click(function () {
$.ajax({
url:"./hello",
type:"post",
datatype:"json",
data:"num=1",
success:function( data ){
// alert("success");
// alert(data[0].number);
// alert(data[0].name);
$.each(data, function (i, val) {
$("#demo").append("i:" + i + " number:" + val.number + " name:" + val.name + "<br>");
})
},
error:function(){
alert("error");
}
});
});
});
</script>
</body>
</html>
< CustUserDto.java >
package dto;
import java.io.Serializable;
public class CustUserDto implements Serializable{
private int number;
private String name;
public CustUserDto() {
super();
}
public CustUserDto(int number, String name) {
super();
this.number = number;
this.name = name;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "CustUserDto [number=" + number + ", name=" + name + "]";
}
}
< HelloServlet.java >
package serv;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
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 com.google.gson.Gson;
import dto.CustUserDto;
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<CustUserDto> list = new ArrayList<CustUserDto>();
list.add(new CustUserDto(1001, "정수동"));
list.add(new CustUserDto(1002, "성춘향"));
resp.setContentType("application/json"); // 형식을 json으로 변환
resp.setCharacterEncoding("utf-8"); // 한글을 정상으로 출력
// gson-2.8.5.jar 추가
String gson = new Gson().toJson(list); // Google jSon
// 리턴해 주는 함수
resp.getWriter().write(gson);
}
}
<< ELtag index >>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="dto.MemberDto"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--
JSP : html, JavaScript, CSS, Java
<%! 선언부(class, function, variable(global)) %>
<% 코드부 %>
<%= value %>
: front end에서 Java를 사용하지 않기 위해서
----------------
EL tag -> value <-- Java
Core tag -> 제어문
----------------
jsp tag
Expression Language
표현 언어
JSTL(Java server page Standard Tag Language)
--%>
<%
String str = "hello";
request.setAttribute("_str", str); // request scope
%>
<%
String s = (String)request.getAttribute("_str"); // object를 String으로 형변환
%>
<%
out.println("s = " + s);
%>
<br><br>
s = <%=s %>
<br><br>
s = ${ _str } <!-- 위의 setAttribute의 object를 가져온 것이 아니라 문자열("_str")을 가져옴! -->
<br><br> <!-- ELtag -->
<%='값' %>
<br>
${ '값' } <!-- ELtag -->
<br>
<%=2 + 3 %> <!-- 5 -->
<br>
${ 2 + 3 } <!-- 5 -->
<br><br>
${ 3>2?100:200 } <!-- 100 -->
<br><br>
<%
request.setAttribute("data", "안녕하세요");
%>
${ data }
<br><br>
Object가 할당되어 있는지?
<br>
data = ${ empty data } <!-- true/false --> <!-- 비워져 있지? 않아 false나옴 -->
<br>
data = ${ not empty data } <!-- 비워져 있지 않아 true -->
<br><br>
1 < 9 : ${ 1 < 9 } <!-- 판별식 true/false --><!-- true -->
<br>
2 + 3 : ${ 2 + 3 } <!-- 연산식 variable --><!-- 5 -->
<%
Integer a, b;
a = 10;
b = 3;
request.setAttribute("a", a);
request.setAttribute("b", b);
Boolean c; // wrapper class
c = false;
request.setAttribute("c", c);
%>
<pre>
a:${ a }
b:${ b }
c:${ c }
a+b:${ a + b }
eq:${a eq b } <!-- a와 b가 같냐? No! false-->
eq:${a == b }
ne:${a ne b }
ne:${a != b } <!-- a와 b가 같지않냐? Yes! true-->
gt:${a gt b }
gt:${a > b } <!-- true -->
lt:${a lt b }
lt:${a < b } <!-- false -->
le:${a le b } <!-- <= -->
ge:${a ge b } <!-- >= -->
div:${a div b } <!-- a / b -->
mod:${a mod b } <!-- a % b -->
c:${ !c } <!-- true -->
${a == 10 && !c } <!-- true -->
</pre>
<br>
<%
MemberDto mem = new MemberDto();
mem.setMessage("Hello EL");
request.setAttribute("mem", mem);
%>
<%=mem.getMessage() %>
<br>
${ mem.message } <!-- mem.getMessage() -->
<br><br>
<%
String array[] = { "hello", "world" };
request.setAttribute("array", array);
%>
<%=array[0] %>
<br>
${ array[0] } <!-- hello -->
<br><br>
<%
List<String> list = new ArrayList<>();
list.add("world");
list.add("el");
request.setAttribute("list", list);
%>
<%=list.get(0) %>
<br>
${ list[0] } <!-- world -->
<br><br>
<%
List<MemberDto> memlist = new ArrayList<>();
MemberDto m = new MemberDto();
m.setMessage("첫번째 메시지");
memlist.add(m);
m = new MemberDto();
m.setMessage("두번째 메시지");
memlist.add(m);
request.setAttribute("memlist", memlist);
%>
<%=memlist.get(1).getMessage() %> <!-- instance -->
<br>
${ memlist[1].message } <!-- 문자열, "memlist" -->
<br><br>
<%
HashMap<String, String> map = new HashMap<>();
map.put("apple", "사과");
map.put("grape", "포도");
request.setAttribute("map", map);
%>
<%=map.get("apple") %>
<br>
${map.apple } <!-- 사과 -->
<br>
${ map["apple"] }
</body>
</html>
< MemberDto >
package dto;
import javax.servlet.http.HttpServlet;
public class MemberDto extends HttpServlet {
private String message;
public MemberDto() {
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
<< CoreTag index >>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--
EL: 표현식(값, 판별)
Core: 제어문(for, if) -> EL tag와 같이 사용한다
--%>
<%
request.setAttribute("data", "JSTL입니다"); // set
%>
${ data }
<br>
<%--
String cdata = "core JSTL입니다";
request.setAttribute("cdata", cdata);
--%> <%-- 아래와 동일 --%>
<!-- set -->
<c:set var="cdata" value="core JSTL입니다"/>
${ cdata }
<br><br>
<!-- out(내장객체) -->
<%--
out.println(cdata);
--%>
<%
session.setAttribute("sessionData", "저장된 데이터");
%>
<c:set var="sdate" value="${sessionData }"/>
<c:out value="${ sdate }"/>
<br><br>
<!-- if -->
<%
request.setAttribute("count", "10");
%>
<%
String sCount = (String)request.getAttribute("count");
int count = Integer.parseInt(sCount); /* 형변환 */
if(count >= 10){
%>
<p>count:<%=count %></p>
<%
}
%>
<!-- 위아래 완전 똑같음! -->
<c:if test="${count >= 10 }">
<p>core count:<c:out value="${count }"/></p>
</c:if>
<br><br>
<%
request.setAttribute("name", "졔졔졔");
%>
<c:if test="${ name eq '졔졔졔' }"> <!-- true -->
<p>제 이름은 졔졔졔가 맞습니다</p>
</c:if>
<%
request.setAttribute("name", "일지매");
%>
<c:if test="${name == '일지매' }" var="flg"/> <!-- var에 true 들어감! -->
<c:if test="${flg }"> <!-- true -->
<p>이름은 일지매입니다</p>
</c:if>
<br><br>
<!-- for -->
<%
for(int i = 0; i < 10; i++) {
%>
<%=i %>
<%
}
%>
<br> <!-- 위아래 똑같은 결과 -->
<c:forEach begin="0" end="9" step="1" varStatus="i">
<c:out value="${ i.index }"></c:out>
</c:forEach>
<br><br>
<%
List<MemberDto> list = new ArrayList<>();
MemberDto mem = new MemberDto();
mem.setMessage("하이");
list.add(mem);
mem = new MemberDto();
mem.setMessage("안녕");
list.add(mem);
mem = new MemberDto();
mem.setMessage("건강혀");
list.add(mem);
request.setAttribute("list", list);
%>
<%--
for(int i = 0;i < list.size(); i++){
MemberDto m = list.get(i);
}
for(MemberDto m : list){
}
--%>
<c:forEach begin="0" end="2" var="m" items="${list }" varStatus="i">
<p>index:<c:out value="${ i.index }"/></p>
<p>data:<c:out value="${ m.message }"></c:out>
</c:forEach>
<br><br>
<!-- Map -->
<%
Map<String, String> map = new HashMap<>();
map.put("passionfruit", "백향과");
map.put("mangosteen", "망고스틴");
map.put("mango", "망고");
request.setAttribute("map", map);
%>
<c:forEach var="obj" items="${map }">
key:<c:out value="${obj.key }"></c:out>
value:<c:out value="${obj.value }"></c:out>
</c:forEach>
</body>
</html>
< MemberDto.java >
package dto;
import javax.servlet.http.HttpServlet;
public class MemberDto extends HttpServlet {
private String message;
public MemberDto() {
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
<< JSPtag index >>
<%@page import="dto.MemberDto"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--
forward(이동하기), include(불러오기) -> iframe
--%>
<h3>index.jsp start</h3>
<jsp:include page="NewFile.jsp" flush="false"></jsp:include>
<h3>index.jsp end</h3>
<%-- <jsp:forward page="NewFile.jsp"></jsp:forward> --%>
<%--
EL, Core 에 없는 부분
MemberDto dto = new MemberDto();
--%>
<%--
MemberDto mem = new MemberDto();
mem.setMessage("안녕하세요");
String msg = mem.getMessage();
request.setAttribute("mem", mem);
--%>
<jsp:useBean id="mem" class="dto.MemberDto"></jsp:useBean>
<jsp:setProperty property="message" name="mem" value="안녕하세요"/>
<jsp:getProperty property="message" name="mem"/>
message:${mem.message }
<br>
</body>
</html>
< NewFile.jsp >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>NewFile.jsp</h1>
</body>
</html>
< MemberDto >
package dto;
import javax.servlet.http.HttpServlet;
public class MemberDto extends HttpServlet {
private String message;
public MemberDto() {
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
'프론트엔드 & 백엔드 개발자 과정 > jsp' 카테고리의 다른 글
1월 30일 jspSamples (0) | 2020.06.14 |
---|---|
1월 28일 MovieChart, jspSamples (0) | 2020.06.13 |
1월 22일 jspModel2, Ajax01, 2, 3 (0) | 2020.06.13 |
1월 21일 JDBCtest, jspModel1 (0) | 2020.06.03 |
1월 20일 sample1, 2, 3 과제(work1,2,3) (0) | 2020.06.03 |