2017-12-19 8 views
0

私はいくつかのコードを持つSongサーブレットを持っていて、そのリクエストをsongList.jspに送信します。これにより、曲のタイトルがページにリストされます。これはうまくいきます。しかし、その後、songList.jspに私は、各曲のURLを定義しますが、URLをクリックしたときにそれが表示されている:問題がどこにあるサーブレット受信パラメータ - ステータス404

HTTP Status 404 – Not Found 

Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists. 

あなたは知っていますか?

ソングサーブレット

@WebServlet(name ="Song", urlPatterns = {"/Song"}) 
// some code 
request.setAttribute("result", result); 
     // some code then send the request 
     RequestDispatcher view=request.getRequestDispatcher("songList.jsp"); 
     view.forward(request,response);  

// songList.jsp

ページに歌を示すイムとそのウォーキングOK

<c:forEach items="${result}" var="item" varStatus="status"> 

    <a href="/SongPage?name=${item[0].replace(" ","+")}&id=${item[1]}">${item[0]}</a> 
    </h4> 
<p class="card-text">${item[2]}</p> 

</c:forEach> 

このリンクに行く必要があります曲に関する情報を表示するページで、次の形式になります。

"http://localhost:8080/SongPage?name=Achtung&id=70" 

しかし、クリックすると404エラーが表示されます。

そして私はSongPageサーブレットを持っている:

@WebServlet(name ="/SongPage", urlPatterns = {"/SongPage/name/*/id/*"}) 
public class SongPage extends HttpServlet { 

public void init(){ 

System.out.println("Song Servlet"); 
} 
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

} 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
String name = request.getParameter("name").replace("+"," "); 
String id = request.getParameter("id"); 
QueryManager qm = new QueryManager(); 
ArrayList<ArrayList<String>> result = qm.getSongInfo(name, id); 
qm.closeConnections(); 
ArrayList<String> songInfo = result.get(0); 


    request.setAttribute("result", songInfo); 
    RequestDispatcher view=request.getRequestDispatcher("songPage.jsp"); 
    view.forward(request,response); 
    } 

その後、私はsongPage.jspを持っていますが、問題のためには重要ではありません。

答えて

2

実際には404である必要があります。@WebServlet(name ="/SongPage", urlPatterns = {"/SongPage/name/*/id/*"}) あなたのURLを上記の&のパターンと比較してください。http://localhost:8080/SongPage?name=Achtung&id=70。私はGETがあなたがそのポイントを実現するパラメータをどのように送るのかについての基本的な考え方を持っています。 ?name=Achtung&id=70は、GETリクエストのパラメータに属します。

てみ

+0

おかげ@WebServlet(name ="/SongPage", urlPatterns = {"/SongPage"})で、最初私はそのような使用が、それは404エラーが表示されますので、私は持つソリューションとテストを探していた{「/ SongPage /名前/ */ID/*」})が、また、動作しません。 – OzzyW

+0

@OzzyW {"/ SongPage/name/*/id/*"}は完全に間違っています。web.xmlサーブレットマッピングをチェックしましたか? なぜ '@ Override'を入れないのでしょうか? – GrootC

+0

あなたの答えをありがとう。 web.xmlでは、私はマッピングがありません。私はurlPatternsを使用して、同じ権利ですか?そして、どの部分に@override? – OzzyW

関連する問題