
index.html Run 시키기

I:\java202207\frontend\css

I:\java202207\setup






톰캣WAS에 의해서 .java와 .class가 자동으로 생성된다.
.java 파일이 .class로 번역되어 실행된다.
예) hello.jsp → hello_jsp.java → hello_jsp.class
▶ 실제론 class파일이 실행됨.
▶ hello_jsp.java파일을 만들어야 할 때가 있다.
▶ 코드가 지저분해지고 복잡해질 때가 있다. (스파게티코드)
예) hello_jsp.java 소스 저장 경로
I:\java202207\workspace
\.metadata
\.plugins
\org.eclipse.wst.server.core
\tmp0
\work
\Catalina
\localhost
\basic04_web
\org
\apache
\jsp
\form


출력객체
JspWriter out
사용자가 요청한 정보를 관리하는 객체
HttpServletRequest request
요청한 사용자에게 응답을 관리하는 객체
HttpServletResponse response
요청한 사용자를 개별적으로 구분하기 위한 객체
HttpSession session
모든 사용자가 공유하는 값 또는 서버에 대한 정보를 관리하는 객체
ServletContext application
JSP, JSTL, EL등 현재 페이지내에서 서로 다른 문법과의 값을 교류할 수 있다
PageContext pageContext
사용자에게 값을 요청받는 form
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>06_form.jsp</title>
</head>
<body>
<h3> * 성적 입력 * </h3>
<form name="sungjukfrm" id="sungjukfrm" method="get" action="06_ok.jsp">
이름:<input type="text" name="uname" id="uname" size="10" maxlength="20" placeholder="이름" required>
<hr>
국어:<input type="number" name="kor" id="kor" size="5" min="0" max="100">
<hr>
영어:<input type="number" name="eng" id="eng" size="5" min="0" max="100">
<hr>
수학:<input type="number" name="mat" id="mat" size="5" min="0" max="100">
<hr>
<input type="submit" value="전송">
<input type="reset" value="취소">
</form>
</body>
</html>


name과 id는 같은 이름으로 작성해줘야 편하다.
id값으로 접근해야한다.
name은 나중에 ??어디로 접근할 떄 필요해서 작성해둬야함.

폼은 개별로 1개씩 전송되어야 하지, form 안에 form이 올 수 없다.

- form의 결과를 06_ok.jsp가 받는다.
- 06_ok.jsp은 결과페이지가 된다.
<form>과 관련된 다양한 속성들<input type="submit" value="전송"> 이 버튼을 누르면 <form> 전체가 전송된다.폼 이름.
서버에서 식별하기 위한 이름 (보통 id로 접근하는 것을 추천. 하지만 서버에 도착해서는 name으로 접근해야한다.)
폼아이디.
Frontend단에서 식별자로 주로 사용
폼 전송방식.
get / post 방식 두가지가 있다.
가끔 생략할 때가 있는데 그때 기본은 get방식으로 사용한다.
1) method=get방식 (기본)
- 생략 시 기본값
- 사용자가 입력 요청한 정보가 URL 그대로 노출
2) method=post방식
- 사용자가 요청한 정보가 URL에 노출되지 않고 팩키지화 되어서 서버로 전송
사용자가 요청한 정보를 서버가 받아서 처리할 결과 페이지
폼에서 파일을 첨부해서 서버로 전송하고자 할 때 추가해야하는 속성.
"multipart/form-data" 추가
사용자가 요청한 모든 정보를 관리하는 객체
<input type="text" name="uname">out.print(request.getParameter("uname"));
out.print("<hr>");
out.print(request.getParameter("kor"));
out.print("<hr>");
out.print(request.getParameter("eng"));
out.print("<hr>");
out.print(request.getParameter("mat"));
out.print("<hr>");
형식)
요청페이지(또는 명령어)?변수=값&변수=값&변수=값 ~~
- 예시) 06_ok.jsp?uname=대한민국&kor=40&eng=50&mat=60
- 예) 검색어

입력 후 전송

06_ok.jsp로 페이지가 이동한다.

URL 확인 ? 물음표 뒤에있는 값이 06_ok.jsp 파일에 전송되는 것이다.

- ok.jsp?서버로전송되는값들 (공백주면안된다)
- 형식)
요청페이지(또는 명령어)?변수=값&변수=값&변수=값 ~~
name 값이 노출된 것이다.

(get방식) 하지만 주민번호, 아이디, 비번같은 개인정보가 URL에 노출되면 안된다.
➡️ method=post방식을 사용해야 한다.




request.setCharacterEncoding("UTF-8"); //조합형
request.setCharacterEncoding("EUC-KR"); //완성형
<%
//사용자가 입력 요청한 정보를 개별적으로 가져오기
String uname=request.getParameter("uname");
int kor=Integer.parseInt(request.getParameter("kor").trim());
int eng=Integer.parseInt(request.getParameter("eng").trim());
int mat=Integer.parseInt(request.getParameter("mat").trim());
int aver=(kor+eng+mat)/3;
%>




테이블로 결과가 나온다.
https://www.w3schools.com/bootstrap/bootstrap_ver.asp


request.setCharacterEncoding("UTF-8");
10/5 이거 집에서 작성하고 bootstrap도 적용해보기!





//<textarea>값은 엔터를 <br> 치환해서 출력
content=content.replace("\n", "<br>");
out.print(content + "<hr>");







08_다양한컨트롤요소.jsp

08_ok.jsp

08_다양한컨트롤요소.jsp

08_ok.jsp







null 값이 나온다.


08_다양한컨트롤요소.jsp

08_ok.jsp

08_다양한컨트롤요소.jsp

08_ok.jsp



08_다양한컨트롤요소.jsp

08_ok.jsp





파일을 첨부해서 서버에 전송하려면
<form enctype="multipart/form-data">속성을 추가해야 함.




첨부된 파일을 가져오려면 다른 방식으로 request객체에 접근해야 한다.
request.getParameter("attach")는 실제 파일을 가지고 있는 것이 아니라 단순 파일명이 출력됐을 뿐이다.




getRemoteAddr() 사용자PC의 IP주소getRemoteHost()getRemotePort()



ip주소 6자리 → 4자리 변경

Run -> Run Configurations -> Tomcat Server -> (x)=Arguments -> VM arguemnts에 아래와 같이 추가 -> 공백1칸 주고 -Djava.net.preferIPv4Stack=true
-> Apply



해당 프로젝트 이름이 노출된다.


getRequestURL() 사용자가 요청한 전체 경로의 페이지명 또는 명령어
getRequestURI() 사용자가 요청한 페이지명 또는 명령어
↳ 사용자가 어떤 페이지를 요청했는지 찾을 수 있다.
09_ok.jsp

09_ok.jsp

내 컴퓨터 입장에서 /images 폴더의 실제 물리적 경로. 파일의 실제경로


request.setAttribute("변수명", 값)
request.getAttribute("변수명")

String str=(String)obj; 은 부모가 자식에 대입되는 형태가 되어 다형성이라는 것을 알 수 있다.
오늘 꼭 외워야할 기능
request.getParameter("page")
request 요청한정보를 . get 가져와라
과제..
이거 공부해오기

10/6일 수업 진도..
