javaの勉強をしています。
サーブレットについて動作確認する過程でjava.lang.ClassNotFoundExceptionエラーが発生したため原因を調べたところ
クラスファイルを配置するフォルダがないため?という原因の候補を見つけました。
処理の挙動としては入力された文字を判定する簡単なログイン処理のようなものです。
index.jspより文字を入力して遷移した際に以下のエラーになってしまいます。
教材のビデオの中でeclipseにてプロジェクト作成する際に[ファイル]→[新規]→[動的Webプロジェクト]と選択しプロジェクトを作成しているのですが、私の環境で同じようにプロジェクトを作成してもビデオをフォルダ構成(2個目の画像)でプロジェクトを作成することができません。
まずは、この問題を解決しようと考えました。
eclipseのバージョン:Oxygen.2 Release (4.7.2)
私のフォルダ構成(jsp_testプロジェクトを見てください)
パッケージエクスプローラスクリーンショット
ビデオのフォルダ構成(デプロイメント~、JAX-WS~、Javaリソース等の階層が私のプロジェクトには作成されない)
動的プロジェクトを作成する際にeclipse側で何か設定する必要があるのでしょうか。
なぜ私のプロジェクトではJavaリソース等のフォルダが作成されないのかがわかりません。
どなたかご教授お願い致します。
追加情報
LoginServlet.java
1package info.searchman.lesson.jsp_servlet; 2 3import java.io.IOException; 4import java.io.PrintWriter; 5 6import javax.servlet.ServletException; 7import javax.servlet.http.HttpServlet; 8import javax.servlet.http.HttpServletRequest; 9import javax.servlet.http.HttpServletResponse; 10 11public class LoginServlet extends HttpServlet { 12 13 /** 14 * 15 */ 16 private static final long serialVersionUID = 1L; 17 18 protected void doPost(HttpServletRequest request, HttpServletResponse response) 19 throws ServletException, IOException { 20 21 // 変数の初期設定 22 String name = "ゲスト"; // 名前の初期値設定 23 String status = "ログイン失敗"; // ログインステータス 24 25 // 文字コードの初期設定 26 request.setCharacterEncoding("Windows-31J"); 27 28 // IDの取得 29 String id = request.getParameter("id"); 30 31 // パスワードの取得 32 String pass = request.getParameter("pass"); 33 34 // IDとパスワードのチェック 35 if (id.equals("search") && pass.equals("man")) { 36 status = "ログイン成功"; 37 name = "佐藤"; 38 } 39 40 // サーブレット自身で表示する 41 response.setContentType("text/html; charset=windows-31J"); 42 PrintWriter out = response.getWriter(); 43 out.println("<html>"); 44 out.println("<head>"); 45 out.println("<title></title>"); 46 out.println("</head>"); 47 out.println("<body><br><br>"); 48 out.println(status + "<br><br>こんにちは " + name + " さん"); 49 out.println("</body>"); 50 out.println("</html>"); 51 52 // リクエストにデータを追加する 53 // request.setAttribute("login", status); 54 // request.setAttribute("name", name); 55 56 // HttpSessionの作成とセッションにデータを追加する 57 // HttpSession session = request.getSession( true ); 58 // session.setAttribute( "name", name ); 59 60 // result.jspへ転送 61 // request.getRequestDispatcher("/result.jsp").forward(request, response); 62 63 } 64} 65
index.jsp
1<%@ page language="java" contentType="text/html;charset=Windows-31J" %> 2 3<html> 4<head> 5 <title></title> 6</head> 7<body> 8 9<% 10 String mongon = "IDとパスワードを入力してください。"; 11%> 12 13 14 15<%= mongon %><br> 16<br> 17 18<form action="/jsp_servlet/Login" method="POST"> 19 ID: <input type="text" name="id"> パスワード: <input type="text" name="pass"> 20 <br><br> 21 22 <input type="submit" value="submit"> 23</form> 24 25</body> 26</html>
web.xml
1<?xml version="1.0" encoding="ISO-8859-1"?> 2 3<!DOCTYPE web-app 4 PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 5 "http://java.sun.com/dtd/web-app_2_3.dtd"> 6 7<web-app> 8 9 <servlet> 10 <servlet-name>LoginServlet</servlet-name> 11 <servlet-class>info.searchman.lesson.jsp_servlet.LoginServlet</servlet-class> 12 </servlet> 13 <servlet-mapping> 14 <servlet-name>LoginServlet</servlet-name> 15 <url-pattern>/Login</url-pattern> 16 </servlet-mapping> 17</web-app> 18
回答2件
あなたの回答
tips
プレビュー