質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.34%
JSP

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

Java

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

サーブレット

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

Q&A

0回答

227閲覧

todoリストをsessionnで保存してチェックボックスを押したリストを破棄したいのですがHTTPステータス 404 – 見つかりません。と出ます。

haya12

総合スコア0

JSP

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

Java

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

サーブレット

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

0グッド

0クリップ

投稿2024/12/04 08:30

実現したいこと

チェックボックスが押されたときにsessionの破棄

発生している問題・分からないこと

チェックボックスをチェックして破棄ボタンを押したとき

エラーメッセージ

error

1HTTPステータス 404 – 見つかりません。 2タイプ ステータスレポート 3 4メッセージ 要求されたリソース [/delete-servlet] は利用できません。 5 6説明 オリジンサーバーは、ターゲットリソースの現在の表現を見つけられなかったか、またはそれが存在することを開示するつもりはありません。 7 8Apache Tomcat/9.0.70

該当のソースコード

package control; import java.io.IOException; import java.util.ArrayList; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * Servlet implementation class DeleteServlet */ @WebServlet("/delete-servlet") public class DeleteServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ @SuppressWarnings("unchecked") protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //セションを取得 HttpSession session = request.getSession(); //セッションからtodoリストを取得 ArrayList<TodoItem> todolist = (ArrayList<TodoItem>) session.getAttribute("todoList"); if(todolist != null) { String[] indices = request.getParameterValues("deleteIndex"); if(indices != null) { for(int i = indices.length - 1; i >= 0; i--) { try { int index = Integer.parseInt(indices[i]); todolist.remove(index); }catch(NumberFormatException e) { e.printStackTrace(); } } session.setAttribute("todoList" , todolist); } } response.sendRedirect("main.jsp"); } }

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

もともとチャットGPTを見て別の方法で書いていたのですがsessionの方がよいと聞いて変えました

補足

実行するjspです
コード
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>

<%@ page import="java.util.ArrayList" %>
<%@ page import="control.TodoItem" %>

<%
ArrayList<TodoItem> todolist = (ArrayList<TodoItem>)session.getAttribute("todoList");
request.setAttribute("todolist", todolist);
%>

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>リスト表示</title> <link rel="stylesheet" href="style.css"> </head> <body>
<%@include file = "header-navi.jsp"%>
<h2>リスト一覧</h2>

<a href = "listsakusei.jsp" class="submit">リスト追加</a>

<p> <form action="/delete-servlet" method="post"> <table border="1"> <thead> <tr> <th width = "5%">チェック</th> <th width = "15%">日付</th> <th>内容</th> </tr> </thead> <tbody>
<c:forEach var="todo" items="${todolist}" varStatus="status"> <tr> <td><input type="checkbox" name="deleteIndex" value="${status.index}"></td> <td>${todo.date}</td> <td>${todo.task}</td> </tr> </c:forEach> </tbody>
</table> <br> <br> <button type="submit">タスク完了</button> </form> </body> </html>

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.34%

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

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

質問する

関連した質問