Java,MySQLを用いてログイン画面の実装をしようとしています。(のちにajax実装予定)
DBにサンプルデータを入れてログインが正常に行われるか試している段階ですが、
エラーの原因がわからず時間を食ってしまっているので質問するに至りました。
説明の不足点があれば申し訳ございませんが言っていただければ随時追記いたします。
環境:
Windows10,
jdk1.8.0_181,
EclipsePhoton(最新),
tomcat7.0,
ログインボタンを押すとこのようなエラーが出てしまいます。これの原因がわかりません。
Error
1Type ステータスレポート 2 3メッセージ /project/UserLoginServlet 4 5説明 The origin server did not find a current representation for the target resource or is not willing to disclose that one exists. 6
また、UserLoginServletを手動コンパイルしようとすると
Command
1C:\Users\ユーザ名\workspase\projectcom\src\projectpackage>javac -encoding utf-8 -classpath "C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib\servlet-api.jar" UserLoginServlet.java 2UserLoginServlet.java:38: エラー: シンボルを見つけられません 3 Dao dao = new Dao(); 4 ^ 5 シンボル: クラス Dao 6 場所: クラス UserLoginServlet 7UserLoginServlet.java:38: エラー: シンボルを見つけられません 8 Dao dao = new Dao(); 9 ^ 10 シンボル: クラス Dao 11 場所: クラス UserLoginServlet 12UserLoginServlet.java:39: エラー: シンボルを見つけられません 13 Dto user = dao.findUser(id); 14 ^ 15 シンボル: クラス Dto 16 場所: クラス UserLoginServlet 17エラー3個
となります。
以下各ファイルです。
loginJSP
1<form action="./UserLoginServlet" method="post"> 2 <div class="form-group inputs"> 3 <table> 4 <tbody> 5 <tr><td><input name="id" class="form-control" type="text" id="id" placeholder="username"></td></tr> 6 7 <tr><td><input type="password" name="password"class="form-control" id="password" placeholder="password"></td></tr> 8 9 <tr><td><button type="submit" class="btn btn-primary" onclick="loginajax"><font color="#FFFFFF">ログイン</font></button></td></tr> 10 </tbody> 11 </table> 12 </div> 13 </form>
UserLoginServlet
1package projectpackage; 2 3import java.io.IOException; 4 5import javax.servlet.ServletException; 6import javax.servlet.annotation.WebServlet; 7import javax.servlet.http.HttpServlet; 8import javax.servlet.http.HttpServletRequest; 9import javax.servlet.http.HttpServletResponse; 10import javax.servlet.http.HttpSession; 11 12 13@WebServlet("/UserLoginServlet") 14public class UserLoginServlet extends HttpServlet{ 15 private static final long serialVersionUID = 1L; 16 17 /** 18 * @see HttpServlet#HttpServlet() 19 */ 20 public UserLoginServlet() { 21 super(); 22 } 23 24 /** 25 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 26 */ 27 @Override 28 public void doPost(HttpServletRequest request, HttpServletResponse response) 29 throws ServletException, IOException { 30 request.setCharacterEncoding("UTF-8"); 31 32 33 34 35 String id = request.getParameter("id"); 36 String password = request.getParameter("password"); 37 38 Dao dao = new Dao(); 39 Dto user = dao.findUser(id); 40 41 42 43 boolean isLogin = (user != null && password.equals(user.getPassword())); 44 HttpSession session = request.getSession(); 45 session.setAttribute("isLogin", isLogin); 46 47 48 if (isLogin) { 49 request.setAttribute("username", user.getid()); 50 request.getRequestDispatcher("/top.jsp").forward(request, response); 51 } else { 52 request.setAttribute("error", "IDかパスワードが間違っています。\n再入力してください。"); 53 request.getRequestDispatcher("/login.jsp").forward(request, response); 54 } 55 56 57 } 58 59 60}
Dao
1package projectpackage; 2 3import java.sql.Connection; 4import java.sql.DriverManager; 5import java.sql.ResultSet; 6import java.sql.SQLException; 7import java.sql.Statement; 8 9public class Dao { 10 11 private static Connection getConnection() { 12 13 String url = "jdbc:mysql://localhost/userdb?" + "serverTimezone=JST"; 14 String user = "root"; 15 String password = "root"; 16 17 try { 18 19 Class.forName("com.mysql.jdbc.Driver"); 20 return DriverManager.getConnection(url, user, password); 21 22 } catch (Exception e) { 23 throw new IllegalArgumentException(e); 24 } 25 } 26 27 static Connection connection = null; 28 29 30 public Dto findUser(String id) { 31 Dto user = new Dto(); 32 33 try { 34 connection = getConnection(); 35 36 37 Statement statement = connection.createStatement(); 38 String sql="select * from userinf where id="+id; 39 40 ResultSet resultSet = statement.executeQuery(sql); 41 42 while (resultSet.next()) { 43 44 user.setid(resultSet.getString("id")); 45 user.setPassword(resultSet.getString("password")); 46 47 } 48 49 } catch (SQLException e) { 50 e.printStackTrace(); 51 } 52 return user; 53 54 } 55
Dto
1package projectpackage; 2 3 4public class Dto{ 5 private String id; 6 private String password; 7 8 public String getid() { 9 return id; 10 } 11 public String getPassword() { 12 return password; 13 } 14 15 public void setid(String id) { 16 this.id = id; 17 } 18 public void setPassword(String password) { 19 this.password = password; 20 } 21 22} 23
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/08/13 08:04
退会済みユーザー
2018/08/13 08:06