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

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

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

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

Java

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

Q&A

1回答

2533閲覧

社員を登録する際にエラーが出てしまいます

Ryo1504

総合スコア8

JSP

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

Java

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

0グッド

0クリップ

投稿2019/07/29 06:03

編集2019/07/29 06:21

私は、JSPとサーブレットで社員を登録するシステムを作っています。
社員登録確認画面まではいくのですが、社員完了画面にいく際に、500エラーが発生してしまいます。
コンソールで原因を調べてみると、EmployeeDAOのps.setInt(7, employee.getDeptId());
というコードでエラーが出ていました。
実現したいことは、社員完了画面までいって社員登録ができていることです。

JSP(登録入力)です。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>社員管理システム</title> </head> <body> <h3>社員登録入力画面</h3> <div class="update"> <p class="error">${errMessage}</p> <form method="post" action="/servlet_crud//Check" method="post"> <div class="form"> <div class="label">パスワード:</div> <div class="input"> <input type="password" name="empPass" /> </div> </div> <div class="form"> <div class="label">社員名:</div> <div class="input"> <input type="text" name="empName" /> </div> </div> <div class="form"> <div class="label">性別:</div> <div class="input"> <input type="radio" name="gender" value="1" />男性&nbsp; <input type="radio" name="gender" value="2" />女性 </div> </div> <div class="form"> <div class="label">住所:</div> <div class="input"> <input type="text" name="address" /> </div> </div> <div class="form"> <div class="label">生年月日:</div> <div class="input"> <input type="text" name="birthday"/>(YYYY/MM/DD) </div> </div> <div class="form"> <div class="label">権限:</div> <div class="input"> <input type="radio" name="authority" value="1" />一般&nbsp; <input type="radio" name="authority" value="2" />管理者 </div> </div> <div class="form"> <div class="label">部署名:</div> <div class="input"> <select name="deptId"> <option value="1">営業部</option> <option value="2">経理部</option> <option value="3">総務部</option> </select> </div> </div> <div class="form"> <div class="label"></div> <div class="input"> <input type="submit" value="登録" /> </div> </div> </form> <form action="../../select/list.jsp"> <div class="form"> <div class="label"></div> <div class="input"> <input type="submit" value="戻る" /> </div> </div> </form> </div> </div> </body> </html>

servlet(Check)です。

package jp.co.sss.servlet.regist; import java.io.IOException; import java.sql.SQLException; 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 jp.co.sss.crud.bean.Department; import jp.co.sss.crud.bean.Employee; import jp.co.sss.crud.db.DepartmentDAO; @WebServlet("/Check") public class Check extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String empPass = request.getParameter("empPass"); String empName = request.getParameter("empName"); String gender = request.getParameter("gender"); String address = request.getParameter("address"); String birthday = request.getParameter("birthday"); String authority = request.getParameter("authority"); String deptIdstr = "1"; int deptId = Integer.parseInt(deptIdstr); Department department = null; try { department = DepartmentDAO.findByDepartment(deptId); } catch (SQLException e) { throw new ServletException(e); } Employee employee = new Employee(); employee.setEmpPass(empPass); employee.setEmpName(empName); employee.setGender(gender); employee.setAddress(address); employee.setBirthday(birthday); employee.setAuthority(authority); employee.setDepartment(department); request.setAttribute("employee", employee); request.getRequestDispatcher("/jsp/sample01/regist_check.jsp").forward(request, response); } } /** * 社員を登録 * * @return 社員登録 * @throws SQLException * データベース操作失敗時に送出 */ public static void insert(Employee employee) { Connection con = null; PreparedStatement ps = null; try { con = DBManager.getConnection(); ps = con.prepareStatement("INSERT INTO EMPLOYEE(EMP_PASS,EMP_NAME," + "GENDER,ADDRESS,BIRTHDAY,AUTHORITY,DEPT_ID)VALUES(?, ?, ?, ?, ?, ?, ?)"); ps.setString(1, employee.getEmpPass()); ps.setString(2, employee.getEmpName()); ps.setString(3, employee.getGender()); ps.setString(4, employee.getAddress()); ps.setString(5, employee.getBirthday()); ps.setString(6, employee.getAuthority()); ps.setInt(7, employee.getDeptId()); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { DBManager.close(ps, con); } }

DepartmentDAO

package jp.co.sss.crud.db; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import jp.co.sss.crud.bean.Department; public class DepartmentDAO { /** * 部署情報を部署IDで検索 * * @param genreId * 部署ID * @return 部署情報 * @throws SQLException * データベース操作失敗時に送出 */ public static Department findByDepartment(int deptId) throws SQLException { Department department = null; Connection connection = DBManager.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM DEPARTMENT WHERE DEPT_ID = ?"); preparedStatement.setInt(1, deptId); ResultSet resultSet = preparedStatement.executeQuery(); if (resultSet.next()) { department = new Department(); department.setDeptId(resultSet.getInt("dept_id")); department.setDeptName(resultSet.getString("dept_name")); } DBManager.close(preparedStatement, connection); return department; } }

Departmentのbean

package jp.co.sss.crud.bean; /** * 部署情報Bean * * @author system_shared */ public class Department { /** 部署ID */ private int deptId; /** 部署名 */ private String deptName; /** * 部署IDを取得 * * @return 部門ID */ public int getDeptId() { return deptId; } /** * 部門IDを保存 * * @param deptId * 部門ID */ public void setDeptId(int deptId) { this.deptId = deptId; } /** * 部門を取得 * * @return 部門名 */ public String getDeptName() { return deptName; } /** * 部門名を保存 * * @param deptName * 部門名 */ public void setDeptName(String deptName) { this.deptName = deptName; } }

HTTPステータス500-というエラーが起き、説明に、The server encountered an internal error that prevented it from fulfilling this request.というのが表示されています。

ps.setInt(7, employee.getDeptId());のコードを消すと社員完了画面まではいくのですが、社員登録はされませんでした。
intの宣言に間違いがないか確認したり、デバックで調べたりしたのですが、解決できなかったので、アドバイス等頂けると大変助かります。
ソースコードが多く、大変ご迷惑だと思いますが、宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

過去に同様な質問を複数回されてるようですが、そこでの回答の結果はどうだったんでしょうか。
そこらへんを無視し、質疑をほったらかしたままでこのような質問を立てるのはどうかとおもいますが。

投稿2019/07/29 06:14

y_waiwai

総合スコア87749

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

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

Ryo1504

2019/07/29 06:24

すみません。 過去のもので修正したいところが多くあったので、改めて質問致しました。
m.ts10806

2019/07/29 06:27

修正すれば良い話です。
y_waiwai

2019/07/29 06:28

なら、その過去の質問を自己解決でも何でもして解決済みにしときましょうよ。 また、過去回答でどう修正してその結果どうなったか、ぐらいは質問にかきましょう。
Ryo1504

2019/07/29 06:29

修正の仕方が分からず、改めて質問致しました。 大変申し訳ございません。
m.ts10806

2019/07/29 06:30

解決してないのに解決済みにされても回答した者としては困りますけどね。 違う人に同じ回答するのもそこそこ面倒なのに同じ人に同じ回答することになると、更に面倒です。
Ryo1504

2019/07/29 06:32

大変申し訳ございません。 以後、気をつけます。
m.ts10806

2019/07/29 06:36

今回の質問編集されているようですし、 この質問は運営に削除依頼されたほうが良いと思います。 そこそこ進んでいる未解決の前回質問を放置したままこちらを進めるのは賢明ではありません。 ※本来は質問から直接削除依頼できるのですが、回答がついてしまっているので「削除ポリシー」に則り直接削除依頼ができません。運営に「質問を編集すべきところ、新しく投稿してしまったため」とかで問い合わせを送ってください。
Ryo1504

2019/07/29 06:38

分かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問