HTML 파일에서 form 태그의 submit으로 인해 url을 바뀌었을 때, 바뀐 url을 자바에서 받는 방법
예시)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- get방식 : .../url?parm1=value -->
<form action="usercount">
<div>
<label>"안녕하세요"를 몇번 듣고 싶니??</label>
</div>
<div>
<input type="text" name = "cnt">
<input type="submit">
</div>
</form>
</body>
</html>
http://localhost:8082/hello.html
에서 5 를 입력후에 버튼을 클릭하면
http://localhost:8082/usercount?cnt=5
여기로 이동하고 미리 만들어둔 서블릿클래스의 자바 파일 코드
1 : 안녕 servlet
2 : 안녕 servlet
3 : 안녕 servlet
4 : 안녕 servlet
5 : 안녕 servlet
이렇게 나오게 된다.
package com.codingbox.web.servlet;
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("/cnt")
public class MyServlet2 extends HttpServlet {
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
// 문자열 인코딩
arg1.setCharacterEncoding("UTF-8");
arg1.setContentType("text/html; charset=UTF-8");
int count = 100;
String paramCnt = arg0.getParameter("cnt");
// null 값과 빈 값에 대한 예외처리
if (paramCnt != null && !paramCnt.equals("")) {
count = Integer.parseInt(paramCnt);
}
PrintWriter out = arg1.getWriter();
for (int i = 0; i < count; i++) {
out.println((i + 1) + " : 안녕 servlet<br>");
}
}
}
package com.codingbox.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
@WebFilter("/*")
public class CharacterEncodingFilter implements Filter {
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
throws IOException, ServletException {
// System.out.println("before filter");
// // filterChain으로 다음 작업 진행 여부를 정한다.
arg0.setCharacterEncoding("UTF-8");
arg1.setCharacterEncoding("UTF-8");
arg1.setContentType("text/html; charset=UTF-8");
arg2.doFilter(arg0, arg1);
// System.out.println("after filter");
}
}
package com.codingbox.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
@WebFilter("/*")
public class CharacterEncodingFilter implements Filter {
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
throws IOException, ServletException {
arg0.setCharacterEncoding("UTF-8");
arg1.setCharacterEncoding("UTF-8");
arg1.setContentType("text/html; charset=UTF-8");
arg2.doFilter(arg0, arg1);
}
}