🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

Q&A

1回答

2059閲覧

randomメソッドの出力内容

wassan_nikoniko

総合スコア9

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

0グッド

0クリップ

投稿2020/12/29 09:28

前提・実現したいこと

サーブレットのdogetメソッド内にて記述した、Math.randomでおみくじのようにランダムに文字列を表示したい。

発生している問題・エラーメッセージ

大吉しか出力されずに、ランダムにならずに出力されている

該当のソースコード

jsp

1<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 3<!DOCTYPE html> 4<html lang="ja"> 5 <head> 6 <meta charset="UTF-8"> 7 <title>おみくじゲーム</title> 8 </head> 9 <body> 10 <h1>今日のおみくじ</h1> 11 <form method="post" action="/first_webapp/OmikujiServlet"> 12 <label for="username">氏名</label><br /> 13 <input type="text" name="username" /> 14 <br /><br /> 15 16 <button type="submit" name="omikuji_result">占う!</button> 17 </form> 18 </body> 19</html>

servlet

1package test; 2 3import java.io.IOException; 4import java.util.ArrayList; 5import java.util.List; 6 7import javax.servlet.RequestDispatcher; 8import javax.servlet.ServletException; 9import javax.servlet.annotation.WebServlet; 10import javax.servlet.http.HttpServlet; 11import javax.servlet.http.HttpServletRequest; 12import javax.servlet.http.HttpServletResponse; 13 14/** 15 * Servlet implementation class OmikujiServlet 16 */ 17@WebServlet("/OmikujiServlet") 18public class OmikujiServlet extends HttpServlet { 19 private static final long serialVersionUID = 1L; 20 21 /** 22 * @see HttpServlet#HttpServlet() 23 */ 24 public OmikujiServlet() { 25 super(); 26 // TODO Auto-generated constructor stub 27 } 28 29 /** 30 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 31 */ 32 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 33 String username=request.getParameter("username"); 34 String[] omikuji_results={"大吉", "吉", "中吉", "小吉", "末吉", "凶"}; 35 36 37 List<String>errors=new ArrayList<String>(); 38 39 if(username==null||username.equals("")){; 40 errors.add("氏名を入力してください"); 41 } 42 43 if(errors.size()>0){ 44 request.setAttribute("errors", errors); 45 }else{ 46 request.setAttribute("username", username); 47 request.setAttribute("omikuji_results", omikuji_results[(int)(Math.random())*6]); 48 } 49 50 RequestDispatcher rd=request.getRequestDispatcher("/WEB-INF/Omikuji_result.jsp"); 51 rd.forward(request, response); 52 } 53 54 /** 55 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 56 */ 57 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 58 // TODO Auto-generated method stub 59 doGet(request, response); 60 } 61 62} 63

jsp

1<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 3<!DOCTYPE html> 4<html lang="ja"> 5 <head> 6 <meta charset="UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 <c:choose> 11 12 <c:when test="${errors != null}"> 13 <h1>入力内容にエラーがあります</h1> 14 <ul> 15 <c:forEach var="error" items="${errors}"> 16 <li><c:out value="${error}" /></li> 17 </c:forEach> 18 </ul> 19 </c:when> 20 21 <c:otherwise> 22 23 <h1>本日のおみくじ結果</h1> 24 <td><c:out value="${username }"/>さんの今日の運勢は<c:out value="${omikuji_results}"/></td> 25 </c:otherwise> 26 </c:choose> 27 </body> 28</html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

(int)(Math.random())*6

((int)Math.random())*6
という演算となりますが、これでどういう結果が出るのか考えてみてはどうでしょうか。

投稿2020/12/29 09:34

y_waiwai

総合スコア88038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問