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

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

詳細はこちら
JSP

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

Java

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

サーブレット

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

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

解決済

1回答

1766閲覧

jspからサーブレット

T2blrgKWmff6Bqm

総合スコア8

JSP

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

Java

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

サーブレット

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

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

0クリップ

投稿2020/01/01 17:12

前提・実現したいこと

jspから、Main.javaにパスしたい

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

タイプ ステータスレポート メッセージ /yakuin/Main 説明 オリジンサーバーは、ターゲットリソースの現在の表現を見つけられなかったか、またはそれが存在することを開示するつもりはありません。

該当のソースコード

jsp

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ page import="model.User" %> 4 <% 5 User loginUser = (User)session.getAttribute("loginUser"); 6 %> 7<!DOCTYPE html> 8<html> 9<head> 10<meta charset="UTF-8"> 11<title>役員報告</title> 12</head> 13<body> 14<h1>役員ログイン</h1> 15<% if(loginUser !=null){ %> 16<p>ログインに成功しました!</p> 17<p>おはようございます<%= loginUser.getName() %>さん</p> 18<a href="/yakuin/Main">役員報告一覧</a> 19<% }else{ %> 20<p>ログインに失敗しました</p> 21<a href="/yakuin/index.jsp">TOPへ</a> 22<% } %> 23</body> 24</html>

main.java

java

1package servlet; 2 3import java.io.IOException; 4import java.util.ArrayList; 5import java.util.List; 6 7import javax.servlet.RequestDispatcher; 8import javax.servlet.ServletContext; 9import javax.servlet.ServletException; 10import javax.servlet.annotation.WebServlet; 11import javax.servlet.http.HttpServlet; 12import javax.servlet.http.HttpServletRequest; 13import javax.servlet.http.HttpServletResponse; 14import javax.servlet.http.HttpSession; 15 16import model.Mutter; 17import model.PostMutterLogic; 18import model.User; 19 20/** 21 * Servlet implementation class Main 22 */ 23@WebServlet("/Main") 24public class Main extends HttpServlet { 25 private static final long serialVersionUID = 1L; 26 27 /** 28 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 29 */ 30 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 31 // TODO Auto-generated method stub 32 response.getWriter().append("Served at: ").append(request.getContextPath()); 33 34 ServletContext application =this.getServletContext(); 35 List<Mutter> mutterList = 36 (List<Mutter>) application.getAttribute("mutterList"); 37 38 if(mutterList == null) { 39 mutterList = new ArrayList<>(); 40 application.setAttribute("mutterList", mutterList); 41 } 42 43 HttpSession session = request.getSession(); 44 User loginUser = (User) session.getAttribute("loginUser"); 45 46 if(loginUser == null) { 47 response.sendRedirect("/yakuin/"); 48 }else{ 49 RequestDispatcher dispatcher = 50 request.getRequestDispatcher("/WEB-INF/jsp/main.jsp"); 51 dispatcher.forward(request, response); 52 } 53 } 54 55 /** 56 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 57 */ 58 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 59 // TODO Auto-generated method stub 60 doGet(request, response); 61 request.setCharacterEncoding("UTF-8"); 62 String text=request.getParameter("text"); 63 64 if(text != null && text.length() !=0) { 65 ServletContext application = this.getServletContext(); 66 List<Mutter> mutterList = 67 (List<Mutter>) application.getAttribute("mutterList"); 68 69 HttpSession session = request.getSession(); 70 User loginUser = (User) session.getAttribute("loginUser"); 71 72 Mutter mutter = new Mutter(loginUser.getName(),text); 73 PostMutterLogic postMutterLogic= new PostMutterLogic(); 74 postMutterLogic.execute(mutter,mutterList); 75 76 application.setAttribute("mutterList",mutterList ); 77 } 78 79 RequestDispatcher dispatcher = 80 request.getRequestDispatcher("/WEB-INF/jsp/main.jsp"); 81 dispatcher.forward(request, response); 82 83 } 84 85}

試したこと

yakuin/src/servlet/Main
など試しました。

補足情報(FW/ツールのバージョンなど)

tomcat9.0です

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

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

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

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

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

guest

回答1

0

ベストアンサー

サーブレットのコード自体には問題ありませんが、

html

1<a href="/yakuin/Main">役員報告一覧</a>

でコンテキストパスとなる /yakuin を指定しています。このWebアプリケーション名は yakuin で tomcatへは yakuin の名前でデプロイされていますでしょうか。
もし違う名前である場合は名前を合わせるか、JSPでコンテキストパスを取得してそれを表示するよう切り替えるべきでしょう。

投稿2020/01/02 06:59

A-pZ

総合スコア12011

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

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

T2blrgKWmff6Bqm

2020/01/04 12:18

ご回答ありがとうございます。 名前を確かめたところ、同じでした! そうですね。。。 Webアノテーションでできないのはなぜなのでしょうか?
A-pZ

2020/01/04 13:28

アノテーション定義そのものも間違えてはいないようです。JSPからリンクを押すのではなく、ブラウザで直接 http://localhost:8080/yakuin/Main を実行してみて、サーブレットが動作しているかを確認してください。その際、デバッグモードで実行し、当該のサーブレット内にブレークポイントを設定してサーブレットが実行されているかどうかで、URLがあっているかを確認できます。
T2blrgKWmff6Bqm

2020/01/05 13:21

ありがとうございます。 ブラウザで正しく確認できました! ありがとうございました!!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問