質問: Javaにてメールを受信し、添付をダウンロードするソースを書いていますが、main(String[] args)にclass DownloadServlet extends HttpServlet{}を記入しると、「型DownloadServlet はローカルで使用出来ません」と表示されます。 何故でしょうか。 mainの外に書く場合、実行はどう記述すればいいのでしょうか。
回答: サーブレットクラスはmain()メソッドの中には記載しません。 サーブレットはWebアプリケーションのコンテナから実行されますので、サーブレットとしては以下のような実装になります。(サーブレットバージョンは3.0以降) ``` package sample; 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("/TemplateServlet") public class TemplateServlet extends HttpServlet { /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // GET時の処理 } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // POST時の処理 } } ``` doGetやdoPostに実装する内容を記載していきます。