[요청헤더: get/post]
응답헤더:HTTP/1.1 Set-Cookie
++ session, page, pageContext, config
<% 스크립틀릿 %>
과 <%= 표현식 %>
에서만 사용할 수 있음<%! 선언부 %>
에서는 즉시 사용은 불가능하고, 매개변수로 전달받아 사용할 수는 있음내장 객체 | 타입 | 설명 |
---|---|---|
Request | javax.servlet.http. HttpServletRequest | 클라이언트의 요청 정보를 저장 |
Response | javax.servlet.http. HttpServletResponse | 클라이언트의 요청에 대 응답 정보를 저장 |
Out | javax.servlet.jsp.JspWriter | JSP 페이지에 출력 내용을 담는 출력 스트림 |
Session | javax.servlet.http.HttpSession | 웹 브라우저 정보를 유지하기 위한 세션 정보를 저장 |
Application | javax.servlet.ServletContext | 웹 애플리케이션 관련 컨텍스트 정보를 저장 |
pageContext | javax.servlet.jsp.PageContext | JSP 페이지에 대한 정보를 저장 |
Page | java.lang.Object | JSP 페이지를 구현한 자바 클래스의 스턴스 |
Config | javax.servlet.ServletConfig | JSP 페이지에 대 설정 정보를 저장 |
exception | java.lang.Throwable | 예외가 발생한 경우에 사용 |
전송한 요청 정보를 담고 있는 객체
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>클라이언트와 서버의 환경 정보 읽기</title>
</head>
<body>
<a href="./RequestWebInfo.jsp?eng=Hello&han=안녕"> GET 방식 전송</a>
<br />
<from action="RequestWebInfo.jsp" method="get">
영어 : <input type="text" name="eng" value="Bye" /><br/>
한글 : <input type="text" name="han" value="잘가!"/><br/>
<input type="submit" value="POST 방식 전송"/>
</from>
<h2>요청 헤더 정보 읽기</h2>
<a href="RequestHeader.jsp">요청헤더 읽기</a>
<!-- HTTP프로토콜은 부가적인 정보를 담고 있다. 웹 브라우저의 종류나 -->
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>RequestWebInfo : 클라이언트 서버 환경 읽기 기능 살펴보기</title>
</head>
<body>
<h2>클라이언트와 서버 환경 읽기 기능 살펴보기</h2>
<ul>
<li>데이터 전송 방식 : <%= request.getMethod() %></li>
<li>URL : <%= request.getRequestURL() %></li>
<li>URI : <%= request.getRequestURI() %></li>
<li>프로토콜 : <%= request.getProtocol() %></li>
<li>서버명 : <%= request.getServerName() %></li>
<li>서버포트 : <%= request.getServerPort() %></li>
<li>클라이언트 IP 주소 : <%= request.getRemoteHost() %></li>
<li>쿼리 스트링 : <%= request.getQueryString() %></li>
<li>전송된 값 1 : <%= request.getParameter("eng") %></li>
<li>전송된 값 2: <%= request.getParameter("han") %></li>
</ul>
</body>
</html>
<%@ page import="java.util.Enumeration" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>RequestHeader : HTTP 요청 헤더의 정보 읽기</title>
</head>
<body>
<h2>요청 헤더 정보 출력하기</h2>
<%
Enumeration headers = request.getHeaderNames();
while(headers.hasMoreElements()){
String headerName = (String)headers.nextElement();
String headerValue = request.getHeader(headerName);
out.print("헤더명:"+headerName+","+"값 :"+headerValue + "<br/>");
}
%>
</body>
</html>
("ResponseMain.jsp?loginErr=1")
로, request, response 값을 전달한다.request.getRequestDispatcher("ResponseMain.jsp?loginErr=1").forward(request, response);
**<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Response 객체 : 로그인 폼</title>
</head>
<body>
<h2>1. 로그인 폼</h2>
<%
String loginErr = request.getParameter("loginErr");
if(loginErr != null) out.print("로그인 실패");
%>
<form action ="./ResponseProcess.jsp" method="post">
아이디 : <input type="text" name="user_id">
패스워드 : <input type="password" name="user_pwd">
<input type="submit" value="로그인">
</form>
</body>
</html>**
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login 인증 페이지</title>
</head>
<body>
<%
String id = request.getParameter("user_id");
String pwd = request.getParameter("user_pwd");
if(id.equalsIgnoreCase("multi")&&pwd.equalsIgnoreCase("1234")){
response.sendRedirect("ResponseWelcome.jsp");
}
else{
request.getRequestDispatcher("ResponseMain.jsp?loginErr=1").forward(request, response);
}
%>
</body>
</html>
**<%@ 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>
로그인성공
</body>
</html>**
1. member_input
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입</title>
</head>
<body>
<h2> 회원가입 페이지</h2>
<form action="./member_process.jsp"method="post">
이름 : <input type="text" name="name" size=10> <br/>
아이디 : <input type="text" name="user_id" size=10> <br/>
비밀번호 : <input type="password" name="user_pwd" size=10> <br/>
성별 :
<input type="radio" name="gender" value="man"> 남
<input type="radio" name="gender" value="woman" checked="checked" > 여 <br/>
사용자 관심 분야 : <br/>
<input type="checkbox" name="collect" value="politics"> 정치 <br/>
<input type="checkbox" name="collect" value="economy"> 경제 <br/>
<input type="checkbox" name="collect" value="social"> 사회 <br/>
<input type="checkbox" name="collect" value="culture"> 문화 <br/>
자기소개 <br/>
<input type="textarea" name="introduce" col="50" row="50"> <br/>
<input type="submit" value="회원가입">
</form>
</body>
</html>
2. member_process
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%!
String name;
String id, pwd, gender, introduce;
String[] collect;
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입 처리</title>
</head>
</html>
<%
request.setCharacterEncoding("UTF-8");
name = request.getParameter("name");
id = request.getParameter("user_id");
pwd = request.getParameter("user_pwd");
gender = request.getParameter("gender");
collect = request.getParameterValues("collect");
String col="";
if(collect != null){
for(int i=0; i<collect.length; i++){
col += collect[i] + " ";
}
}
introduce = request.getParameter("introduce").replace("\r\n", "<br>");
response.sendRedirect("member_ok.jsp?name=" + name + "&user_id=" + id + "&user_pwd=" + pwd + "&gender=" + gender + "&collect=" + col + "&introduce=" + introduce);
%>
3. member_ok
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 정보 출력</title>
</head>
<body>
이름 : <%= request.getParameter("name") %> <br/>
아이디 : <%= request.getParameter("user_id") %> <br/>
비밀번호 : <%= request.getParameter("user_pwd") %> <br/>
성별 : <%= request.getParameter("gender") %> <br/>
사용자 관심 분야 : <%= request.getParameter("collect") %> <br/>
자기 소개 : <%= request.getParameter("introduce") %>
</body>
</html>
-- response.sendRedirect("member_ok.jsp?name=" + name + "&user_id=" + id + "&user_pwd=" + pwd + "&gender=" + gender + "&collect=" + col + "&introduce=" + introduce);
이 부분은 몰라서 찾아봤습니다.
sendRedirect()
forward()
다음페이지로 전달하면서 재사용
(저장되어 있는 정보들을 다음페이지로 전달)<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입 페이지</title>
</head>
<body>
<!-- JSP에서는 페이지를 이동하는데 제공하는 두가지 방식
response객체에서 제공하는 sendRedirect() : 새로운 페이지로 이동할때 새로운 r,r 할당받는다. 페이지 이동경로 x
request객체에서 제공하는 forward(): 기존의 사용하던 request, response 다음페이지로 전달하면서 재사용(저장되 있는 정보들을 다음페이지로 전달) 페이지 이동경로 o
request, response를 공유 -->
<h2>회원가입</h2>
<hr>
<form method="post" action="member_process.jsp">
이 름: <input type="text" name="user_name"/><br/>
아이디: <input type="text" name="user_id"/><br/>
비밀번호: <input type="password" name="user_pwd"/><br/>
성 별: <input type="radio" name="gender" value="man">남자 <input type="radio" name="gender" value="woman">여자<br/>
관심분야:<br/>
<input type="checkbox" name="favo" value="경제">경제<br/>
<input type="checkbox" name="favo" value="정치">정치<br/>
<input type="checkbox" name="favo" value="사회">사회<br/>
<input type="checkbox" name="favo" value="문화">문화<br/>
자기소개:<br/> <input type="textarea" name="self">
<input type="submit" value="회원가입"/>
</form>
<%
String id = request.getParameter("user_id");
out.print("member_ok.jsp에서 request객체를 통해 전달받은:"+ id);
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String user_id = request.getParameter("user_id");
String user_pwd = request.getParameter("user_pwd");
//데이터베이스와 연동해서 각 정보를 DB에 저장하는 처리
request.getRequestDispatcher("member_ok.jsp").forward(request, response);
%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("user_name");
String id = request.getParameter("user_id");
String pwd = request.getParameter("user_pwd");
String gender = request.getParameter("gender");
String[] favo = request.getParameterValues("favo");
String self = request.getParameter("self").replace("\n\r","<br/>");
%>
<%= "각 변수 출력 처리" %>
<%= id %>
<%= pwd %>
<%
response.sendRedirect("member_input.jsp");
//request.getRequestDispatcher("member_input.jsp").forward(request, response);
%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String uid = request.getParameter("id");
if(uid == null){
out.print("로그인 정보가 없습니다.");
}
else{
session.setAttribute("id", uid);
response.sendRedirect("main.jsp");
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<form>
아이디 : <input type="text" name="id"/><br/>
비 번 : <input type="password" name="pwd">><br/>
<input type="submit" value="로그인" /><br/>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>application 객체로 웹어플리케이션 물리적 경로 정보 읽기</title>
</head>
<body>
<%= application.getContextPath() %>
<%= application.getRealPath("/02ImplicitObject") %>
<%!
public String userImplicitObject(){
return this.getServletContext().getRealPath("/02ImplicitObject");
}
public String userImplicitObject(ServletContext app){
return app.getRealPath("/02ImplicitObject");
}
%>
<ul>
<li> this 사용 : <%=userImplicitObject()%></li>
<li> 내장 객체를 인수로 전달 : <%=userImplicitObject() %></li>
</ul>
</body>
</html>
<context-param>
<param-name>INIT_PARAM</param-name>
<param-value>web.xml에 저장한 초기화 매개변수</param-value>
</context-param>
이번주 한주도 다 지났다... tomcat은 학교에서 썼을 때 교수님이 코드를 그냥 복붙하고 서버 돌려보는 정도로 끝나서 그냥 맛보기였는데 강의 들으면서 흩어진 지식들이 모이는 기분이라 좋다...
정말 잘 읽었습니다, 고맙습니다!