목록
'홈' 729건
-
req, res 객체 살펴보기익스프레스의 req, res 객체는 http 모듈의 req, res 객체를 확장한 것입니다. 기존 http 모듈의 메서드도 사용할 수 있고, 익스프레스가 추가한 메서드나 속성을 사용할 수도 있습니다. 예를 들어 res.writeHead, res.write, res.end 메서드를 그대로 사용할 수 있으면서 res.send나 res.sendFile 같은 메서드도 쓸 수 있습니다. 다만, 익스프레스의 메서드가 워낙 편리하므로 기존 http 모듈의 메서드는 잘 쓰이지 않습니다.익스프레스가 많은 속성과 메서드를 추가했지만, 여기서는 자주 쓰이는 것 위주로만 알아보겠습니다. req 객체부터 살펴봅니다.• req.app: req 객체를 통해 app 객체에 접근할 수 있습니다. req.app.get('port')와 ..
-
load-on-startup 기능 사용하기서블릿은 브라우저에서 최초 요청 시 init() 메서드를 실행한 후 메모리에 로드되어 기능을 수행합니다. 따라서 최초 요청에 대해서는 실행 시간이 길어질 수밖에 없습니다. 이런 단점을 보완하기 위해 이용하는 기능이 load-on-startup입니다.load-on-startup의 특징은 다음과 같습니다.톰캣 컨테이너가 실행되면서 미리 서블릿을 실행합니다.지정한 숫자가 0보다 크면 톰캣 컨테이너가 실행되면서 서블릿이 초가화됩니다.지정한 숫자는 우선순위를 의미하며 작은 숫자부터 먼저 초기회됩니다.애너테이션을 이용하는 방법1. sec06.ex02 패키지를 생성하고 마우스 오른쪽 버튼을 클릭한 후 New > Servlet을 선택합니다. 2. 클래스 이름으로 LoadAppConfig을 입력하고 Next를 클릭합니..
-
JTextField, 텍스트필드 컴포넌트JTextFieldJTextField를 이용하면 한 줄은 문자열을 입력받는 창(택스트필드)을 만들 수 있습니다. 입력 가능한 문자 개수와 창의 크기는 응용프로그램에서 변경할 수 있습니다. 텍스트필드에 문자열 입력 도중 키가 입력되면 Action 이벤트가 발셍합니다. JTextField 컴포넌트의 생성텍스트필드 컴포넌트의 생성자는 다음과 같습니다.JTextField() // 빈 텍스트필드JTextField(int cols) // 입력 창의 열의 개수가 cols 게인 텍스트필드JTextField(String text) // text 문자열로 초기화된 텍스트 필드JTextField(String text, int cols) // 입력 창의 열의 개수는 cols개이고 text 문지열로 초기화된 텍스트핑드 텍스트..
-
Router 객체로 라우팅 분리하기app.js에서 app.get 같은 메서드가 라우터 부분입니다. 라우터를 많이 연결하면 app.js 코드가 매우 길어지므로 익스프레스에서는 라우터를 분리할 수 있는 방법을 제공합니다. routes 폴더를 만들고 그 안에 index.js와 user.js를 작성합니다. routes/index.jsconst express = require("express");const router = express.Router();// GET / 라우터router.get("/", (req, res) => { router.send("Hello, Express");});module.exports = router; routes/user.jsconst express = require("express");const router = ..
-
@WebServlet 에니테이션을 이용한 서블릿 설정@WebServlet의 중요한 구성 요소에 대한 설명입니다.요소설명urlPatterns웹 브라우저에서 서블릿 요청 시 사용하는 매핑 이름name서블릿 이름loadOnStartup컨테이너 실행 시 로드되는 순서 지정initParams@WebinitParam 에너테이션 이용해 매개변수 추가하는 기능description서블릿에 대한 설명 1. sec06.ex01 패키지를 생성하고 마우스 오른쪽 버튼을 클릭한 후 New > Servlet을 선택합니다. 2. 클래스 이름으로 initParamServlet을 입력한 후 Next를 클릭합니다. 3. initialization parameters 항목의 Add...를 클릭합니다. 4. Name과 Value에 email과 admin@jweb.com을 입력한 후 OK를 클..
-
JRadioButton, 라디오버튼 컴포넌트JRadioButtonJRadioButton을 이용하면 라디오버튼을 만들 수 있습니다. 라디오버튼은 생성, 메서드, 이벤트 처리에 있어 체크박스와 동일하지만, 한 가지 면에서 다릅니다. 체크박스는 독립적으로 선택/해제되지만, 라디오버튼은 여러 개가 하나의 버튼 그룹을 형성하고, 그룹 내에서 하나만 선택 가능합니다. JRadioButton 컴포넌트의 생성라디오버튼은 다음 생성자를 이용하여 생성하며, 디폴트가 해제 상태입니다.JRadioButton() // 빈 체크박스JRadioButton(Icon image) // 이미지 라디오버튼JRadioButton(Icon image, boolean selected) // 이미지 라디오버튼JRadioButton(String text) // 문자열 라디오버튼JRadio..
-
multer이미지, 동영상 등을 비롯한 여러 가지 파일들을 멀티퍼트 형식으로 업로드할 때 사용하는 미들웨어입니다. 멀티퍼트 형식이란 다음과 같이 enctype이 multipart/form-data인 폼을 통해 업로드하는 데이터의 형식을 의미합니다.다음과 같은 multipart.html이 있다면 멀티퍼트 형식으로 데이터를 업로드할 수 있습니다. 아직 서버 쪽 라우터를 만들지 않았으므로 예제가 실행되지는 않습니다. 업로드 멀티파트 형식으로 업로드하는 데이터는 개발자 도구 Network 탭에서 다음과 같이 보입니다. 이미지 하나를 선택하고 title 인풋에 제목이라고 적어서 업로드하면 다음과 같은 데이터가 전송됩니다. 이러한 폼을 통해 업로드하는 파일은 body-parser로는 처리할 수 없고 직접 파싱(해석)..
-
ServletConfigServletConfig는 각 Servlet 객체에 대해 생성됩니다. 그리고 서블릿 API 계층 구조를 보면 ServletConfig 인터페이스를 GenericServlet 클래스가 실제로 구현하고 있습니다.ServletConfig에서 제공하는 여러 가지 메서드를 이용해 서블릿에 관련된 기능을 사용할 수 있습니다. 대표적인 기능이 앞에서 실습한 ServletContext 객체를 가져오는 기능입니다.ServletConfig는 javax.servlet 패키지에 인터페이스로 선언되어 있으며, 서블릿에 대한 여러가지 기능을 제공합니다. 각 서블릿에서만 접근할 수 있으며 공유는 불가능합니다. ServletConfig는 서블릿과 동일하게 생성되고 서블릿이 같이 소멸됩니다.ServletConfig가 제공하는 기능은 ..
-
JCheckbox, 체크박스 컴포넌트JCheckBox를 이용하면 선택(selected)과 해제(deselected)의 두 상태만 가지는 체크박스 컴포넌트(줄여 체크박스)를 만들 수 있습니다. 체크박스는 체크박스 문자열과 체크박스 이미지로 구성합니다. 체크박스 컴포넌트 생성체크박스는 다음 생성자를 이용하여 생성하며, 디폴트가 해제 상태입니다.JCheckBox() // 빈 체크박스JCheckBox(String text) // 문자열 체크박스JCheckBox(String text, boolean selected) // 문자열 체크박스JCheckBox(Icon image) // 이미지 채크박스JCheckBox(Icon image, boolean selected) // 이미지 체크박스JCheckBox(String text, Icon image) /..
-
미들웨어 특성 활용하기미들웨어를 직접 만들어보기도 했고, 다른 사람이 만든 미들웨어 패키지를 설치해 정착해보기도 했습니다.app.use((req, res, next) => { console.log("모든 요청에 다 실행됩니다."); next();}); 미들웨어는 req, res, next을 매개변수로 가지는 함수(에러 처리 미들웨어인 예외적으로 err, req, res, next를 가집니다.) 로서 app.use나 app.get, app.post 등으로 정착합니다. 특정한 주소의 요청에만 미들웨어가 실행되게 하려면 첫 번째 인수로 주소를 넣으면 됩니다.app.use( morgan('dev'), express.static('/', path.join(__dirname, 'public')), express.json(); exp..
-
expression-session세션 관리용 미들웨어입니다. 로그인 등의 이유로 세션을 구현하거나 특정 사용자를 위한 데이터를 임시적으로 저장해둘 때 매우 유용합니다. 세션은 사용자별로 req.session 객체 안에 유지됩니다.app.use( session({ resave: false, saveUninitialized: false, secret: process.env.COOKIE_SECRET, cookie: { httpOnly: true, secure: false, }, name: "session-cookie", })); express-session 1.5 버전 이전에는 내부적으로 cookie-parser를 사용하고 있어서 cookie-parser 미들웨어보다 뒤에 위치해야 했지만..
-
JButton, 버튼 컴포넌트JButtonJButton은 버튼 컴포넌트(간단히 버튼)를 만드는데 이용됩니다. 레이블 컴포넌트가 문자열이나 이미지를 화면에 출력하는 용도로 사용되는 것이라면, 버튼은 사용자로부터 명령을 받기 위해 사용됩니다. 버튼을 마우스로 클릭하거나 키로 선택하면 Action 이벤트가 발생합니다. 버튼 컴포넌트 생성버튼은 다음 생성자를 이용하여 생성합니다.JButton() // 빈 버튼JButton(Icon image) // 이미지 버튼JButton(String text) // 문자열 버튼JButton (String text, Icon image) // 문자열과 이미지를 가진 버튼 예를 들면 "hello" 문자열을 가진 버튼은 다음 코드로 생성합니다.JButton btn = new JButton("hello"); 이..