파일 위치를 가상으로 지정하기
(path를 /에서 직접 접근 가능 http://.../JSP로 docBase 위치에 있는 실제 페이지에 접속 가능)
==> 서버를 on/off 해야하니까 프로그램의 메타 정보에서 처리 함
/config/server.xml >>>
<Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true">
<Context path="JSP" docBase="C:\apache-tomcat-9.0.68\webapps\JSP-Page"
privileged="true"></context>
</host>
========================================================
사용자 요청과 class 파일과 연결 해야함 ==> web.xml을 편집
아래의 방식은 annotation(@WebServlet)에서 정의 해도 됨(이게 편함)
<servlet>
<servlet-name> kal </servlet-name>
<servlet-class> Kalpa </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> kal </servlet-name>
<url-pattern> /hello </url-pattern>
</servlet-mapping>
========================================================
<span>
@WebServlet("/hello")
public class Kalpa extends HttpServlet {
public void service(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
OutputSream os = response.getOutputStream();
PrintStream out = new PrintStream(os, true);
out.println("Hello Servlet")
}
}
</span>
===========================================================
form을 구성해서 action을 정의 ==> 이것이 url 임
method="POST" 는 전달 방식이 url 이 아니고 notice-reg로 감싸서 보냄
<!--method= 내용이 소문자면 인식 못함... 반드시 대문자로 해야함 -->
<!-- 텍스트로 하면되고 숫자를 입력받으면 동작 안함.... -->
<form action="notice-reg" method="POST"> <!-- http://../notice-reg -->
<div id="center-align">
<div>
<label> 제목 : </label><input type="text" name="title">
</div>
<div> <!-- name이 key 값임 -->
<label> 내용 : </label><textarea type="text" name="contents" rows="10"></textarea>
</div>
<button id="input-btn" class="inputBtn" type="submit">등록 함</button>
</div>
</form>
------------------------------------------
요청을 받는 쪽.......
<span>
@WebServlet(value = "/notice-reg")
public class noticeReg extends HttpServlet {
private String message;
public void init() { message = "Hello World! 안녕하세요.!"; }
public void service(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html; charset=UTF-8");// 한글 깨짐 방지
response.setCharacterEncoding("utf-8"); // 한글 깨짐 방지
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
String title = request.getParameter("title");
String contents = request.getParameter("contents");
out.println(title);
out.println(contents);
}
}
</span>
=========================================================
요청시에 값을 넣어서 요청하는 것
<form action="test"> <!-- http://../test?cnt=3 -->
<div id="center-align">
<!-- name이 key 값임 -->
<input type="text" id="input-text" name="cnt">
<button id="input-btn" class="inputBtn" type="submit">값 입력</button>
</div>
</form>
-----------------------------------
요청을 받는 쪽....
<span>
@WebServlet("/test")
public class ForWriteOut extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html; charset=UTF-8");// 한글 깨짐 방지
response.setCharacterEncoding("utf-8"); // 한글 깨짐 방지
PrintWriter out = response.getWriter();
String cnt_ = request.getParameter("cnt");
int cnt = 10;
if (cnt_ != null && !cnt_.equals("")) {
cnt = Integer.parseInt(cnt_);
for (int i = 0; i < cnt ; i++) {
out.println("<h2 >" + (i + 1) + " : " + "message" + "</h2>");
}
} else {
for (int i = 0; i < cnt; i++) {
out.println("<h2>" + (i + 1) + " : " + "message" + "</h2>");
}
out.println("<html><body>");
}
</span>
<%--pageContext : 이 페이지 내에서 혼자 사용할 수 있는 저장소--%>
<%--request : 다른 서브릿에서 준 것을 갖고 있는 것--%>
<%--sesseion : 세션에서 공유될 수 있는 것--%>
<%--page : 모든 세션, 모든 페이지에서 공유될 수 있는 것--%>
<%--cookie : 클라이언트에 저장되는 것--%>
// redirect 새로운 요청을 하게 만드는 것
// forward 현재 작업한 내용을 이어 갈수 있도록 공유
저장객체에서 값을 추출하는 순서
기본 적으로 아래의 순서로 하나, 제어자를 붙이면 거기서만 추출함
page : pageScope
|
request : requestScope
|
session : sessionScope
|
application : applicationScope
'Spring' 카테고리의 다른 글
JSP MVC 2 mariadb query 관련 (0) | 2022.12.17 |
---|---|
jstl formatDate 출력 (0) | 2022.12.15 |
jsp jstl forEach문 활용(https://mr-cho.tistory.com/212) (0) | 2022.12.14 |
jdbc driver 적용 (0) | 2022.12.14 |
jsp 기본 내용 (0) | 2022.12.14 |