티스토리 뷰
교안파일
Servlet Mapping이란 특정 servlet을 요청할 때, 전체 경로를 url에 써주면, 너무 복잡하고 보안에도 취약하기 때문에, 간단하게 경로를 표현해주는 것이다.
#servlet 매핑 방법은 두 가지가 있다.
1. xml 이용
-xml 파일이란 ? (aws 싸이트 내용 참고)
Extensible Markup Language(XML)를 사용하면 공유 가능한 방식으로 데이터를 정의하고 저장할 수 있습니다. XML은 웹 사이트, 데이터베이스 및 타사 애플리케이션과 같은 컴퓨터 시스템 간의 정보 교환을 지원합니다. 사전 정의된 규칙을 사용하면 수신자가 이러한 규칙을 사용하여 데이터를 효율적으로 정확하게 읽을 수 있으므로 모든 네트워크에서 데이터를 XML 파일로 손쉽게 전송할 수 있습니다.
먼저 xml 파일 생성.
선생님 설명에 의하면 , 프로젝트 내에 파일들의 데이터 특성을 하나의 파일안에 정리해 놓은것. 이라고 함.
<!-- TestServlet2를 appServlet으로 선언 -->
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>com.example.servlet.TestServlet2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/melon</url-pattern>
</servlet-mapping>
★이것만 기억해두라고 하셨음.
com.example.servlet.TestServlet2 (패키지명.클래스이름) 을
appServlet 로 네이밍 한다.
appServlet로 네이밍된 클래스(파일) 을
/melon 이라는 키워드로 맵핑(연결)한다.
그럼
주소창에서 주소의 전체내용 대신에 /melon 이라고 써주면 맵핑(연결)된 appServlet
즉 com.example.servlet.TestServlet2 파일이 실행됨.★
com.example.servlet.TestServlet2 파일의 내부 내용.
-> 주소창에 http://localhost:8181/JSPBasic/melon 를 입력하면
"헬로"가 출력됨.
package com.example.servlet;
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;
//web.xml에 맵핑설정
public class TestServlet2 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("헬로");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
2. annotaion 이용
@WebServlet("/banana") //요청에 대하여 어노테이션으로 연결(고유해야한다) -> 이부분을 주의해서 기억해두자.
package com.example.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("/banana") //요청에 대하여 어노테이션으로 연결(고유)
public class TestServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//System.out.println("헬로");
resp.setContentType("text/html; charset=UTF-8");
PrintWriter out = resp.getWriter();
out.println("헬로");//컨텐츠타입
}
@Override
protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
//특정클래스 오버라이드
}
<Request>
#get 방식
주소에 데이터가 묻어서 전달이 됨.
예) http://localhost:8181/JSPBasic/request/req_get02.jsp?id=aa123asdsad&pw=asdsad&agree=1
1. 클라이언트에서 데이터를 입력받아서 전달 Request 객체에 전달
<!-- action에는 지정된페이지의 경로 -->
<!-- post방식은 form태그가 필요하고 method="post"을 적습니다 -->
<form action="req_get02.jsp"> <%--form은 보낼 데이터를 담는 태그 --%>
아이디:<input type="text" name="id" value="aa123"><br>
비밀번호:<input type="password" name="pw"><br>
동의항목
<input type="checkbox" name="agree" value="1">동의1
<input type="checkbox" name="agree" value="2">동의2
<input type="checkbox" name="agree" value='3'>동의3
<input type="submit" value="확인">
</form>
2. 받은 데이터를 출력.
<%@page import="java.util.Arrays"%>
<%@page import="java.lang.reflect.Array"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//리퀘스트객체에서 관련정보 얻기
StringBuffer url = request.getRequestURL();//전체주소
String uri = request.getRequestURI();//전체주소 - ip주소,포트값
String path = request.getContextPath();//프로젝트 식별이름
String remoteAddr = request.getRemoteAddr();//ip주소
//단일값
String id = request.getParameter("id");
String pw = request.getParameter("pw");
//다중값
String[] agrees = request.getParameterValues("agree");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
url: <%=url %><br>
uri: <%=uri %><br>
컨패스: <%=path %><br>
접속한주소: <%= remoteAddr %><br>
아이디:<%=id %><br>
pw:<%=pw %><br>
동의항목:<%=Arrays.toString(agrees) %>
</body>
</html>
* 주소 자체에 데이터를 넣어서 전달하는 방법.
1. 주소에 데이터를 담아서 전달!
<!--
get방식은 반드시 폼태그가 필요한 것은 아니며,
주소를 통해서 강제로 파라미터값을 전달 할 수 있습니다.
?변수명=값
여러 값이라면 &조건으로 연결
-->
<a href="req_get04.jsp?name=홍길동&age=20">get방식 queryString이용하기</a>
<!--주소에 데이터를 담을 때 띄어쓰기 넣어서 쓰면 안됨. 공백도 문자열로 취급하기 때문-->
2. 주소에 딸려서 넘어온 데이터를 출력.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//a태그로 넘어오는 값 출력
String name = request.getParameter("name");
String age = request.getParameter("age");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
주소에 강제로 넘겨준값:<%=name %><br>
주소에 강제로 넘겨준값:<%=age %>
</body>
</html>
#POST 방식
1. 데이터를 입력받아서 전달한다.
post 방식은 form 태그안에 method = "post" 를 써줘야함을 잘 기억해두자.
<form action="req_post02.jsp" method="post">
<body>
<form action="req_post02.jsp" method="post">
아이디:<input type="text" name="id"><br>
이메일:<input type="email" name="email"><br>
<input type="submit" value="확인"><br>
</form>
</body>
2. 전달 받은 데이터 출력.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8"); //post한글처리
String id = request.getParameter("id");
String email = request.getParameter("email");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
id=<%=id %><br>
email=<%=email %>
</body>
</html>
<기억할 내용>
-자바단 : 자바로 작성한 내용.
-jsp태그는 화면에 안 나온다.
-내가 쓰려는 속성이 기억 안나면 공백상태에서 ctrl + spacebar 눌러보기.
-태그 타입을 식별하는 키워드는 name.
name=""은 변수명이다. 값은 value="" 에 담는다.
-> ex) <input type="checkbox" name="agree" value="1">
'JSP 수업 기록' 카테고리의 다른 글
22-12-02 자바빈, 디자인패턴, EL_JSTL, 컨트롤러만들기 (1) | 2022.12.02 |
---|---|
22-12-01 application객체, 경로설정, 예외 페이지, 액션태그-포워딩 (0) | 2022.12.01 |
22-11-30 JSP 내장객체 / 쿠키,세션 (0) | 2022.11.30 |
22-11-29 수업내용 (1) JSP 태그 (1) | 2022.11.29 |
22-11-28 JSP시작, 서버와 클라이언트 (0) | 2022.11.29 |
- Total
- Today
- Yesterday
- 자바스크립트 ES6 문법
- 국비학원
- api 활용
- 배열과 탐색
- 자바수업
- 자바 api
- JS ES6 문법
- 가비지 콜렉팅
- 국비학원 수업
- 배열 삭제
- 박문석 선생님
- input 스트림
- nasted class
- 오코노라멘
- 박인욱 강사님
- output 스트림
- 국비지원 학원 수업 내용
- interface #자바
- 내포 클래스
- 알람 시계 문제
- 배열의 정렬
- 강남 중앙정보처리학원
- FOR문
- 자바#자바수강기록
- 다중 반복문
- 중앙정보처리학원
- 조건문
- 자바
- 강남역 12번 춣구
- 데이터베이스 수업
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |