728x90
servlet 예제2 doget dopost
일단은 새 프로젝트를 생성
다음 창에 이름은 HelloWeb 으로 하고
Next 을 누르다 보면 이런 창이나오면 Generate web.xml ... 옵션을 선택 해줍니다.
그리고 나서 생성된 프로젝트를 보면 WEB-INF 밑에 web.xml 파일이 만들어진것 을 볼수있습니다
자 생성 됬으니 WebContent 에 html 파일을 생성 합시다
WebContent 우클릭 >> new >> html file >> file name
index.html
<!DOCTYPE html>
<html>
<!-- 은 주석 입니다 -->
<!-- head: 페이지에 관한 각종 정보들을 담고 있음 -->
<head>
<meta charset="UTF-8">
<title>Hello Web</title>
</head>
<!-- body: 실제 화면에 렌더링 되는 영역 -->
<body>
<!-- h1 ~ h6: Headline 태그 -->
<h1>Hello Web World</h1>
<h3>Static HTML Page</h3>
<!-- p: 문단 -->
<p>이것은 정적 HTML 문서입니다.</p>
<!-- hr: 가로줄 -->
<hr />
</body>
</html>
바로 실행 f11 하면 실행 결과가
바로 이렇게 나옵니다
다음에는 jsp 파일 을 만들겁니다.
WebContent 우클릭 >> new >> JSP file
이름은 hello 라고 하고, 이렇게 작성 해주세요
hello.jsp
<%@ page language="java"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello JSP</title>
</head>
<body>
<h1>Hello JSP</h1>
<h3>Dynamic Web Page</h3>
<%-- name 파라미터를 전달 받아서 표시 --%>
<%
String name = request.getParameter("name");
%>
<p>Hello, <%= name %></p>
</body>
</html>
실행 결과는
null은 name 을 파라미터로 받는다고 했는데 값이 없기때문에 null 이라고 나온것
hello.jsp 뒤에 ?name=이름 이런식으로 쓰면 값을 보내줄수 있음
이렇게 나왔고 null 값이 안나오게 if 문을 써서 해결 하고
<%@ page language="java"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello JSP</title>
</head>
<body>
<h1>Hello JSP</h1>
<h3>Dynamic Web Page</h3>
<%-- name 파라미터를 전달 받아서 표시 --%>
<%
String name = request.getParameter("name");
if (name == null){
name = "이름없는 사자";
}
%>
<p>Hello, <%= name %></p>
</body>
</html>
링크추가 하는법
이번에는 하이퍼텍스티(링크) 추가 하는것입니다
<!-- a: 하이퍼텍스트(링크) -->
<a href="hello.jsp?name=cago">Hello.jsp로 이동</a>
index.html
<!DOCTYPE html>
<html>
<!-- head: 페이지에 관한 각종 정보들을 담고 있음 -->
<head>
<meta charset="UTF-8">
<title>Hello Web</title>
</head>
<!-- body: 실제 화면에 렌더링 되는 영역 -->
<body>
<!-- h1 ~ h6: Headline 태그 -->
<h1>Hello Web World</h1>
<h3>Static HTML Page</h3>
<!-- p: 문단 -->
<p>이것은 정적 HTML 문서입니다.</p>
<!-- a: 하이퍼텍스트(링크) -->
<a href="hello.jsp?name=cago">Hello.jsp로 이동</a>
<!-- hr: 가로줄 -->
<hr />
</body>
</html>
이렇게 추가하면 방금 만든 hello.jsp 파일로 넘어갈수있는 링크 를 만들수 있습니다.
실행 결과는
Heloo.jsp로 이동을 누르면
<a href="hello.jsp?name=cago">
위 이렇게 넘어간것을 확인 할 수 있어어요.
java Resources >> src 밑에 클래스 생성
Browse.. 클릭
-
다음 창에서 httpServlet 이라 치고 선택
클래스를 만들고
생성된 창에서 우클릭후 Source >> override/implement Methods... 클릭 해줍니다
do get 을 선택 후 Override 해주면 됩니다
HelloServlet.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 기본적인 응답 정보 출력
resp.setContentType("text/html;charset=UTF-8");
// 파라미터를 전달
String name = req.getParameter("name");
if(name == null) {
name = "이름이 없당";
}
// 응답 출력
PrintWriter out = resp.getWriter();
out.println("<h1>Hello Servlet</h1>");
out.println("<h3>이것은 Servlet으로 작성되었습니다.</h3>");
out.println("<p>Hello, " + name + "</p>");
}
}
이제 는 web.xml 파일 로가서
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>HelloWeb</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- 서블릿 등록 -->
<servlet>
<!-- Servlet 클래스 등록 -->
<servlet-name>FirstServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<!-- 서블릿 매핑 등록 -->
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/hs</url-pattern>
</servlet-mapping>
</web-app>
Get 전송
Post 전송
index.html
<!DOCTYPE html>
<html>
<!-- head: 페이지에 관한 각종 정보들을 담고 있음 -->
<head>
<meta charset="UTF-8">
<title>Hello Web</title>
</head>
<!-- body: 실제 화면에 렌더링 되는 영역 -->
<body>
<!-- h1 ~ h6: Headline 태그 -->
<h1>Hello Web World</h1>
<h3>Static HTML Page</h3>
<!-- p: 문단 -->
<p>이것은 정적 HTML 문서입니다.</p>
<!-- a: 하이퍼텍스트(링크) -->
<a href="hello.jsp?name=cago">Hello.jsp로 이동</a>
<!-- hr: 가로줄 -->
<hr />
<h4>GET 전송</h4>
<a href="/HelloWeb/hs?name=cago">HelloServlet Get 호출</a>
<h4>Post 전송</h4>
<form action="/HelloWeb/hs"
method="POST">
성(Family Name) <input type="text" name="last_name"><br/>
이름(First Name) <input type="text" name="first_name"><br/>
<input type="submit" value="전송">
<input type="reset" value="다시작성">
</form>
</body>
</html>
실행 결과는 이렇게 나오고
post 전송은 되진않아요 이제 post 전송도 하러 갑시다
HelloServlet.java 로 가서
아까 doget 한것 처럼 dopost 를 선택하고 작성해주면 됩니다
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 기본적인 응답 정보 출력
resp.setContentType("text/html;charset=UTF-8");
// 파라미터를 전달
String name = req.getParameter("name");
if(name == null) {
name = "이름이 없당";
}
// 응답 출력
PrintWriter out = resp.getWriter();
out.println("<h1>Hello Servlet</h1>");
out.println("<h3>이것은 Servlet으로 작성되었습니다.</h3>");
out.println("<p>Hello, " + name + "</p>");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// POST 요청 처리
resp.setContentType("text/html;charset=UTF-8");
// 요청 정보 Encoding
req.setCharacterEncoding("UTF-8");
// 파라미터 받아오기
String firstName = req.getParameter("first_name");
String lastName = req.getParameter("last_name");
// 응답 결과 출력
PrintWriter out = resp.getWriter();
out.println("<h1>Form Post Data 처리</h1>");
out.println("<p>first name:" + firstName + "</p>");
out.println("<p>last name:" + lastName + "</p>");
}
작성 을 다 했으면 실행 해줍니다
성 과 이름 에 문자 를 기입 하고 전송을 누르면
이런식으로 post 로 받을 수 있습니다 꿑
728x90
'Basic > Web' 카테고리의 다른 글
[JScript] 출력 관련 (0) | 2022.06.22 |
---|---|
Maven 이란? (0) | 2020.04.28 |
Servlet 예제1 (0) | 2020.02.18 |
JSP 동작순서 및 예제 (0) | 2020.02.13 |
HTML form tags 예제 (0) | 2020.02.12 |