servlet接收参数 - 状态404 [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet接收参数 - 状态404 [重复]相关的知识,希望对你有一定的参考价值。

我有一个包含一些代码的Song servlet,然后将请求发送到songList.jsp,这样歌曲的标题就会列在页面中。这工作正常。但是,在songList.jsp中,我为每首歌曲定义了一个网址,但是当点击网址时,它会出现:

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.

你知道问题出在哪里吗?

宋Servlet

@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

我在页面中显示了这首歌,并且正在调整它

<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 servlet:

@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但不应该对这个问题很重要。

答案

确实它应该是404.@WebServlet(name ="/SongPage", urlPatterns = {"/SongPage/name/*/id/*"})比较您上面的urlPatterns和你的链接“http://localhost:8080/SongPage?name=Achtung&id=70”。我有基本的想法,关于GET如何发送参数,你会意识到这一点。 ?name=Achtung&id=70belongs到GET请求的参数。

尝试@WebServlet(name ="/SongPage", urlPatterns = {"/SongPage"})

以上是关于servlet接收参数 - 状态404 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

http状态404 - 在jsp中找不到,Tomcat服务器上的servlet [重复]

Java Servlet,http状态404,请求的资源不可用[重复]

Tomcat错误HTTP状态[404] - [未找到] [重复]

HTTP 状态 404 – 未找到!!!!或有时 Http 500 [重复]

找不到java servlet 404 [重复]

将表单提交到 servlet 时出现 404 错误 [重复]