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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

JSP

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

servlet

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

Q&A

解決済

1回答

1745閲覧

JSPからサーブレットの処理ができない

zanketsu

総合スコア0

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

JSP

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

servlet

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

0グッド

0クリップ

投稿2021/02/16 14:20

編集2021/02/17 13:30

前提・実現したいこと

ログインとショピングアプリをjavaで作る

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

HTTPステータス 404 - /Belfast/Control

l

該当のソースコード

Jsp

1#login.jsp 2<%@ page language="java" contentType="text/html; charset=UTF-8" 3 pageEncoding="UTF-8"%> 4<!DOCTYPE html> 5<html> 6<head> 7<meta charset="UTF-8"> 8<title>Insert title here</title> 9</head> 10 <h1>Login</h1> 11 <FORM method="POST" action="Control"> 12 UserName : <INPUT type="text" name="username"><br><br> 13 Password : <INPUT type="password" name="password"><br><br> 14 <INPUT type="submit" name="pagename" value="SEND"> 15 <INPUT type="reset" value="RESET"> 16 </FORM> 17</html>

Servlet

1//Control.java 2import java.io.IOException; 3 4import javax.servlet.RequestDispatcher; 5import javax.servlet.ServletException; 6import javax.servlet.http.HttpServlet; 7import javax.servlet.http.HttpServletRequest; 8import javax.servlet.http.HttpServletResponse; 9import javax.servlet.http.HttpSession; 10 11 12 13public class Control extends HttpServlet { 14 /** Handles the HTTP <code>GET</code> method. 15 * @param request servlet request 16 * @param response servlet response 17 */ 18 protected void doGet(HttpServletRequest request, HttpServletResponse response) 19 throws ServletException, IOException { 20 RequestDispatcher rd = null; 21 rd = getServletConfig().getServletContext().getRequestDispatcher("/login.jsp"); 22 rd.forward(request, response); 23 //processRequest(request, response); 24 } 25 26 /** Handles the HTTP <code>POST</code> method. 27 * @param request servlet request 28 * @param response servlet response 29 */ 30 protected void doPost(HttpServletRequest request, HttpServletResponse response) 31 throws ServletException, IOException { 32 if (request.getParameter("pagename").equals("SEND") == true) { 33 UserBean ub = null; 34 ub = new UserBean(); 35 36 String formun = request.getParameter("username"); 37 String formps = request.getParameter("password"); 38 ub.setaName(formun); 39 ub.setPassword(formps); 40 41 UserAuthBean uab = null; 42 uab = new UserAuthBean(); 43 44 HttpSession session = null; 45 RequestDispatcher rd = null; 46 if (uab.execute(ub) == true) { 47 //認証に成功 48 //セッションオブジェクトを作成 49 if (checkSession(request) == true) { 50 //セッションオブジェクトがある場合は獲得 51 session = request.getSession(false); 52 } else { 53 //セッションオブジェクトがない場合は新規作成 54 session = request.getSession(true); 55 } 56 //Beansをセッションオブジェクトに保存 57 session.setAttribute("userbeanses", ub); 58 59 60 rd = getServletConfig().getServletContext().getRequestDispatcher("/authok.jsp"); 61 } else { 62 //認証に失敗 63 rd = getServletConfig().getServletContext().getRequestDispatcher("/autherror.jsp"); 64 } 65 rd.forward(request, response); 66 } else { 67 String[] product = (String[]) request.getParameterValues("product"); 68 HttpSession session = request.getSession(false); 69 UserBean ub 70 = (UserBean) session.getAttribute("userbeanses"); 71 ub.setProduct(product); 72 73 // UserOrderBean uob = new UserOrderBean(); 74 //boolean beanResult = uob.execute(ub); 75 76 RequestDispatcher rd = null; 77 rd = getServletConfig().getServletContext().getRequestDispatcher("/order.jsp"); 78 rd.forward(request, response); 79 } 80 } 81 82 /** Returns a short description of the servlet. */ 83 public String getServletInfo() { 84 return "Short description"; 85 } 86 87 //セッションオブジェクトのチェックメソッド 88 public boolean checkSession(HttpServletRequest req) { 89 HttpSession session = req.getSession(false); 90 if (session != null) { 91 return true; 92 } else { 93 return false; 94 } 95 } 96} 97

class

1///UserOrderBean.java 2import mode.UserBean; 3 4public class UserOrderBean { 5 6 public UserOrderBean() { 7 8 } 9 10 public boolean execute(UserBean ub) { 11 String[] product = ub.getProduct(); 12 13 //FORM情報が入力されているかチェック 14 if (ub.getaName().equals("taro")==true && ub.getPassword().equals("taro")==true) { 15 return true; 16 //入力されていない場合 17 ub.setProduct(new String[0]); 18 return false; 19 } else { 20 //入力されている場合 21 return true; 22 } 23 } 24} 25 26 27 28 29 30

class

1 2import javax.servlet.http.HttpSession; 3import javax.servlet.jsp.JspWriter; 4import javax.servlet.jsp.tagext.TagSupport; 5 6public class OrderHandler extends TagSupport { 7 public int doEndTag() { 8 HttpSession session = pageContext.getSession(); 9 //String[] product = (String[])session.getAttribute("userbeanses"); 10 UserBean ub 11 = (UserBean) session.getAttribute("userbeanses"); 12 String[] product = ub.getProduct(); 13 14 JspWriter out = pageContext.getOut(); 15 16 try { 17 out.println("<TR><TD>Name</TD></TR>"); 18 19 for (int i = 0; i < product.length; i++) { 20 out.print("<TR><TD>"); 21 out.print(product[i]); 22 out.print("</TD></TR>"); 23 } 24 } catch (Exception e) { 25 } 26 return EVAL_PAGE; 27 } 28 29 /** Creates a new instance of OrderHandler */ 30 public OrderHandler() { 31 32 33} 34} 35

class

1//OrderHandier.java 2import javax.servlet.http.HttpSession; 3import javax.servlet.jsp.JspWriter; 4import javax.servlet.jsp.tagext.TagSupport; 5 6public class OrderHandler extends TagSupport { 7 public int doEndTag() { 8 HttpSession session = pageContext.getSession(); 9 //String[] product = (String[])session.getAttribute("userbeanses"); 10 UserBean ub 11 = (UserBean) session.getAttribute("userbeanses"); 12 String[] product = ub.getProduct(); 13 14 JspWriter out = pageContext.getOut(); 15 16 try { 17 out.println("<TR><TD>Name</TD></TR>"); 18 19 for (int i = 0; i < product.length; i++) { 20 out.print("<TR><TD>"); 21 out.print(product[i]); 22 out.print("</TD></TR>"); 23 } 24 } catch (Exception e) { 25 } 26 return EVAL_PAGE; 27 } 28 29 /** Creates a new instance of OrderHandler */ 30 public OrderHandler() { 31 32 33} 34}

xml

1 2<?xml version="1.0" encoding="UTF-8"?> 3<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= 5 "http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 6 <servlet> 7 <servlet-name>Control</servlet-name> 8 <servlet-class>webApplication27.Control</servlet-class> 9 </servlet> 10 <servlet-mapping> 11 <servlet-name>Control</servlet-name> 12 <url-pattern>/Control</url-pattern> 13 </servlet-mapping> 14 <jsp-config> 15 <taglib> 16 <taglib-uri>/OrderLibrary</taglib-uri> 17 <taglib-location>/WEB-INF/tlds/order.tld</taglib-location> 18 </taglib> 19 </jsp-config> 20 <session-config> 21 <session-timeout>30</session-timeout> 22 </session-config> 23 <welcome-file-list> 24 <welcome-file>index.jsp</welcome-file> 25 </welcome-file-list> 26</web-app> 27

試したこと

リクエストセッション 

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

参考にしたリンク先
JSPとサーブレットを利用した注文アプリケーションのサンプル ]

環境エクリプス javaEE TOMcat-8.0.39 エクリプス内のものを使用

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

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

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

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

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

m.ts10806

2021/02/16 14:56

コードやエラーはマークダウンのcode機能を利用してご提示ください。 https://teratail.com/questions/238564 あと404って言うほど原因は多くないです。 1個1個設定とリクエストの整合性見ていくしかないのでは。
YT0014

2021/02/16 23:07

web.xmlをご提示ください。また、アプリケーションサーバとそのバージョンもお願いします。Tomcatをお使いでしょうか?
YT0014

2021/02/17 14:26

Servlet(Control.java)にpackage宣言がないようですが、宣言されていないのでしょうか?宣言されているようなら、追記をお願いします。 宣言されていないようなら、web.xmlの servlet-class タグを以下のように変更してみてください。 <servlet-class>Control</servlet-class>
guest

回答1

0

自己解決

Servlet(Control.java)にpackage宣言がなかったので変更してみたところ
以下のように変更したら動きました。
<servlet-class>Control</servlet-class>
ご協力ありがとうございました。

投稿2021/02/18 14:07

zanketsu

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問