昨天我在远程服务器上使用java servlet编程时遇到了一个问题。
我们的任务是构建一个简单的购物车,用户可以通过键入名称并单击"submit“来添加商品,然后servlet将被调用并显示所购买的商品。
在我对它进行编码之后,服务器告诉我“请求的资源()不可用”的错误。每次都是这样。我搜索并尝试了我能找到的所有方法,但仍然不起作用。
代码如下:
html(/~usr/public_html/market.html.html)
<html>
<head>
<title>Online Shopping</title>
</head>
<body>
<h1>Online Shopping</h1>
Welcome to the online market!<br>
<br>
Please input the item you want to buy:<br>
<form action="http://localhost:8080/~usr/cart" method="get">
<input type="text" name="item"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>web.xml(/~usr/public_html/WEB-INF/web.xml)
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>cart</servlet-name>
<servlet-class>cart</servlet-class>
<servlet-mapping>
<servlet-name>cart</servlet-name>
<url-pattern>/cart</url-pattern>
</servlet-mapping>
</web-app>Java代码(编译并放入/~usr/public_html/WEB-INF/classes/cart.class)
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.io.*;
public class cart extends HttpServlet
{
public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{
res.setContentType("text/html");
PrintWriter out = res.getWriter();
HttpSession session = req.getSession(true);
//get the previous number of items in cart. If none, creat it and initialize to zero
Integer count = (Integer)session.getAttribute("count");
if(count == null)
count = new Integer(0);
//declare a string reference to get the new added item, if it's null, don't add it
String[] item_name;
item_name = req.getParameterValues("item");
if(item_name != null)
{
count ++;
session.setAttribute("count",count);
session.setAttribute("items"+count,item_name[0]);
}
out.println("<html>");
out.println("<head>");
out.println("<title>Items in Shopping Cart</title>");
out.println("</head>");
out.println("<body>");
out.println("New item successfully added to shopping cart.<br>");
out.println("Your cart contains X items.<br><br>");
out.println("<center><h1>The items you purchased:</h1>");
for(int i=1; i<=count; i++)
{
String goods = (String)session.getAttribute("items"+i);
out.println("Item #"+i+": "+goods+"<br>");
}
out.println("</center></body>");
out.println("</html>");
out.close();
}
}Tomcat和服务器是由教授预先配置的,我只是遵循了将这些文件放在哪里的规则。
发布于 2013-11-18 23:10:21
实际操作中不需要完整路径,请在下面替换
<form action="http://localhost:8080/~usr/cart" method="get">如下所示
<form action="cart" method="get">发布于 2013-11-19 14:27:26
该项目部署正确吗?能帮我查一下服务器日志吗?并检查war是否已解压到webapps文件夹。
https://stackoverflow.com/questions/20050849
复制相似问题