JSTL, 메일 보내기, 파일 업로드
1. JSTL ?
1) JSP Standard Tag Library
2) 표준화된 태그 라이브러리를 제공함으로써 보다 편리하고 표준에 맞게 웹 프로그램을 개발할 수 있기 위함.
3) JSTL 1.2.x 는 Serlvet 2.5 이상, JSP 2.1 이상
JSTL 1.1.x 는 Servlet 2.4 이상, JSP 2.0 이상에서 지원
2. Homepage
1) JSTL 1.2.x
https://jstl.java.net/
2) JSTL 1.1.x
- http://tomcat.apache.org/taglibs/standard/
3. Download
1) JSTL 1.2.x
- https://jstl.java.net/download.html
- JSTL API : javax.servlet.jsp.jstl-api-1.2.1.jar
- JSTL Implementation : javax.servlet.jsp.jstl-1.2.1.jar
- Copy to /WEB-INF/lib
2) JSTL 1.1.x
- http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
- jakarta-taglibs-standard-1.1.2.zip
- Unzip
- /lib/jstl.jar, /lib/standard.jar
- copy to /WEB-INF/lib
4. JSTL 에서 제공하는 Tag 종류
1) Core : http://java.sun.com/jsp/jstl/core : c
2) XML Processing : http://java.sun.com/jsp/jstl/xml : x
3) I18N capable formatting : http://java.sun.com/jsp/jstl/fmt : fmt
4) SQL : http://java.sun.com/jsp/jstl/sql : sql
5) Functions : http://java.sun.com/jsp/jstl/functions : fn
5. Reference Sites
- java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html
--> http://docs.oracle.com/cd/E17802_01/products/products/jsp/jstl/1.1/docs/tlddocs/index.html
- http://docs.oracle.com/javaee/6/tutorial/doc/
6. Core Tag
1) JSP 에서 가장 필요하고 핵심적인 기본적인 기능들을 모아 놓은 라이브러리
2) <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3) Tags
4) <c:catch />
- 예외 처리를 위한 태그
- Syntax
<c:catch var="변수명" />
- 예외가 발생하면 var 에 지정된 변수에 예외 객체를 할당
5) <c:out />
- JSTL 에서 지정된 값을 출력하는 태그
- Syntax
<c:out value="출력값" default="기본값" escapeXml = "true | false" />
- value : 변수의 내용값
- default 속성은 기본 값을 의미하는데, value 의 값이 null일 경우 사용
- escapeXml 는 기본인 true 이고 따라서 true 이면 < <, > > 으로 변환되고,
false로 설정하면 <, > 등 특수기호를 처리할 때 사용
6) <c:set />
-지정된 변수에 값을 설정
- Syntax
<c:set var="변수명" value="설정값" target="객체" property="값" scope="범위" />
- var는 값을 저장할 변수의 이름
- value 저장할 값
- target 값을 설정할 프라퍼티를 갖고 있는 객체(JavaBean, Map)을 의미
- property 값을 설정할 객체의 프라퍼티
- scope : application | session | request | page
7) <c:if>
- 조건 처리할 때 사용되는 태그
- <c:if test="조건" var="변수명" scope="범위" />
- test : 조건을 지정
- var : 조건 처리한 결과를 저장할 변수
8) <c:choose>, <c:when>, <c:otherwise>
- 조건 처리할 때 사용하는 태그, switch ~ case 와 같다.
<c:choose>
<c:when test="조건"></c:when>
<c:when test="조건"></c:when>
<c:when test="조건"></c:when>
<c:otherwise></c:otherwise>
</c:choose>
9)<c:forEach />
- 반복 처리할 때 사용, Java의 for 와 같다.
<c:forEach items="객체명" begin="시작" end="끝" step="증감식" var="변수명" varStatus="상태변수명" />
- items 반복할 속성을 갖고 있는 컬렉션이나 배열형태의 객체
- begin 과 end 만큼 반복
- step 증감식 설정
- var 반복할 때 반복하고 값을 저장할 변수
- varStatus 반복의 상태를 갖는 변수
10) <c:forTokens>
- Java 의 for문과 StringTokenizer 객체를 결합한 것
- <c:forTokens items="객체명" delims = "구분자" begin="시작인덱스" end ="끝 인덱스"
step ="증감식" var="변수명" varStatus="상태변수" />
11) <c:import >
- 지정된 URL 이 포함된 JSP 페이지를 출력할 때 사용하는 태그
- <jsp:include > 동일
<c:import url="URL 값" var="변수명" scope="범위" varReader="입력스트림명"
charEncoding="인코딩값" context="contextName" />
- url 은 HTTP, FTP 외부 리소스
12) <c:redirect>
----
http://tomcat.apache.org/ 접속. 왼쪽 Taglibs 누르고.
JSTL1.1 줄의 download 클릭. binaries 클릭. jakarta-taglibs-standard-1.1.2.zip 다운.
3.Dwonload에 써주고
http://search.maven.org/#browse|707331597 에서 javax.servlet.jsp.jstl-api-1.2.1.jar 다운.
http://search.maven.org/#browse|-1002239620에서 javax.servlet.jsp.jstl-1.2.1.jar 다운.
프로젝트의 lib폴더에 jar파일 두개를 넣어두고.
----
catchdemo.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:catch var="err">
<%= 10 / 0 %>
</c:catch>
<h3>Error Message : <c:out value="${err}" /></h3>
출력:
Error Message : java.lang.ArithmeticException: / by zero
기본적인 사용법으로 prefix와 uri는 저렇게 셋팅하고 시작함.
------------------------
jstldemo.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach begin="1" end="10">
<h3>Hello, World</h3>
</c:forEach>
출력:
Hello, World 를 10번 반복적으로 찍어줌.
for문을 위처럼 써줘서 사용.
------------------
outdemo.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:directive.page import="java.io.FileReader" />
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:catch var="err">
<%
FileReader reader = null;
String path = request.getParameter("path");
reader = new FileReader(getServletContext().getRealPath(path));
%>
<pre>
Source Code path : <%=path %>
<c:out value="<%=reader %>" escapeXml="true"></c:out>
</pre>
</c:catch>
<h4>Error Message : <c:out value="${err}" /></h4>
출력:
Error Message : java.lang.NullPointerException
-------------
outdemo1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:out value="<font size='7'>큰 글씨</font>는 다음과 같이 출력합니다." /><br /><br />
<c:out value="<font size='7'>큰 글씨</font>는 다음과 같이 출력합니다."
escapeXml = "false" />
여기서 escapeXml 을 false로하면 tag는 먹히는 것이고, 기본은 true로 escapeXml을 써주지 않으면 먹히지 않는다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
setdemo.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="browser" value="${header['user-agent']}" />
삭제 전
<c:out value="${browser}" /><br /><br />
<c:remove var="browser" />
삭제 후
<c:out value="${browser}" />
출력:
삭제 전 Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
삭제 후
remove를 이용해 browser의 이름을 가진 것을 삭제해줌.
-----------------
setdemo1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="num1" value="${20}" />
<c:set var="num2">
10.5
</c:set>
num1 : ${num1} <br />
num2 : ${num2} <br />
num1 + num2 = ${num1 + num2}
출력:
num1 : 20
num2 : 10.5
num1 + num2 = 30.5
변수에 값을 할당하는 방법.
-------------------------
setdemo2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:directive.page import="java.util.Date" />
<jsp:directive.page import="java.util.HashMap" />
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="today" value="<%=new Date() %>" />
Today is ${today}<br />
<%--
<jsp:useBean id="today" class="java.util.Date" />
--%>
<c:set var="map" value="<%=new HashMap() %>" />
<c:set target="${map}" property="irum" value="조성모" />
귀하의 이름은 ${map["irum"]} 이군요.
<%--
<%
HashMap<String, String> map = new HashMap<String, String>();
map.put("irum", "조성모");
out.println(map.get(irum));
%>
--%>
출력:
Today is Fri Jun 27 11:48:44 KST 2014
귀하의 이름은 조성모 이군요.
시간과 이름 출력.
-------------------------------
setdemo3.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<jsp:useBean id="myBean" class="com.javasoft.libs.LoginBean" />
<c:set target="${myBean}" property="userid" value="javaexpert" />
<c:set target="${myBean}" property="passwd" value="123456" />
User ID : ${myBean.userid }<br />
Password : <c:out value="${myBean.passwd}" />
<%--
<jsp:setProperty name="myBean" property="userid" value="javaexpert" />
<jsp:setProperty name="myBean" property="passwd" value="123456" />
User ID : <%=myBean.getUserid() %><br />
Password : <jsp:getProperty name="myBean" property="passwd" />
--%>
com.javasoft.libs패키지의 LoginBean.java
package com.javasoft.libs;
public class LoginBean {
private String userid; //property
private String passwd;
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getPasswd() {
return passwd;
}
public void setPasswd(String passwd) {
this.passwd = passwd;
}
}
출력:
User ID : javaexpert
Password : 123456
--------------------
setdemo4.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="CODE" value="80012" scope="request" />
<c:set var="NAME" value="Pencil" scope="request" />
<c:set var="PRICE" value="1000" scope="request" />
<jsp:forward page="setdemo5.jsp" />
setdemo5.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>Product Information</h3>
상품코드 :${CODE} <br />
상품이름 :${NAME} <br />
상품단가 :${PRICE} <br />
</body>
</html>
출력:
Product Information
상품코드 :80012
상품이름 :Pencil
상품단가 :1000
웹브라우저는 setdemo4.jsp를 실행시킨것이나 내용은 setdemo5.jsp를 출력한다. forward 시켰기 떄문에.
--------------------
if문
ifdemo.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:if test="true">
무조건 출력한다.
</c:if>
<br />
<c:if test="${5 < 10}">
<h3>5가 10보다 작다</h3>
</c:if><br />
<c:if test="${6 + 3 == 9}" >
<H3>6더하기 3은 9이다.</H3>
</c:if>
<c:if test="${param.name eq 'code'}">
name 값은 ${param.name} 입니다.
</c:if><br />
<c:if test="${!empty param.name }">
Name : ${param.name}
</c:if><br />
<c:if test="${param.age > 18 }">
귀하는 성년입니다.
</c:if>
출력:
무조건 출력한다.
5가 10보다 작다
6더하기 3은 9이다.
브라우저에 추가로 ?name=code&age=20 을 써줘야 참을 만족하기 때문에 다음을 출력한다.
name 값은 code 입니다.
Name : code
귀하는 성년입니다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
조건문
choosedemo.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:choose>
<c:when test="${param.season eq 'spring' }">
<c:out value="개나리, 진달래" />
</c:when>
<c:when test="${param.season eq 'summer' }">
<c:out value="장미, 아카시아" />
</c:when>
<c:when test="${param.season eq 'fall' }">
<c:out value="코스모스, 백합" />
</c:when>
<c:otherwise>
<c:out value="동백, 매화" />
</c:otherwise>
</c:choose>
출력: 그냥 실행하면 출력은 아래와같다. 아무값도 안줬기 때문에
동백, 매화
-----------------------
반복문
foreachdemo.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach var="i" begin="1" end="10" step="2">
${i}
</c:forEach><br />
<h1>1부터 100까지의 합</h1>
<c:set var="sum" value="0" />
<c:forEach var="j" begin="1" end="100">
<c:set var="sum" value="${sum + j}" />
</c:forEach>
Result : ${sum}<br />
<hr>
<c:forEach var="k" begin="1" end="9">
5 X ${k} = ${5 * k} <br />
</c:forEach>
출력:
1 3 5 7 9
1부터 100까지의 합
Result : 5050
5 X 1 = 5
5 X 2 = 10
5 X 3 = 15
5 X 4 = 20
5 X 5 = 25
5 X 6 = 30
5 X 7 = 35
5 X 8 = 40
5 X 9 = 45
---------------------
구구단
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<h2>구구단</h2>
<table cellspacing="0" cellpadding="0" border="1" width="800">
<tr height="40">
<c:forEach begin="2" end="9" var="j">
<th width="100">${j}</th>
</c:forEach>
</tr>
<c:forEach var="i" begin="1" end="9">
<tr height="20">
<c:forEach var="j" begin="2" end="9">
<td>${j} x ${i} = ${j * i}</td>
</c:forEach>
</tr>
</c:forEach>
</table>
---------------------
foreachdemo2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<jsp:directive.page import="java.util.HashMap" />
<%@ page import="java.util.Date" %>
<%
HashMap map = new HashMap();
map.put("name", "조성모");
map.put("today", new Date());
%>
<c:set var="intArray" value="new int[]{1,2,3,4,5}" />
<h3>int 배열</h3>
<c:forEach var="i" items="${intArray}" begin="2" end="4">
[${i}]
</c:forEach><br />
<c:set var="m" value="<%=map %>" />
<h3>Map</h3>
<c:forEach items="${m}" var="i">
${i.key} ==> ${i.value}<br />
</c:forEach>
출력:
int 배열
[3] [4] [5}]
Map
today ==> Fri Jun 27 16:15:57 KST 2014
name ==> 조성모
---------------------
foreachdemo3.jsp
Header 정보
param : accept-language
value : ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4
param : cookie
value : JSESSIONID=A92F9212974A0E14E42ED074A19AD6AF
param : host
value : localhost:8080
param : connection
value : keep-alive
param : accept-encoding
value : gzip,deflate,sdch
param : accept
value : text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
param : user-agent
value : Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
-----------------------
foreachdemo4.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach begin="1" end="7" var="i">
<font size="${i}" color="red">Hello, World</font><br />
</c:forEach>
<%--
<% for(int i = 1 ; i <=7 ; i++){ %>
<font size="<%=i %>" color="red">Hello, World</font><br />
<% } %>
--%>
출력은 Hello, World 가 점점 커지는
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
tokenizer
fortokendsdemo.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forTokens var="i" items="사과, 바나나. 딸기, 복숭아. 수박. 참외" delims=",.">
${i}
</c:forTokens>
,와 .을 모두 구분자로 생각해서 걸릴 때마다 띄어쓰기 네칸을 인식함.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
Import
importdemo.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%-- <c:import url="fortokendsdemo.jsp" var="myURL" />--%>
<c:import url="http://www.naver.com/index.html" var="myURL" />
<body>
<h1>Import 연습하기</h1>
${myURL}
</body>
-------------------------
header.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:if test="${param.id != null}">
[HEADERE]${param.id}님의 방문을 환영합니다.
<hr>
</c:if>
footer.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<hr>
<div align="center">
All rights reserved ©
</div>
importdemo1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:import url="footer.jsp" var="foot" />
<c:import url="header.jsp" var="head">
<c:param name="id" value="javaexpert" />
</c:import>
<c:import url="http://www.javaexpert.co.kr" var="article" />
<body>
${head}
${article}
${foot}
</body>
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
redirect
redirectdemo.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:redirect url="multifly.jsp">
<c:param name="num1" value="5" />
<c:param name="num2" value="25" />
</c:redirect>
multifly.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
num1 : <c:out value="${param.num1}" /><br />
num2 : <c:out value="${param.num2}" /><br />
${param.num1} x ${param.num2} = ${param.num1 * param.num2}
출력:
num1 : 5
num2 : 25
5 x 25 = 125
redirectdemo.jsp를 실행하면 웹브라우저의 url은
http://localhost:8080/0627/multifly.jsp?num1=5&num2=25 을 표시함.
주소와 함께 바뀌는 것이 redirect.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
urldemo.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:url value="divide.jsp">
<c:param name="num1" value="100" />
<c:param name="num2" value="25" />
</c:url>
divide.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
num1 : <c:out value="${param.num1}" /><br />
num2 : <c:out value="${param.num2}" /><br />
${param.num1} / ${param.num2} = ${param.num1 div param.num2}
출력:
divide.jsp?num1=100&num2=25
값세팅.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
=================================
================================
메일 보내기
mysql 이 갈린 CentOS 켜서
su
rpm -qa | grep sendmail
rpm -qa | grep telnet
yum -y install telnet-server
cd /etc/xinetd.d
gedit telnet 들어가서
disable을 no로 바꿔줌.
service xinetd start
system-config-firewall
port 23번을 열어줌.
윈도우즈에서 제어판 Programs and Features- Trun Windows features on or off 눌러서 telnet client 눌러 설치해줌.
명령프롬프트열어서 telnet 192.168.89.132 23 엔터. centos의 아이디 비번을 치고 로그인.
exit로 나옴.
다시 centos에서
yum -y install telnet
telnet localhost 23
접속되는지 보고
yum -y install sendmail sendmail-cf
cd /etc/mail
mv sendmail.cf sendmail.cf.org
cp sendmail.mc sendmail.mc.org
gedit sendmail.mc
51라인 가서
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
이 두부분을 dnl 을 빼줌
116라인
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl 이렇게 바꿔줌.
160라인 가서 dnl MASQUERADE_AS(`mydomain.com')dnl 를
MASQUERADE_AS(`javaexpert.co.kr')dnl 이렇게 도메인이름을 설정함.(자기맘대로)
164라인 dnlFEATURE(masquerade_envelope)dnl 을 FEATURE(masquerade_envelope)dnl 바꿈.
저장 후 나와서
service saslauthd start
m4 sendmail.mc > sendmail.cf
gedit sendmail.cf 들어가서
97라인? #Dj$w.Foo.COM 부분 밑에
Djjavaexpert.co.kr 추가함.
444라인 # SMTP initial login message (old $e macro) 밑에
SmtpGreetingMessage=$j Sendmail ; $b 을 써주고
O MaxMessageSize=0 부분을
O MaxMessageSize=20480000 으로 바꿔줌.
저장 후 나옴.
gedit local-host-names 들어가서
써진 것 밑에줄에 javaexpert.co.kr 아까 써줬던 도메인명을 써줌.
/etc/init.d/sendmail start
system-config-firewall 해서 25번 포트열어주고
telnet 192.168.89.132 25 엔터.
안대면 telnet localhost 25 로 확인. 되면 ESMTP Sendmail 이라고 나오면서 아래 아무것도 안나옴.
mail from:mino 엔터
rcpt to:자기받을계정쓰고 엔터
data 엔터 (본문시작)
hellow, world 엔터
안녕하세요. 잘 가요? 엔터
. 엔터(끝낼 때)
================================
================================
파일 관리 프로젝트 (미완)
파입 업로드 부분만
http://www.servlets.com/cos/ 접속.
왼쪽 com.oreilly.servlet 선택.
cos-26Dec2008.zip 다운.
알집풀고 폴더들어가서 lib폴더의 cos.jar.(파일업로드시필요)
lib폴더에 jar 파일 추가해주고.
파일이 업로드될 폴더를 만들어주고,
fileupload.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>파일 업로드</title>
</head>
<body>
<h3>파일 업로드 폼</h3>
<form action="fileupload.jsp" method="post" enctype="multipart/form-data">
<table>
<tr>
<th>올린 사람</th>
<td><input type="text" name="name" /></td>
</tr>
<tr>
<th>제목</th>
<td><input type="text" name="subject" /></td>
</tr>
<tr>
<th>파일명 1</th>
<td><input type="file" name="filename1" /></td>
</tr>
<tr>
<th>파일명 2</th>
<td><input type="file" name="filename2" /></td>
</tr>
<tr>
<th>파일명 3</th>
<td><input type="file" name="filename3" /></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="올리기" />
</td>
</tr>
</table>
</form>
</body>
</html>
fileupload.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" errorPage="/error/error.jsp" %>
<jsp:directive.page import="com.oreilly.servlet.*" />
<jsp:directive.page import="com.oreilly.servlet.multipart.*" />
<% request.setCharacterEncoding("utf-8"); %>
<%
String dir = "D:\\upload";
int max = 5 * 1024 * 1024; //5MB
MultipartRequest mr = new MultipartRequest(
request, dir, max, "utf-8", new DefaultFileRenamePolicy());
String name = mr.getParameter("name");
String subject = mr.getParameter("subject");
String file1 = mr.getFilesystemName("filename1");
String ofile1 = mr.getOriginalFileName("filename1");
String file2 = mr.getFilesystemName("filename2");
String ofile2 = mr.getOriginalFileName("filename2");
String file3 = mr.getFilesystemName("filename3");
String ofile3 = mr.getOriginalFileName("filename3");
%>
<ul>
<li>올린이 : <%=name %></li>
<li>제목 : <%= subject %></li>
<% if(file1 != null){ %>
<li>업로드된 파일 1 : <%=file1 %>(<%=ofile1 %>)</li>
<% } %>
<% if(file2 != null){ %>
<li>업로드된 파일 2 : <%=file2 %>(<%=ofile2 %>)</li>
<% } %>
<% if(file3 != null){ %>
<li>업로드된 파일 3 : <%=file3 %>(<%=ofile3 %>)</li>
<% } %>
</ul>