ここまでの内容で少し演習問題を解いてみよう!
Q1.jspを使って以下を出力せよ。リストの表示にはol(OrderedList)を使うこと。

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String[] names={"足立","石川","宇佐美","大野"};
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<ol>
<% for(String name:names){ %>
<li><%=name %></li>
<%} %>
</ol>
</body>
</html>
Q2.jspを使用し以下のような九九表を出力せよ。

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table border="1">
<caption>九九表</caption>
<% for(int i=1;i<=9;i++){ %>
<tr>
<%for(int j=1;j<=9;j++){ %>
<td><%=i*j %></td>
<%} %>
</tr>
<%} %>
</table>
</body>
</html>
Q3.以下のような質問出し、それに解答すると「正解!」または「残念」と出力するアプリを作成せよ。フォームはjsp,結果表示はServletを使うこと。
[実行例]
●スタート画面(問題が表示される)

●はいを選択して、送信ボタンを押すと「正解!」と表示される。

●form.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Insert title here</title>
</head>
<body>
<form action="/q3/Result" method="post">
スペイン語で月曜はLunesである。
<label><input type="radio" name="ans" value="yes">はい</label>
<label><input type="radio" name="ans" value="no">いいえ</label>
<input type="submit" value="送信">
</form>
</body>
</html>
●Result.java
package controller;
import java.io.IOException;
import java.io.PrintWriter;
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("/Result")
public class Result extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String ans=request.getParameter("ans");
response.setContentType("text/html; charset=UTF-8");
PrintWriter out=response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset='utf-8'>");
out.println("<title>スペイン語</title>");
out.println("</head>");
out.println("<body>");
out.printf("<p>%s</p>",ans.equals("yes")? "正解!":"不正解");
out.println("</body>");
out.println("</html>");
}
}
Q4.以下のようなフォームを作成せよ。フォームも結果もjspでよい。
●スタート画面

●一つも選択肢なかった場合は[選択なし]選択した場合は選択された項目をカンマで連結して出力する。(下図はWindowsとLinuxを選択)

●lesson4.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% if (request.getParameter("btn") == null){ %>
<form>
<p>お使いのOSを選んでください</p>
<input type="checkbox" name="os" value="win">Windows
<input type="checkbox" name="os" value="mac">Mac
<input type="checkbox" name="os" value="linux">Linux
<input type="submit" name="btn" value="送信">
</form>
<%}else{
String[] oss=request.getParameterValues("os");
String result=oss==null ? "[選択なし]":String.join(",",oss);
%>
<p><%=result %></p>
<%} %>
</body>
</html>
Q5.以下のようなフォームを作成せよ。フォームも結果もjsp、送信方法はGETとする。
select-optionの項目とそれを選んだ時の出力は以下とする。
[好きな食べ物を一つ選んでください]-[選択なし]
[寿司]-[やっぱ寿司ですよね!]
[ラーメン]-[バリエーション豊富だし、ラーメン最高!]
[焼肉]-[やっぱ肉ですよね!]
●スタート画面

●寿司を選択

●lesson5.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%
String[] options={
"好きな食べ物を一つ選んでください",
"寿司",
"ラーメン",
"焼き肉",
};
String[] results={
"選択なし",
"やっぱ寿司ですよね!",
"バリエーション豊富だし、ラーメン最高!",
"やっぱ肉ですよね!",
};
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%if(request.getParameter("btn") == null){ %>
<form>
<select name="favo">
<% for(int i=0;i<options.length;i++){ %>
<option value="<%=i %>"><%=options[i] %></option>
<%} %>
</select>
<input type="submit" value="送信" name="btn">
</form>
<%}else{ %>
<%
String index=request.getParameter("favo");
%>
<p><%=results[Integer.parseInt(index)] %></p>
<%} %>
</body>
</html>
コメント