Notice
Recent Posts
Recent Comments
Link
Tags
- mstg
- UnCrackable level 1
- JAVA ClassLoader 취약점
- JSP
- nginx
- getCachedIntrospectionResults
- Directory traversal
- HackTheBox
- CVE-2010-1622
- CVE-2022-22965
- Android Backup
- Android 6.0
- CVE-2014-0094
- XALZ 압축해제
- Hackthebox cat
- blind sql injection
- PortSwigger
- login form
- NoSQL
- DOM
- Frida
- Xamarin 분석
- SeeTheSharpFlag
- HacktheBox Mobile
- mongoDB
- File Upload
- UnCrackable
- HackTheBox APKey
- MariaDB
- xss
Archives
- Today
- Total
끄적끄적
[Servlet Programing] 웹 서버 구축하기 (5) 본문
개요
서블릿 프로그래밍 연습
- GET 요청 및 쿼리 스트링
- 쿼리 스트링 기본 값 설정
환경
- WAS Server: CentOS Linux release 7.9 - Tomcat 7.0 - JDK 1.8.0_312
관련 경로
servlet-api 라이브러리 | /[Tomcat Directory]/java/tomcat-servlet-api.jar |
ROOT Directory | /[Tomcat Directory]/tomcat/webapps/ROOT/ |
실습
예제코드 작성
"cnt"라는 매개변수에 값을 받고 해당 횟수만큼 문자열을 출력
import javax.servlet.annotation.WebServlet;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
@WebServlet("/hi")
public class nana extends HttpServlet
{
@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
int cnt = Integer.parseInt(request.getParameter("cnt"));
for(int i=0; i<cnt;i++)
out.println((i+1)+": 안녕 Servlet!!<br>");
}
}
컴파일: 반복적인 컴파일이 번거롭다면 sh파일 만들기
Make.sh 파일 생성
#!/bin/bash
javac -classpath /[Tomcat Directory]/java/tomcat-servlet-api.jar nana.java
mv ./nana.class ./WEB-INF/classes
systemctl restart tomcat
#./Make.sh
Request 테스트(1)
[Server IP]/hi?cnt=3
결과: "안녕 Servlet!!<br>" 값이 3회 출력
Request 테스트(2)
[Server IP]/hi?cnt=
[Server IP]/hi
결과: 500번 에러 출력
쿼리스트링 기본 값 설정
조건문(if)를 통해 인자 할당 여부 확인
import javax.servlet.annotation.WebServlet;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
@WebServlet("/hi")
public class nana extends HttpServlet
{
@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
String temp = request.getParameter("cnt");
int cnt = 3;
if(temp != null && !temp.equals(""))
cnt = Integer.parseInt(temp);
for(int i=0; i<cnt;i++)
out.println((i+1)+"안녕 Servlet!! <br>");
}
}
index.jsp 수정
테스트 페이지와 로그인 Form 페이지 분리
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- 브라우저에서 인코딩 방식 설정 --%>
<html>
<head>
<title>Redirection</title>
<meta charset="UTF-8">
</head>
<body>
<a href="hi">테스트 페이지</a><br>
<a href="login.jsp">로그인 페이지 화면</a><br>
</body>
</html>
Reference
'Development > JSP' 카테고리의 다른 글
[Encoding, Servlet Filter] 웹 서버 구축하기 (7) (0) | 2021.11.24 |
---|---|
[GET/POST] 웹 서버 구축하기 (6) (0) | 2021.11.22 |
[Encoding(Response)] 웹 서버 구축하기 (4) (0) | 2021.11.22 |
[Java Compile] 웹 서버 구축하기 (3) (0) | 2021.11.19 |
[DB Setting] 웹 서버 구축하기 (2) (0) | 2021.11.18 |
Comments