Notion으로 글 작성하고 Github io로 글 옮겨보기

1 minute read

오늘 배운것

Servlet mapping

<servlet>
	<servlet-name>na</servlet-name> // 3. na 호출을 입력받고 
	<servlet-class>Nana</servlet-class> //4. Nana의 파일을 실행
<servlet>

<servlet-mapping>
	<servlet-name>na</servlet-name> //2. na를 호출 
	<url-patter>/hello</url-patter> //1. 홈페이지에서 hello라는 글자가 입력되면 
</servlet-mapping>

Servlet 입/출력

1. 영어 출력
PrintStream out = new PrintStream(os,true);
out.println("hello servlet");

2. 다국어 출력 
PrintWriter out = response.getWriter();
out.println("hello servlet");

Annotation

@WebServlet("/hello") //이것이 annotation 원래는 xml 파일에서 바꿔주고 수정 해야했는데 이렇게 해주면 간단하게 해결!

public class NoticeReg extends HttpServlet {
	protected void service(HttpServletRequest request,HttpServletResponse response ) throws ServletException, IOException
	{}

한글 출력시 오류 방지

@WebServlet("/hi")

public class Nana extends HttpServlet {
	protected void service(HttpServletRequest request,HttpServletResponse response ) throws ServletException, IOException
	//request는 입력도구 // response는 출력도구 
	{
		//안녕이라는 부분을 해석하기 위한 방법(한글이 깨지기 때문에 
		// UTF-8 로 보내라
		response.setCharacterEncoding("UTF-8");
		// 브라우저에게 이렇게 해석해라 
		response.setContentType("text/html; charset=UTF-8");
		PrintWriter out = response.getWriter();
		
		// GET요청 할때 "안녕 Servlet!"의 몇번 나오는지 설정
		String cnt_ =request.getParameter("cnt");
		int cnt = 100; // 기본값 http://localhost:8080/hi 들어가면 안녕 Servlet! 100 번 출력 
		if(cnt_ !=null && !cnt_.equals("")) // cnt_ 값이 null이 아니거나 cnt_값이 빈문자가 아닐경우 즉 숫자만 입력될 경우 
			cnt = Integer.parseInt(cnt_);
		
		for(int i=0; i<cnt; i++) {
			out.println((i+1)+":안녕 Servlet!<br />");
		}
	}	
	
}

post 요청(입력할 내용이 많을 경우)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div>                       //method는 get 방식과 post방식이 있다.
		<form action="notice-reg" method="post">
			<div>
				<label>제목:</label><input name="title" type="text">
			</div>
			<div>
				<label>내용:</label>
				<textarea name="content"></textarea>
			</div>
			<div>
				<input value="등록" type="submit">
			</div>
		</form>
	</div>
</body>
</html>
<method:"post">하기전 
제목: hello 
내용: hisdasd  입력하면 저렇게 주소가 길어지고 입력값이 그대로 나옴 (보안취약)

2.png

3.png

<method:"post">한후
1.위와 똑같이 입력해도 같은 아래와 같은 결과 도출
2.한글이 깨지는 상황 발생 
request.setCharacterEncoding("UTF-8"); 코드를 request 호출 전에 삽입

4.png

Categories:

Updated:

Leave a comment