프로그래밍/자바, JDBC
뉴렉처 학습(서블릿/JSP) 16강
현호s
2020. 5. 9. 11:52
반응형
#16강 기본값 사용하기
- 입력값 전달하지 않아도 오류나지 않도록 하기
- 클라이언트의 요청은 http://.../hello?cnt=20 전체가 요청을 의미
- 쿼리스트링은 클라이언트의 요청 중 ?cnt=20 부분이 해당된다. 이때, 클라이언트로 부터의 쿼리스트링 요청은 ?cnt=3, ?cnt=, ?, 공백 4가지가 모두 가능하다.
- ?cnt=3 일 때는 문자열 "3", ?cnt= 일 때는 빈 문자열 "", ? 과 공백 일 때는 카운트(cnt)가 아예 없기때문에 null이 오는데, 해당 값이 오도록 하기 위해 서는(입력 값을 전달하지 않아도 오류가 발생하지 않도록 하기 위해서는) 별도의 아래 코드(조건)를 넣어준 뒤 실행 될 수 있도록 해야 한다.
package com.newlecture.web;
import java.io.IOException;
import java.io.PrintWriter;
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("/hi")
public class Nana extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html; charset=UTF-8");
PrintWriter out = resp.getWriter();
// 조건입력
String cnt_ = req.getParameter("cnt");
int cnt = 100;
if(cnt_ != null && !cnt_.equals(""))
cnt = Integer.parseInt(cnt_);
// 조건 입력 완료
for ( int i = 0; i < cnt; i++ ) {
out.println(" : 안녕 Servlet!!<br />");
}
}
}
- 하이퍼 링크를 통해 미리 조건을 걸어두고 실행될수 있도록 설정하면 해당 태그(인사하기)에 따라 hi 및 hi가 3회 출력되는 걸 볼 수 있다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
환영합니다.<br >
<a href="hi">인사하기</a><br >
<a href="hi?cnt=3">인사하기</a><br >
</body>
</html>
반응형