【问题标题】:description The requested resource is not available描述 请求的资源不可用
【发布时间】:2017-03-04 03:05:18
【问题描述】:

我在尝试运行代码时收到错误消息。 找不到问题出在哪里。 我可能会遗漏一些小细节,如果你能纠正它会很棒。

CalculateServlet

    import java.io.IOException;
    import javax.servlet.*;
    @WebServlet(name="CalculateServlet", urlPatterns={"/CalculateServlet"})
    public class CalculateServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

/**
 * Default constructor. 
 */
public CalculateServlet() {
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //assuming request as the object of the HttpServletRequest Class.
    //retrieving & storing the values from the textboxes into the String Variables.
    String n1 = request.getParameter("fnum");
    int num1 = Integer.parseInt(n1); //Converting String into Integer Variable
    String n2 = request.getParameter("snum");
    int num2 = Integer.parseInt(n2); int ans=0;

    //performing calculation according to the selection made from the Radio Buttons named "calc".
    if(request.getParameter("calc").equals("Add"))
    ans = num1+num2;
    if(request.getParameter("calc").equals("Sub"))
    ans = num1-num2;
    if(request.getParameter("calc").equals("Div"))
    ans = num1/num2;
    if(request.getParameter("calc").equals("Multi"))
    ans = num1*num2;

    //assuming response as the object of the HttpServletResponse Class.
    //displaying output to the user 
    response.getWriter().println(ans); 

    response.getWriter().append("Served at: ").append(request.getContextPath());
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
}}

索引.jsp

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <body>
        <form action="CalculateServlet">
   <input type="text" name="fnum"/>
   <br/>
   <input type="text" name="snum"/>
   <br/>
   Select Operation
   <br/>
   <input type="radio" name="calc" value="Add"/>Add
   <input type="radio" name="calc" value="Sub"/>Subtract
   <input type="radio" name="calc" value="Div"/>Divide
   <input type="radio" name="calc" value="Multi"/>Multiply
   <br/>
   <input type="submit" value="Calculate" name="submit"/>
</form>
    </body>
</html>

Output1

Directory Structure

【问题讨论】:

    标签: java jsp servlets


    【解决方案1】:

    web.xml 中的 URL 模式是

    <servlet-mapping>
        <servlet-name>CalculateServlet</servlet-name>
        <url-pattern>/CalculateServlet</url-pattern>
    </servlet-mapping>
    

    但是你的jsp提交给“计算”

    <form action="calculate">
    

    改成,

    <form action="CalculateServlet">
    

    【讨论】:

    • 我尝试了您建议的更改,但仍然没有成功
    • @onkarpatil。点击提交后您在浏览器中看到的网址是什么?
    • @onkarpatil。您能否也提供您看到的错误。
    • @onkarpatil。这似乎不对,即使将表单操作更改为CalculateServlet,URL 仍然指向/Calc/calculation。你能重建和重新部署吗?
    • 我一定会试试的
    【解决方案2】:

    看起来你很接近。

    看看这个帖子:

    <form action="/sampleServlet" giving me exception

    我认为您的问题是表单操作设置为 calculation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-29
      • 2015-05-26
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      相关资源
      最近更新 更多