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

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

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

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

Java

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

servlet

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

受付中

ClassCastExceptionの発生と対処

RyoM
RyoM

総合スコア90

JSP

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

Java

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

servlet

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

2回答

0評価

0クリップ

29913閲覧

投稿2016/09/02 21:56

編集2022/01/12 10:55

お世話になります。
会員登録の更新部分を作っています。
一度目は更新できるのですが、連続して更新しようとすると
ClassCastExceptionの例外が発生してしまいます。
オブジェクトからのキャストミスの部分が分かりません。
もしお分かりの方がいらっしゃればご教授よろしくお願いいたします。
以下がソースです。

java

HTTPステータス 500 - java.lang.Integer cannot be cast to java.lang.String type 例外レポート メッセージ java.lang.Integer cannot be cast to java.lang.String 説明 The server encountered an internal error that prevented it from fulfilling this request. 例外 java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String update.UpdateDb.doPost(UpdateDb.java:42) javax.servlet.http.HttpServlet.service(HttpServlet.java:648) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) encoding.EncodingFilter.doFilter(EncodingFilter.java:26)

java

package update; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletConfig; 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 javax.servlet.http.HttpSession; import connect.ConnectMySql; @WebServlet("/UpdateDb") public class UpdateDb extends HttpServlet { private static final long serialVersionUID = 1L; protected PreparedStatement ps = null; protected Connection con = null; public void init(ServletConfig config) throws ServletException { // データベースへ接続 con= ConnectMySql.getConnection(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(true); String oldname =(String) session.getAttribute("name");//パラメータでユーザーIDをゲットする String oldpass =(String) session.getAttribute("pass");//パラメータでいれたパスワードをゲットする String newname = request.getParameter("user"); String newpass = request.getParameter("password"); String meruado = request.getParameter("address"); String denwa = request.getParameter("denwa"); String syokusyu = request.getParameter("syokugyo"); int ocupation = Integer.parseInt(syokusyu); try { con.setAutoCommit(false); String sql = "UPDATE PERSONALS SET USERID=?,PASSWORD=?," + "MAILADDRESS=?,PHONENUMBER=?,OCUPATIONID=? WHERE USERID=? && PASSWORD=?"; ps = con.prepareStatement(sql); ps.setString(1, newname); ps.setString(2, newpass); ps.setString(3, meruado); ps.setString(4, denwa); ps.setInt(5, ocupation); ps.setString(6, oldname); ps.setString(7, oldpass); int num = ps.executeUpdate(); // System.out.println(num); try { con.commit(); System.out.println("登録成功"); } catch (SQLException e) { con.rollback(); System.out.println("登録失敗:ロールバック実行"); e.printStackTrace(); } } catch(SQLException e) { throw new ServletException(e); } finally { if(ps != null) { try { ps.close(); } catch(SQLException ignore) {} } if(con != null) { try { con.close(); } catch(SQLException ignore) {} } } session.setAttribute("name", newname); session.setAttribute("pass", newpass); RequestDispatcher dis = request.getRequestDispatcher("/other/upfinish.jsp"); dis.forward(request, response); } public void destory() throws SQLException { ps.close(); con.close(); } }

追記
jspのソースも載せておきます。

java

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>会員情報変更ページ</title> <link rel="stylesheet" type="text/css" href="css/basic.css"> </head> <body> <H1>会員情報を変更します</H1> <FORM ACTION="../UpdateDb" method="post"> <H3>ユーザーIDの変更</H3> <INPUT type="text" name="user"> <H3>パスワードの変更</H3> <INPUT type="password" name="password" maxlength="8"> <H3>電話番号の変更</H3> <INPUT type="text" name="denwa"> <H3>メールアドレスの変更</H3> <INPUT type="text" name="address"> <H3>職業の変更</H3> <select name="syokugyo"> <option value="0">--</option> <option value="1">会社経営・自営</option> <option value="2">自営業</option> <option value="3">会社員(役員)</option> <option value="4">会社員(管理職)</option> <option value="5">会社員(一般社員)</option> <option value="6">契約社員・派遣社員</option> <option value="7">専門職(医師・弁護士など)</option> <option value="8">公務員</option> <option value="9">専業主婦・主夫・家事手伝い</option> <option value="10">学生</option> <option value="11">パート・アルバイト</option> <option value="12">その他</option> </select> <INPUT type="submit"> <INPUT type="reset"> </FORM> </body> </html>

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

JSP

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

Java

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

servlet

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