728x90
반응형
operatorTest.html
<h1>operatorTest.html</h1>
숫자 2개 입력 받기 - > operatorPro.jsp 전달 후 연산
<form action = "operatorPro.jsp">
숫자1 : <input type = "text" name = "num1"><br>
숫자2 : <input type = "text" name = "num2"><br>
<input type = "submit" value = "전송하기">
</form>
operatorPro.jsp
<body>
<h1> operatorPro.jsp </h1>
<h2> 전달 정보 저장 </h2>
[JSP]
<%
int num1 = Integer.parseInt(request.getParameter("num1"));
int num2 = Integer.parseInt(request.getParameter("num2"));
%>
숫자1 : <%=num1 %>, 숫자2 : <%=num2 %>
<hr>
[el] : el표현식으로 전달받은 파라메터는 자동 캐스팅 됨<br>
숫자1 : ${param.num1 }, 숫자2 : ${param.num2 } <br>
숫자1 : ${param.num1 + 100 }, 숫자2 : ${param.num2 + 100 }
<hr>
[el] : num1 + num2 출력<br>
${param.num1 } + ${param.num2 } = ${param.num1 + param.num2 }<br>
[el] : num1, num2 값이 모두 양수인가? (t/f) ${ (param.num1 >0) && (param.num2 >0)}
<br>
[el] : num1, num2 값이 모두 양수인가? ("양수"/"양수 아님")
${ ((param.num1 >0) && (param.num2 >0)) ? "양수" : "양수 아님" }
<br>
<!-- 키워드. 예약어 -->
[el] : ${empty param.id } empty 값 : 값이 null일 경우 true/아닐경우 false
if(id != null)
<hr>
<h2> EL 연산자 p516~517 </h2>
비교연산자 논리연산자
== eq && and
!= ne || or
< lt ! not
> gt
<= le
>= ge
</body>
TestServlet1.java
package com.itwillbs.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet1 extends HttpServlet {
// http://localhost:8088/JSP/test1 (get)
// alt shift s + v
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
System.out.println("doGet() 호출");
doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
System.out.println("doPost() 호출");
// request 영역에 정보 저장
request.setAttribute("cnt", 1000);
// response.getWriter().append("<h1> HTML 메세지 작성하기 </h1>");
// response.setContentType("text/html; charset=UTF-8");
//
// PrintWriter out = response.getWriter();
// out.print("<h1> HTML 메세지 작성하기 222 </h1>");
// out.close();
// 3) forward 방식 - 포워딩
// 1. 페이지 이동 시 주소 변경 x, 화면 변경 o
// 2. request 내장 객체 정보를 전달 가능
//<jsp:Forward > (JSP 코드 x)
RequestDispatcher dis
= request.getRequestDispatcher("./el/Attribute.jsp");
// 이동할 주소
dis.forward(request, response);
}
}
web.xml
<servlet>
<servlet-name>TestServlet1</servlet-name>
<servlet-class>com.itwillbs.servlet.TestServlet1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet1</servlet-name>
<url-pattern>/test1</url-pattern>
</servlet-mapping>
</web-app>
Attribute.jsp
<body>
<h1> Attribute.jsp </h1>
<%
int cnt = (Integer)request.getAttribute("cnt"); //언박싱 한 것
cnt = 2000;
%>
cnt값 (jsp) : <%=cnt %><br>
cnt값 (jsp) : <%=request.getAttribute("cnt") %><br>
cnt값 (el) : ${cnt } <br>
cnt값 (el) : ${requestScope.cnt } <br>
</body>
</html>
=> el 영역객체의 이름은 생략 가능
* 영역범위의 크기가 작은 곳에서 큰 곳으로 이동 하면서 검색
test2
package com.itwillbs.servlet;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/test2")
public class TestServlet2 extends HttpServlet {
// http://localhost:8088/JSP/test2
//alt shift s + v
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 배열
//String[] food
String[] foods = {"햄버거","피자","서브웨이","돈까스","초밥"};
// 배열의 정보를 request 영역에 저장
request.setAttribute("foods", foods);
//스포츠 종류를 Arraylist 저장
//ArrayList sports = new Arraylist();
List sports = new ArrayList();
sports.add("축구");
sports.add("야구");
sports.add("수영");
sports.add("배구");
//request 영역 저장
request.setAttribute("sports", sports);
//forward 방식 이동 - ./el/Arrays.jsp
RequestDispatcher dis
= request.getRequestDispatcher("./el/Arrays.jsp");
dis.forward(request, response);
}
}
test3
package com.itwillbs.servlet;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
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.itwillbs.test.Person;
import com.itwillbs.test.Phone1;
@WebServlet("/test3")
public class TestServlet3 extends HttpServlet {
public static void main(String[] args) {
}
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//[/test3] 가상주소 사용하여 실행
System.out.println("TestServlet3 - doGet() 호출");
// Person 객체 정보 생성 후 저장해서 전달
// Person - com.itwill.test 패키지에 생성 됨
// 이름, 나이, 휴대폰 -> Person
// 휴대폰 - 모델명, 전화번호 -> Phone
// ["김학생" 20 아이폰 14 010-1234-1234]
Phone1 iPhone = new Phone1();
iPhone.setModelName("아이폰14");
iPhone.setTel("010-1234-1234");
Person kim = new Person();
kim.setName("김학생");
kim.setAge(20);
kim.setP(iPhone);
request.setAttribute("Person",kim); //휴대폰 정보는 이미 Person에 저장되어있음
// ./el/Beans.jsp 이동 후 출력 (jsp/el)
RequestDispatcher dis
= request.getRequestDispatcher("./el/Beans.jsp");
dis.forward(request, response);
}
}
bean.jsp
<%@page import="com.itwillbs.test.Phone1"%>
<%@page import="com.itwillbs.test.Person"%>
<%@ 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> Beans.jsp </h1>
[jsp]
<%
Person p = (Person) request.getAttribute("person");
%>
이름 : <%=p.getName() %>
나이 : <%=p.getAge() %>
<% Phone1 iPhone = p.getP(); %>
휴대폰 모델명 : <%=p.getP().getModelName() %>
전화번호 : <%=p.getP().getTel() %>
모델명 <%=iPhone.getModelName() %>
전화번호 <%=iPhone.getTel() %>
<hr>
[el]
${requestScope.person.name }
${requestScope.person.age }
<%-- ${requestScope.person.Phone1.modelName } --%>
<%-- ${requestScope.person.p.tel } --%>
객체정보 불러올 수 있는 방법
</body>
</html>
가상주소 - 상대경로
1)가상주소 호출
./test1 => ./ (프로젝트명) => /JSP/test1
2)실제주소 호출
./el/Arrays.jsp => ./ (webapp폴더) => /webapp/el/Attribute.jsp
실제주소 - 절대경로
/ (root-최상위폴더)
../ (상위폴더)
728x90
반응형
'Spring > Model1 _2(MVC)' 카테고리의 다른 글
0929 JSP - jstl 커스텀 액션 (0) | 2022.09.29 |
---|---|
0927 JSP - JSTL (JSP Standard Tag Library) (0) | 2022.09.27 |
0923 JSP - web.xml 배포 서술자 , EL 표현식 (0) | 2022.09.23 |
0922 JSP - 서블릿 (0) | 2022.09.22 |
0922 JSP - 형변환 (0) | 2022.09.22 |