解答例 - 実習課題2 - 5.includeとforward
(実習課題2)
3章の実習課題3のプログラムを改良しなさい。
- Internet Explorerだった場合には、実習課題1(5章)のプログラムに「forward」する。
解答例
/* * ForwardServlet.java * TECHSCORE Java Servlet5章 実習課題2 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ package com.techscore.servlet.chapter5.exercise2; 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 ForwardServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String userAgent = (String) request.getHeader("User-Agent"); if (userAgent.indexOf("IE") != -1) { request.getRequestDispatcher("/servlet5-1").forward(request, response); } else if (userAgent.toLowerCase().indexOf("netscape") != -1) { response.setContentType("text/html; charset=Shift_JIS"); StringBuffer buffer = new StringBuffer(); buffer.append("<html><head><title>Servlet3章Exercise3</title></head><body>"); buffer.append("Netscapeでアクセスしました。"); buffer.append("</body></html>"); PrintWriter writer = response.getWriter(); writer.println(buffer.toString()); } else { response.sendRedirect("http://www.yahoo.co.jp/"); } } }