前提・実現したいこと
eclipseを使用してログインの処理をしたいのですが、ログインボタンを押すと、
”HTTPのPOSTメソッドは、このURLではサポートされていません。”
となってしまい実行することができません。
よろしくお願いします。
修正箇所
・doGet処理が足りていないとの指摘を受けたので追記しましたが変わらず同じエラー内容が出ます
・@Overrideの追加
発生している問題・エラーメッセージ
HTTPのPOSTメソッドは、このURLではサポートされていません。
The specified HTTP method is not allowed for the requested resource.
該当のソースコード
Loginbefor.jsp
<%@page contentType="text/html" pageEncoding="UTF-8" session="false" %> <!DOCTYPE html> <html> <jsp:include page="header.jsp" flush="true" /> <body> <br> <div id="login"> <table width=25% border="0" cellspacing="0" cellpadding="3" id="loginform"> <tr class="sub_title1" align="center"> <b> ログイン入力 </b> </tr> </table> <form action="/BBS/LoginUser" method="post"> <table id="loginform"> <tr> <th>ID</th> <td><input type="text" name="id" /></td> <th></th> </tr> <tr> <th>パスワード</th> <td><input type="password" name="pass" /></td> </tr><br> <td><input type="submit" value="ログイン"></td> </table> </form> <% String error = (String)request.getAttribute("error"); if (error != null) { %> <p style="color:red; font-size: larger;"><%= error %></p> <% } %> <br> <hr> <li class="main_info_small"> ※ログインしてご利用いただくためには、<a href="/BBS/RegisterUser">ID登録</a>が必要です。 </li> <input type="hidden" name="KBN" value="login_user" /> <br> <a href="top.html">Topへ戻る</a> </div> </body> </html>
LoginUser.java
package LoginUserServlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class LoginUser extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public LoginUser() { super(); } @Override protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String id = request.getParameter("id"); String pass = request.getParameter("pass"); UserDao dao = new UserDao(); UserDto user = dao.findUser(id); boolean isLogin = (user != null && id.equals(user.getId()) && pass.equals(user.getPass())); HttpSession session = request.getSession(); session.setAttribute("isLogin", isLogin); if (isLogin) { request.setAttribute("name", user.getId()); request.getRequestDispatcher("/BBS/loginsuccess.jsp").forward(request, response); } else { request.setAttribute("error", "IDかパスワードが間違っています。\n再入力してください。"); request.getRequestDispatcher("/loginbefor.html").forward(request, response); } } }
UserDao.java
package LoginUserServlet; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class UserDao { private static Connection getConnection() { try { Class.forName("com.mysql.jdbc.Driver"); return DriverManager.getConnection("jdbc:mysql://localhost:3306/user","root", "ecosys"); } catch (Exception e) { throw new IllegalArgumentException(e); } } private static void allClose(PreparedStatement statement, Connection connection) { if (statement != null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } static Connection connection = null; static PreparedStatement statement = null; public UserDto findUser(String id) { UserDto user = new UserDto(); try { connection = getConnection(); statement = connection.prepareStatement("SELECT * FROM user WHERE id = ?"); statement.setString(1, id); ResultSet resultSet = statement.executeQuery(); if (!resultSet.next()) { return null; } user.setId(resultSet.getString("id")); user.setPass(resultSet.getString("pass")); } catch (SQLException e) { e.printStackTrace(); } finally { allClose(statement, connection); } return user; } }
UserDto.java
package LoginUserServlet; public class UserDto { private String id; private String pass; private String name; public String getId() { return id; } public String getPass() { return pass; } public String getName() { return name; } public void setId(String id) { this.id = id; } public void setPass(String pass) { this.pass = pass; } public void setName(String name) { this.name = name; } }
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>LoginUser</servlet-name> <servlet-class>LoginUserServlet.LoginUser</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginUser</servlet-name> <url-pattern>/LoginUser</url-pattern> </servlet-mapping> </web-app>
回答2件
あなたの回答
tips
プレビュー