みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

サーブレットに関して

ポスグレのデータベースをイクリプスと連携させようとしています。
現状は接続の確認として下記Connect13.javaを実行し接続確認をしています。
しかし、405が表示されてしまい接続が上手くいきません。
どこが間違っているのか教えて頂きたいです。
下記が現在のスペックです。
OS:Windows
バージョン 10
Eclipse 4.0
※ソースコードは------で分けて今回はここに記載しています。
よろしくお願いいたします。

Connect13.java

package jp.co.sss.dao;

import java.io.IOException;
import java.sql.Connection;

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.dao.DBManager;


@WebServlet("/connect13")
public class Connect13 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Connection con = null;
con = DBManager.getConnection();
if(con !=null){request.setAttribute("message","接続に成功しました。");
}
DBManager.close(con);
request.getRequestDispatcher("/jsp/sample13/pizza_result2.jsp").forward(request, response);
}
}
-----------------------------------------------------------------------------------------------------------------------
DBManager.java

package jp.co.sss.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class DBManager {
public static Connection getConnection(){
String url="jdbc:postgresql://localhost:5432/postgres";
String user = "postgres";
String password = "reds1113";

try{
Class.forName("org.postgresql.Driver");
Connection con = DriverManager.getConnection(url,user,password);////urlの指定のみ
return con;
}catch (Exception e){
throw new IllegalStateException(e);
}
}
public static void close(Connection con){
if (con !=null){
try{
con.close();
}catch (SQLException e){
e.printStackTrace();
}
}
}
public static void close(PreparedStatement ps, Connection con){
if (ps !=null) {
try {
ps.close();
}catch (SQLException e){
e.printStackTrace();
}
}
if (con != null){
try {
ps.close();
}catch (SQLException e){
e.printStackTrace();
}
}
}
}
-----------------------------------------------------------------------------------------------------------------------
pizza_result.jsp

<%@ 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>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>シェアードピザ</title>
</head>
<body>
<article class ="main">
<h2>${message}</h2>
<form action="<%=request.getContextPath()%>/connect13"method="post">
<input type="submit" value="接続画面に戻る"/>
</form>
</article>
</body>
</html>

投稿日時 - 2019-06-25 15:56:14

QNo.9629081

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

405ということは

(1)どこかメソッドで受け渡しの際、「GET」「POST」が統一されていない可能性。
(GETで送ったのにPOSTで受け取ってる、逆もまた然り)

(2)「web.xml」にある「web-resource-collection 」-「http-method」の要素で"GET"しか受け付けないように設定になっている。

というのが主な原因だと思うのですが、
ぱっと見て、今気になったのは「pizza_result.jsp」の

<form action="<%=request.getContextPath()%>/connect13"method="post">
 ↓
(略)/connect13" method="post">

ここの半角スペースがないので、ひとまずそこを直してみたらどうでしょうか?

投稿日時 - 2019-06-26 17:48:54

あなたにオススメの質問