Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- scala
- 나의 취미
- nodejs express
- 나의 프로젝트
- Lift
- Node.js
- rss
- 베트남어
- php
- docker
- ror실행
- ejb
- 도커
- 명사 분석기
- 주식이야기
- 책이야기
- node.js web framework
- 스킨 스쿠버
- Cross
- Eclipse
- 명사 뽑아내기
- 디즈니씨
- 명사 추출기
- flex3
- C/C++
- ajax
- 메일왕창보내는법
- iBatis
- express for node.js
- php thumbnail
Archives
- Today
- Total
nkdk의 세상
3번 서블릿으로 자료 주고 받기 본문
일단 한글이 되게 하기 위해서
server.xml 의 내용을 수정합니다.
<Connector URIEncoding="euc-kr" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8080" redirectPort="8443"/>
다음과 같이 URIEncoding 부분에 euc-kr 을 추가해 줍니다.
또한 web.xml 부분에서 자동적으로 추가 되기 때문에 실행하는 부분에 대해서는 걱정하지 않아도 되지만, 해당되는 이름을 줄이고 싶을 때에는
<servlet>
<servlet-name>aaa</servlet-name>
<servlet-class>nice.sert1</servlet-class>
</servlet>
<servlet>
이런 식의 변경이 필요합니다.
그럼 sert1 과 sert2에 대해서 올리겠습니다.
package nice;
import java.io.*;
import java.util.Calendar;
import javax.servlet.*;
import javax.servlet.http.*;
public class sert1 extends HttpServlet implements Servlet {
private sert2 sg;
public void init() throws ServletException{
// 초기화를 담당함 포함시킬경우 문제가 발생하기 때문이다.
sg = new sert2();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=euc-kr"); // 한글이 바이트 단위로 가기 때문에 묶어서 내보낸다.
PrintWriter out = response.getWriter(); // 출력
out.print("<html>");
out.println("<body><center>");
out.println("<h1>서블릿 시작</h1>");
int a= 10, b=20;
int sum = calc(a,b);
out.println("a="+ a + ", b=" +b);
out.println("<br>sum="+sum);
java.util.Calendar calendar= java.util.Calendar.getInstance(); // 클래스의 포함
out.println("<hr width=70%>날짜:"+calendar.get(java.util.Calendar.YEAR) +"년 ");
out.println((calendar.get(java.util.Calendar.MONTH)+1) + "월");
// sert2 sg = new sert2(); 이렇게 그냥 포함시키면 문제가 있다. 객체가 계속 생성되기 때문에
// 문제가 발생한다.
out.println("<br><h3>이름 : " + sg.getIrum());
int n = 0;
sg.disp(n, out);
// String str = "</h3></center>";
// str += "</body>";
// str += "</html>";
StringBuffer bf = new StringBuffer();
bf.append("</h3></center>");
bf.append("</body>");
bf.append("</html>");
// 문자열 더하기는 최대한 안 쓰도록 한다. 속도가 떨어진다.
out.println(bf.toString());
out.close();
// system.exit(0)를 하면 브라우저가 종료되 버린다. 그렇기 때문에 하면 안된다.
// 주의: 메소드 종료시에는 retrun 을 사용한다.
}
private int calc(int a,int b) {
return a+b;
}
}
//sert2 내용
package nice;
import java.io.*;
public class sert2 {
private String irum;
public sert2() {
irum = "홍길동";
}
public String getIrum() {
return irum;
}
public void disp(int n, PrintWriter out) {
try {
int su = 10 / n;
out.println("<p>연산 결과 : "+ su);
} catch (Exception e) {
out.println("<p>에러 : 0으로 나눌 수 없습니다.");
return;
}
out.println("<br>아싸 아싸!");
}
}
자 다음회에서는 lifecycle에 대해서 배우면서 자료를 주고 받도록
하겠습니다.
server.xml 의 내용을 수정합니다.
<Connector URIEncoding="euc-kr" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8080" redirectPort="8443"/>
다음과 같이 URIEncoding 부분에 euc-kr 을 추가해 줍니다.
또한 web.xml 부분에서 자동적으로 추가 되기 때문에 실행하는 부분에 대해서는 걱정하지 않아도 되지만, 해당되는 이름을 줄이고 싶을 때에는
<servlet>
<servlet-name>aaa</servlet-name>
<servlet-class>nice.sert1</servlet-class>
</servlet>
<servlet>
이런 식의 변경이 필요합니다.
그럼 sert1 과 sert2에 대해서 올리겠습니다.
package nice;
import java.io.*;
import java.util.Calendar;
import javax.servlet.*;
import javax.servlet.http.*;
public class sert1 extends HttpServlet implements Servlet {
private sert2 sg;
public void init() throws ServletException{
// 초기화를 담당함 포함시킬경우 문제가 발생하기 때문이다.
sg = new sert2();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=euc-kr"); // 한글이 바이트 단위로 가기 때문에 묶어서 내보낸다.
PrintWriter out = response.getWriter(); // 출력
out.print("<html>");
out.println("<body><center>");
out.println("<h1>서블릿 시작</h1>");
int a= 10, b=20;
int sum = calc(a,b);
out.println("a="+ a + ", b=" +b);
out.println("<br>sum="+sum);
java.util.Calendar calendar= java.util.Calendar.getInstance(); // 클래스의 포함
out.println("<hr width=70%>날짜:"+calendar.get(java.util.Calendar.YEAR) +"년 ");
out.println((calendar.get(java.util.Calendar.MONTH)+1) + "월");
// sert2 sg = new sert2(); 이렇게 그냥 포함시키면 문제가 있다. 객체가 계속 생성되기 때문에
// 문제가 발생한다.
out.println("<br><h3>이름 : " + sg.getIrum());
int n = 0;
sg.disp(n, out);
// String str = "</h3></center>";
// str += "</body>";
// str += "</html>";
StringBuffer bf = new StringBuffer();
bf.append("</h3></center>");
bf.append("</body>");
bf.append("</html>");
// 문자열 더하기는 최대한 안 쓰도록 한다. 속도가 떨어진다.
out.println(bf.toString());
out.close();
// system.exit(0)를 하면 브라우저가 종료되 버린다. 그렇기 때문에 하면 안된다.
// 주의: 메소드 종료시에는 retrun 을 사용한다.
}
private int calc(int a,int b) {
return a+b;
}
}
//sert2 내용
package nice;
import java.io.*;
public class sert2 {
private String irum;
public sert2() {
irum = "홍길동";
}
public String getIrum() {
return irum;
}
public void disp(int n, PrintWriter out) {
try {
int su = 10 / n;
out.println("<p>연산 결과 : "+ su);
} catch (Exception e) {
out.println("<p>에러 : 0으로 나눌 수 없습니다.");
return;
}
out.println("<br>아싸 아싸!");
}
}
자 다음회에서는 lifecycle에 대해서 배우면서 자료를 주고 받도록
하겠습니다.