2015-12-09 78 views
1

美好的一天。我在JSP Web System中遇到了問題,並且正在尋求有關我的傳輸功能的幫助。Servlet + JSP(Netbeans):請求的資源不可用

基本上,傳輸按鈕就像一個停用按鈕,一旦我點擊,它就會將發送狀態(在我的SQLdb中名爲dsTransmit)從'掛起'更改爲'非活動'。我已經複製了我爲刪除所做的代碼,並進行了一些改動,這些改動都很完美。

但是,當我在傳輸按鈕上執行它時,它不會轉發數據進行更新。但是,它會發送此錯誤。

類型狀態報告,消息未找到,說明請求的資源不可用。

請注意,我使用的是Glassfish Server和Netbeans。

這裏是我的代碼

DataAccess.java

 public void transmit(int id){ 
 
     try { 
 
      String sql = "UPDATE DailySales SET transmit = 'approved' where dsId = ? "; 
 
      PreparedStatement ps = DBUtils.getPreparedStatement(sql); 
 
      ps.setInt(1, id); 
 
      ps.executeUpdate(); 
 
     } catch (ClassNotFoundException | SQLException ex) { 
 
      Logger.getLogger(DataAccess.class.getName()).log(Level.SEVERE, null, ex); 
 
     } 
 
    }

Transmit.java

/* 
 
* To change this license header, choose License Headers in Project Properties. 
 
* To change this template file, choose Tools | Templates 
 
* and open the template in the editor. 
 
*/ 
 

 
package servlet; 
 

 
import dao.DataAccess; 
 
import java.io.IOException; 
 
import java.io.PrintWriter; 
 
import javax.servlet.ServletException; 
 
import javax.servlet.http.HttpServlet; 
 
import javax.servlet.http.HttpServletRequest; 
 
import javax.servlet.http.HttpServletResponse; 
 

 
/** 
 
* 
 
* @author Thang 
 
*/ 
 
public class Transmit extends HttpServlet { 
 

 
    /** 
 
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> 
 
    * methods. 
 
    * 
 
    * @param request servlet request 
 
    * @param response servlet response 
 
    * @throws ServletException if a servlet-specific error occurs 
 
    * @throws IOException if an I/O error occurs 
 
    */ 
 
    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
 
      throws ServletException, IOException { 
 
     String idTemp = request.getParameter("id"); 
 
     int id = Integer.parseInt(idTemp); 
 
     DataAccess da = new DataAccess(); 
 
     da.transmit(id); 
 
     response.sendRedirect("/CRUD_News/AllPost"); 
 
    } 
 

 
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> 
 
    /** 
 
    * Handles the HTTP <code>GET</code> method. 
 
    * 
 
    * @param request servlet request 
 
    * @param response servlet response 
 
    * @throws ServletException if a servlet-specific error occurs 
 
    * @throws IOException if an I/O error occurs 
 
    */ 
 
    @Override 
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
 
      throws ServletException, IOException { 
 
     processRequest(request, response); 
 
    } 
 

 
    /** 
 
    * Handles the HTTP <code>POST</code> method. 
 
    * 
 
    * @param request servlet request 
 
    * @param response servlet response 
 
    * @throws ServletException if a servlet-specific error occurs 
 
    * @throws IOException if an I/O error occurs 
 
    */ 
 
    @Override 
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
 
      throws ServletException, IOException { 
 
     processRequest(request, response); 
 
    } 
 

 
    /** 
 
    * Returns a short description of the servlet. 
 
    * 
 
    * @return a String containing servlet description 
 
    */ 
 
    @Override 
 
    public String getServletInfo() { 
 
     return "Short description"; 
 
    }// </editor-fold> 
 

 
}

的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
 
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"> 
 
    <servlet> 
 
     <servlet-name>EditPost</servlet-name> 
 
     <servlet-class>servlet.EditPost</servlet-class> 
 
    </servlet> 
 
    <servlet> 
 
     <servlet-name>DeletePost</servlet-name> 
 
     <servlet-class>servlet.DeletePost</servlet-class> 
 
    </servlet> 
 
    <servlet> 
 
     <servlet-name>Transmit</servlet-name> 
 
     <servlet-class>servlet.Transmit</servlet-class> 
 
    </servlet>  
 
    <servlet-mapping> 
 
     <servlet-name>EditPost</servlet-name> 
 
     <url-pattern>/edit</url-pattern> 
 
    </servlet-mapping> 
 
    <servlet-mapping> 
 
     <servlet-name>DeletePost</servlet-name> 
 
     <url-pattern>/delete</url-pattern> 
 
    </servlet-mapping> 
 
    <servlet-mapping> 
 
     <servlet-name>Transmit</servlet-name> 
 
     <url-pattern>/transmit</url-pattern> 
 
    </servlet-mapping>  
 
    <session-config> 
 
     <session-timeout> 
 
      30 
 
     </session-timeout> 
 
    </session-config> 
 
</web-app>

AllPost.jsp(按鈕I用於發射功能)

    <center><a href="transmit?id=${p.id}" class="btn btn-default" onclick="return confirm('Are you sure you want to transmit this?');">Transmit</a></center>      

有人可以指出我在這裏失蹤了嗎?

+0

可以先檢查是否您的REQ。到達servlet或不?如果是的話再次檢查你是否需要。達到傳輸(id)?你可以先檢查一下,然後看看是什麼問題。 –

+0

你是什麼意思?對不起,我是這個初學者。我嘗試過調試,但構建成功。我不知道什麼是錯,其他功能都起作用。 –

+0

我的意思是把'syso'放到塊中,這樣你至少可以得到想法,那個請求。從哪裏到哪裏,哪裏發生異常。 –

回答

0

It works for me 你能展示你的項目嗎?

<a href="transmit?id=${p.id}> ==> <a href=" transmit.do?id=${p.id} 
 

 

 
    <servlet-mapping> 
 
     <servlet-name>Transmit</servlet-name> 
 
     <url-pattern>*.do</url-pattern> 
 
    </servlet-mapping>

+0

沒有工作。 :/ 什麼都沒發生。 –

+0

從來沒有工作,因爲它不是上述問題的解決方案。 –

+0

在一個側面說明,頁面不會告訴所請求的資源錯誤了再次重新啓動netbeans後,它只是有點刷新。 –