Spring

jsp 모음 글-인터넷 보는 중 정리

slow333 2022. 12. 14. 20:59

파일 위치를 가상으로 지정하기
(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