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

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

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

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

Java

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

Q&A

解決済

2回答

4431閲覧

サーブレットからJSPの受け渡しがうまくいかないです。

ususio

総合スコア11

JSP

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

Java

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

0グッド

1クリップ

投稿2017/05/16 01:18

編集2017/05/17 01:15

###前提・実現したいこと
プログラミング、java共に初心者です。
授業でサーブレットからJSPに画面遷移するプログラムを作ろうとしています。
###発生している問題・エラーメッセージ
Initを実行すると、初期表示はされるのですが、何も入力せずに登録ボタンを押す、
またコード、部署名を入力し追加ボタンを押してもHTTPステータス404(The requested resource is not available.) が表示されエラーになってしまう状態です。

まだjavaのことを理解しておらず、どこのソースがどのように動いているのかすら全て把握していないため、余分な部分も
多々混ざっているかもしれません。

###該当のソースコード(init)

lang

1package kanri; 2 3import java.io.IOException; 4import java.sql.Connection; 5import java.sql.DriverManager; 6import java.sql.ResultSet; 7import java.sql.Statement; 8import java.util.ArrayList; 9 10import javax.servlet.RequestDispatcher; 11import javax.servlet.ServletException; 12import javax.servlet.http.HttpServlet; 13import javax.servlet.http.HttpServletRequest; 14import javax.servlet.http.HttpServletResponse; 15 16public class init extends HttpServlet { 17 private static final long serialVersionUID = 1L; 18 19 public init() { 20 super(); 21 22 } 23 24 protected void doGet(HttpServletRequest request, HttpServletResponse response) 25 throws ServletException, IOException { 26 //String driver = 27 //String url = 28 //String user = "postgres"; 29 //String pwd = 30 31 String sql = "Select * from DEPT order by d_no"; 32 Connection conn = null; 33 34 request.setCharacterEncoding("UTF-8"); 35 36 37 38 39 40 Class.forName(driver); 41 conn = DriverManager.getConnection(url, user, pwd); 42 Statement stmt = conn.createStatement(); 43 ResultSet rs = stmt.executeQuery(sql); 44 45 ArrayList<Dept> dept_list = new ArrayList<Dept>(); 46 while (rs.next()) { 47 String dept_no = rs.getString("D_NO"); 48 String dept_name = rs.getString("D_NAME"); 49 50 // 51 D bean = new Dept(); 52 bean.setDno(d_no); 53 bean.setDname(d_name); 54 // 55 d_list.add(bean); 56 } 57 // 58 59 request.setAttribute("depts", d_list); 60 RequestDispatcher rd = request.getRequestDispatcher("001.jsp"); 61 rd.forward(request, response); 62 63 64 65 } 66 67 } 68 69 protected void doPost(HttpServletRequest request, HttpServletResponse response) 70 throws ServletException, IOException { 71 72 doGet(request, response); 73 } 74}

###該当のソースコード(Class Dept)

lang

1package kanri; 2 3public class Dt{ 4 5 6private String m_no = ""; 7 8public String getDno() { 9 return this.m_no; 10 11} 12 13public void setDno(String dno) { 14 this.m_no = dno; 15 16} 17 18private String m_name = ""; 19 20public String getDname() { 21 return this.m_name; 22 23} 24 25public void setDname(String dname) { 26 this.m_name = dname; 27 28 29} 30 31 32} 33

###該当のソースコード(JSP)

lang

1 2<%@ page language="java" contentType="text/html; charset=UTF-8" 3 pageEncoding="UTF-8"%> 4 5<%@page import="java.util.ArrayList"%> 6<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 7<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 8 9 10<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 11<html> 12<head> 13<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 14<title>部署管理</title> 15</head> 16<body> 17 <form method="post" action="insert"> 18 <input type="hidden" name="fg" value="true"> 19 20 <h1>部署管理</h1> 21 22</div> 23 24<center> 25<table> 26 <tr> 27 28 <td>コード</td> 29 <td><input type="text" name="no" ></td> 30 <td width = 30> 31 <td><button type="submit" name="fg"> 登 録</button></td> 32 </tr> 33 34 35 </tr> 36 </table> 37</center> 38</form> 39<form method="post" action="Init"> 40<center> 41 <table border=1 height="300" width="350"> 42 43 <tr bgcolor="#4169e1"> 44 45 <th></th> 46 <th width="2">コード</th> 47 <th width="30">部署</th> 48 49 50 </table> 51 </div> 52 53</center> 54</form> 55</body> 56</html> 57

###補足情報(言語/FW/ツール等のバージョンなど)
initが初期表示のサーブレット
jspが画面表示用です。

javaのことがまだ全然理解できておらず、至らない点も多々ございます。
拙い説明で本当に申し訳ございませんが、宜しければどなたかご教授頂ければ幸いです。
宜しくお願い致します。

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

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

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

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

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

haru666

2017/05/16 01:25

コードを ``` で括りましょう。該当のソースコードに続くサンプルでも括ってあったはずです。読みやすい質問にしましょう。
ususio

2017/05/16 01:36

ご指摘頂きありがとうございました。編集してきました。
guest

回答2

0

web.xmlが書かれていないので確認はできませんが、

<form method="post" action="MyServlet_busyo_insert">

に対するサーブレットが未定義か、誤りなのではないでしょうか。

投稿2017/05/16 04:42

A-pZ

総合スコア12011

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

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

ususio

2017/05/16 04:58

ご回答頂きありがとうございます。 xmlファイルの方を確認してみたのですが、どこで定義がされているのか自分ではわからなかったため、 大体この辺かな…?と思った場所を貼らせて頂きますすみません…。 <servlet> <description></description> <display-name>MyServlet_busyo_init</display-name> <servlet-name>MyServlet_busyo_init</servlet-name> <servlet-class>seminar.MyServlet_busyo_init</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet_busyo_init</servlet-name> <url-pattern>/MyServlet_busyo_init</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>MyServlet_busyo_m_insert</display-name> <servlet-name>MyServlet_busyo_m_insert</servlet-name> <servlet-class>seminar.MyServlet_busyo_m_insert</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet_busyo_m_insert</servlet-name> <url-pattern>/MyServlet_busyo_m_insert</url-pattern> </servlet-mapping>
guest

0

ベストアンサー

formタグのaction="MyServlet_busyo_insert"の部分にある、
MyServlet_busyo_insertというパスが、MyServlet_busyo_insertというクラスに飛ぶように
サーブレットマッピングはしていますか?

投稿2017/05/16 03:57

root_jp

総合スコア4666

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

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

ususio

2017/05/16 04:56 編集

ご回答頂きありがとうございます。 XMLファイルの方を確認してみたところ、 <servlet> <description></description> <display-name>MyServlet_busyo_init</display-name> <servlet-name>MyServlet_busyo_init</servlet-name> <servlet-class>seminar.MyServlet_busyo_init</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet_busyo_init</servlet-name> <url-pattern>/MyServlet_busyo_init</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>MyServlet_busyo_m_insert</display-name> <servlet-name>MyServlet_busyo_m_insert</servlet-name> <servlet-class>seminar.MyServlet_busyo_m_insert</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet_busyo_m_insert</servlet-name> <url-pattern>/MyServlet_busyo_m_insert</url-pattern> </servlet-mapping> のようにマッピングされていました。自分ではMyServlet_busyo_insert のクラスにちゃんと飛べているか不安だったため、その部分だけソースコードを送らせて頂きましたすみません…
root_jp

2017/05/16 06:02

MyServlet_busyo_insert の定義とマッピングがありませんね。 追加してみたらどうですか?
ususio

2017/05/16 09:02

追加してみたところ、画面の方は無事表示されました! お力添え頂き本当にありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問