0502 앨범 업로드

조성현·2023년 5월 1일
0

테이블 구성

테이블 명 : album_board1
번호       seq			int					not null		primary key auto_increment
제목	   	  subject	  	varchar(150),		not null
글쓴이	  wirter	  	varchar(12),		not null
이메일	  mail			varchar(50),		null
비밀번호	  password		varchar(12),		not null
내용	  	  content		varchar(2000),		null
파일명	  filename		varchat(50),		null
파일크기   filesize		int,				null
조회수	  hit			int,				not null
아이피	  wip			varchar(15),		not null
등록일	  wdate			date,				not null

테이블 생성

create table album_board1(
seq int auto_increment primary key,
subject	 varchar(150) not null,
writer varchar(12) not null,
mail varchar(50),
password varchar(12) not null,
content varchar(2000),
filename varchar(50),
filesize int,
hit int not null,
wip varchar(15) not null,
wdate datetime not null
);

테이블 추가

insert into album_board1 values (0, '제목', '이름', 'test@test.com', '1234', '내용', 'text.txt', 0, 0, '000.000.000.000', now() );

board_list1.jsp

board_view1.jsp

이전글

다음글

board_write1.jsp

board_write1_ok.jsp

board_delete1.jsp

board_delete1_ok.jsp

board_modify1.jsp

board_modify1_ok.jsp

배포

개발 환경
: window -> jdk -> apache-tomcat -> IDE(eclipse ...)
=> 배포(deployment)

서비스 환경
: window -> jdk -> apache-tomcat

document root
c:\java\apache-tomcat-9.0.74\webapps\ROOT*.jsp

새로운 웹앱 생성
c:\java\apache-tomcat-9.0.74\webapps\새 디렉토리 이름
c:\java\apache-tomcat-9.0.74\webapps\새 디렉토리 이름\WEB-INF
c:\java\apache-tomcat-9.0.74\webapps\새 디렉토리 이름*.jsp -> 실행

옮기는 순서
1. 라이브러리 이전
2. 설정파일 이전
3. beans
!버전확인하기
서비스/개발jdk의 버전을 통일 시켜야한다.
서비스 환경이 11버전이라 개발 환경도 11로 맞춰줌




4. 이미지/css/js
5. *.jsp

톰캣경로에 저장하기(elclipse에서 만든 프로젝트)

(이클립스로 만들어 놨기 때문에 폴더/파일은 붙여넣기만 해도 된다.)
1. C:\Java\apache-tomcat-9.0.74\webapps에 폴더(이하 website)생성 또는 VSC에서 앞서 말한 webapps를 선택하고 website를 생성한다.
2. website 안에 WEB-INF폴더 생성 -> 그 안에 lib 폴더 생성 -> 라이브러리를 넣는다.
3. website 안에 META-INF폴더 생성 -> context.xml 파일 붙여넣기
4. css/image/mariadb 폴더/파일이 있다면 붙여넣기)
5. 브라우저를 통해 실행

war(web archiver) 추출하기

  1. 이클립스에서 추출할 프로젝트를 선택
  2. C:\Java\apache-tomcat-9.0.74\webapps에 생성
  3. 생성 확인 후 아파치톰캣을 실행
  4. 브라우저에서 실행

다른경로(톰캣제외)로 저장하기(eclipse에서 만든 프로젝트)

Ex) C드라이브에 저장하기
1. c드라이브에 폴더생성(이하 website)
2. website안에 website1폴더 생성
3. website1안에 설정폴더/파일 생성
4. C:\Java\apache-tomcat-9.0.74\conf\Catalina\localhost 안에

<?xml version="1.0" encoding="utf-8" ?>
<Context path="/website1" docBase="c:\website\website1" reloadable="true">
</Context>

를 적은 .xml파일 생성
5. vsc를 통해 간단한 jsp파일을 생성
6. 브라우저를 통해 실행

simple1 넣어서 저장하기


=> C:\Java\apache-tomcat-9.0.74\conf\Catalina\localhost 안에 있는 context.xml파일을 변경해준다. -> META-INF에 있는 context.xml은 필요없어진다.

<?xml version="1.0" encoding="utf-8" ?>
<Context path="/website1" docBase="c:\website\website1" reloadable="true">
	<Resource
		name="jdbc/mariadb3"
		auth="Container"
		type="javax.sql.DataSource"
		driverClassName="org.mariadb.jdbc.Driver"
		url="jdbc:mariadb://localhost:3306/board"
		username="board"
		password="1234" />
</Context>

서블릿의 구현

!프로젝트 생성 시 체크박스 꼭 확인

클래스 생성

package sevrlet;

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 FirstServlet extends HttpServlet {
	
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("Hello Servlet");
	}
}

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_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>ServletEx01</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>default.htm</welcome-file>
  </welcome-file-list>
  // 이 부분을 추가 해준다.
  <servlet>
  	<servlet-name>first</servlet-name>
  	<servlet-class>servlet.FirstServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>first</servlet-name>
  	<url-pattern>/first</url-pattern>
  </servlet-mapping>
  //
</web-app>

html로 출력하기

package sevrlet;

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 FirstServlet extends HttpServlet {
	
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//System.out.println("Hello Servlet");
		
		// html로 출력한다는 구문
		resp.setContentType("text/html; charset=utf-8");
		
		PrintWriter out = resp.getWriter();
		out.println("<!DOCTYPE html>");
		out.println("<html>");
		out.println("<head>");
		out.println("<charset=utf-8>");
		out.println("</head>");
		out.println("<body>");
		out.println("Hello Servlet");
		out.println("</body>");
		out.println("</html>");
		
		out.close();
	}
}

url-mapping을 사용해서 출력하기

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_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>ServletEx02</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>default.htm</welcome-file>
  </welcome-file-list>
  
  <servlet>
  	<servlet-name>servlet01</servlet-name>
  	<servlet-class>servlet.ServletEx01</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>servlet01</servlet-name>
  	<!-- 경로요청 / 가상경로 -->
  	<url-pattern>/servlet01</url-pattern>
  	<url-pattern>/servlet02</url-pattern>
  	<url-pattern>/servlet03</url-pattern>
  	<url-pattern>/servlet/dir1</url-pattern>
  	<url-pattern>/servlet/dir2</url-pattern>
  	<!-- * - 어떤 말을 쓰던 요청됨 -->
  	<url-pattern>/servlet/*</url-pattern>
  </servlet-mapping>
  
 <servlet>
  	<servlet-name>servlet02</servlet-name>
  	<servlet-class>servlet.ServletEx02</servlet-class>
 </servlet>
 <servlet-mapping>
  	<servlet-name>servlet02</servlet-name>
  	<url-pattern>*.daum</url-pattern>
  	<url-pattern>*.naver</url-pattern>
 </servlet-mapping>
  
</web-app>

실행 할 클래스

package servlet;

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 ServletEx02 extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("Hello ServletEx02");
	}
}



jsp을 통해 get/post출력

xml

<servlet>
  	<servlet-name>form_ok</servlet-name>
  	<servlet-class>servlet.FormOkServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  	<servlet-name>form_ok</servlet-name>
  	<url-pattern>/form_ok.do</url-pattern>
 </servlet-mapping>

jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<form action="form_ok.do" method="get">
	데이터 : <input type="text" name="data" />
	<input type="submit" value="get 전송" />
</form>

<form action="form_ok.do" method="post">
	데이터 : <input type="text" name="data" />
	<input type="submit" value="post 전송" />
</form>

</body>
</html>

실행 할 클래스

package servlet;

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 FormOkServlet extends HttpServlet {
	
	/*
	// post / get 상관없이 호출함
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("FormOkServlet");
	}
	*/
	// 나눠서 호출
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("FormOkServlet - doGet");
		System.out.println(req.getParameter("data"));
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		req.setCharacterEncoding("utf-8"); // 다국어 처리를 해줘야 한다.
		System.out.println("FormOkServlet - doPost");
		System.out.println(req.getParameter("data"));
	}
}



web.xml을 사용하지 않고 출력하기

package 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;

@WebServlet(urlPatterns = {"/servlet01", "/servlet02"}) // xml에 사용했던 url-pattern
public class ServletEx01 extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("Hello Servlet");
	}
}



get과 post를 합치기 process

package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class ServletEx04
 */
@WebServlet("/servlet")
public class ServletEx04 extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.doProcess(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.doProcess(request, response);
	}
	
	// get과 post를 합침
	protected void doProcess(HttpServletRequest request, HttpServletResponse response) {
		// TODO Auto-generated method stub
		// html 출력을 생성
		try {
			request.setCharacterEncoding("utf-8");
			
			response.setContentType("text/html; charset=utf-8");
			StringBuilder sbHtml = new StringBuilder();
			sbHtml.append("<!DOCTYPE html>");
			sbHtml.append("<html>");
			sbHtml.append("<head>");
			sbHtml.append("<charset=utf-8>");
			sbHtml.append("</head>");
			sbHtml.append("<body>");
			sbHtml.append("Hello Servlet");
			sbHtml.append("</body>");
			sbHtml.append("</html>");
			
			PrintWriter out = response.getWriter();
			out.println(sbHtml);
			out.close();
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			System.out.println("[에러] : " + e.getMessage());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			System.out.println("[에러] : " + e.getMessage());
		}
	}
}

0개의 댓글