console에서 java메소드 실행시키기 예시
(1) html, web.xml, java 총 3개의 파일이 필요하다.
(2) java servlet에서 @WebServlet사용시 html, java 2개의 파일이 필요하다.(업그레이드가 되면서 web.xml 파일이 생략가능)
(1)방법을 예시로 들어보겠다.
Html 예시
<h2>Servlet 기본</h2>
<form action="location" method="get">
<input type="submit" value="Get방식">
</form>
<form action="location" method="post">
<input type="submit" value="Post방식">
</form>
action
값으로 적힌 url, 객체 등.. 이동해준다.
method
form태그 데이터 전송시의 통신방식, defualt값은 get방식이다.
submit
데이터를 전송하기 위한 전송버튼
web.xml예시
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>sample1.Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/location</url-pattern>
</servlet-mapping>
</web-app>
위 예시는 가장 기초적인 문법 예시이다.
servlet-name
servlet, servlet-mapping안의 servlet-name 문자열이 같아야 한다.
servlet-class
java파일의 Package명.class명을 의미한다.
url-pattern
연결할 url을 작성한다.
Java 예시
package sample1;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Hello extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Hello doGet()");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Hello doPost()");
}
}
Java Servlet의 조건사항
상속 | HttpServlet(== 부모class) |
class의 접근제한자 | public |
import | javax.servlet.http.HttpServlet |
전송방식에 따른 메소드 선언 | doGet(), doPost() |
메소드의 매개변수 | HttpServletRequest(요청을 위한 객체) |
HttpServletResponse(응답을 위한 객체) |
doGet()
html파일 form tag의 method="get"이였을 때 실행된다.
doPost()
html파일 form tag의 method="post"이였을 때 실행된다.
실행화면
Get방식 버튼을 눌렀을 때 페이지가 넘어가면서 이클립스 콘솔창에 Hello doGet() 출력이 되고,
Post방식 버튼을 눌렀을 때 페이지가 넘어가면서 이클립스 콘솔창에 Hello doPost()이 출력이 된다.
(2)방법을 예시로 들어보겠다.
Html 예시
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>Servlet 기본</h2>
<form action="location2" method="get">
<input type="submit" value="Get방식">
</form>
<form action="location2" method="post">
<input type="submit" value="Post방식">
</form>
</body>
</html>
Java 예시
package sample2;
import java.io.IOException;
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("/location2")
public class Hello extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Hello doGet()");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Hello doPost()");
}
}
class선언 전 @WebServlet("/url") 작성 시 xeb.xml파일 없이도 Servlet이 실행된다.
실행화면은 위와 동일하다.
'IT > Servlet' 카테고리의 다른 글
[Servlet] session이란? (0) | 2021.06.13 |
---|---|
[Servlet] sendRedirect과 forward의 차이점 / forward 사용예시 (0) | 2021.06.13 |
[Servlet] get과 post차이점 / Web에서 Web으로 입력값 전달하기 (0) | 2021.06.11 |
[Servlet]Servlet이란? web.xml파일 생성하기(이클립스) (0) | 2021.06.11 |