728x90
반응형
환경 : intellij
에러 : 405
이슈 : html에서 입력한 값을 전달받아 'FortuneTeller.java' 서블릿으로 값이 전달되어 나타나야 하는데 405 에러 나타남
해결 : 'FortuneTeller.java' 파일 내 doget -> dopost로 변경
[기존 코드]
package com.example.servlet04;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/FortuneTeller")
public class FortuneTeller extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) //doget
throws ServletException, IOException {
String id = request.getParameter("id"); //name
String age = request.getParameter("age");
String sex = request.getParameter("sex");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("</head>");
out.println("<body>");
out.println("<h1>id : "+id+".</h1>");
out.println("<h1>age : "+age+".</h1>");
out.println("<h1>sex : "+sex+".</h1>");
out.println("</body>");
out.println("</html>");
}
}
[변경 코드]
package com.example.servlet04;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/FortuneTeller")
public class FortuneTeller extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) //getpost로 변경
throws ServletException, IOException {
String id = request.getParameter("id"); //name
String age = request.getParameter("age");
String sex = request.getParameter("sex");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("</head>");
out.println("<body>");
out.println("<h1>id : "+id+".</h1>");
out.println("<h1>age : "+age+".</h1>");
out.println("<h1>sex : "+sex+".</h1>");
out.println("</body>");
out.println("</html>");
}
}
원인 :
html코드에서 form tag의 method="post"로 설정하였는데
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Today's Fortune</title>
</head>
<body>
<form action="/FortuneTeller" method="post"> //post 방식으로 값 전달 !
id: <input name="id" type=text value="" placeholder="your id."><br>
age: <input name="age" type=number value="" placeholder="your age."><br>
sex: <input type="radio" id="man" name="sex" value="1">
<label for="man">남</label>
<input type="radio" id="woman" name="sex" value="2">
<label for="woman">여</label><br>
<input type=submit value="운세 보기">
</form>
</body>
</html>
'FortuneTeller.java'에서 doGet으로 설정해서 에러떴다.
-> doPost로 설정해서 에러 고쳤음
-> dopost 안됨 ! 반드시 doPost !!! P 대문자로 쓸 것 !
728x90
반응형
'[Language] > Java | Spring | JSP' 카테고리의 다른 글
[Mac/Intellij] JSP 인코딩 설정 (UTF-8) (0) | 2023.10.13 |
---|---|
[IntelliJ/Mac] 한글 깨졌을 때 (0) | 2023.10.13 |
[IntelliJ/Error] 404 : 요청된 리소스는 가용하지 않습니다. (0) | 2023.10.12 |
[Mac/Tomcat] time.JSP 실행 (0) | 2023.10.11 |
[Error]Resource leak: 'scanner' is never closed (1) | 2023.10.02 |