我编写了一个servlet Dispatch.java,通过index.jsp调用,index.jsp代码如下:
<%@ page language="java" contentType="text/html; charset=gb2312"%><html>
<head>
<title>MyStore</title>
</head>
<body>
<h1>Welcome to MyStore</h1>
<p>Click here to <a href="<%=response.encodeURL("dispatch?operation=browse") %>">browse the catalog</a>
</body>
</html>我用的是eclipse开发,Dispatch.java位于\WEB-INF\src\mystore.servlet包内web.xml中servlet设置如下:
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>mystore.servlet.Dispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/dispatch</url-pattern>
</servlet-mapping>运行后点击browse the catalog链接提示如下:
HTTP Status 404 - /dispatch--------------------------------------------------------------------------------type Status reportmessage /dispatchdescription The requested resource (/dispatch) is not available.是不是servlet设置错了??或者是请求错误?请高手帮忙解决下,谢谢
<%@ page language="java" contentType="text/html; charset=gb2312"%><html>
<head>
<title>MyStore</title>
</head>
<body>
<h1>Welcome to MyStore</h1>
<p>Click here to <a href="<%=response.encodeURL("dispatch?operation=browse") %>">browse the catalog</a>
</body>
</html>我用的是eclipse开发,Dispatch.java位于\WEB-INF\src\mystore.servlet包内web.xml中servlet设置如下:
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>mystore.servlet.Dispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/dispatch</url-pattern>
</servlet-mapping>运行后点击browse the catalog链接提示如下:
HTTP Status 404 - /dispatch--------------------------------------------------------------------------------type Status reportmessage /dispatchdescription The requested resource (/dispatch) is not available.是不是servlet设置错了??或者是请求错误?请高手帮忙解决下,谢谢
解决方案 »
- "Could not find resource sql-map-config.xml"错误
- __求教tomcat数据库连接池的配置,主要有如下几个地方想问下
- 怎样把表单中的一个文件上传到SQL server 2000数据库中?
- (急,在线等)请教一条SQL
- 请问在web中如何创建和页面相关的帮助即一个URL对应一个帮助页面?
- 在jsp页面中,怎么才能用EL表达式的值
- 请问我错在哪,该怎样解决这问题啊?(送100分)
- httpclient如何写出一个流,不是在url后面挂钩子
- javascript中怎么取得jsp中的值
- 框架解析问题
- ●●●●●困擾多天的一個比較郁悶的jsp查詢問題●急急●在線等
- 如何解决JDBC连接SQLserver2000数据库
我试试
package mystore.servlet;import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import mystore.javabeans.*;
public class Dispatcher extends HttpServlet{
private ServletContext sc;
public void init(ServletConfig config)throws ServletException{
super.init(config);
sc=this.getServletContext();
}
protected void service(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
response.setContentType("text/html");
String operation=request.getParameter("operation");
if(operation==null){
operation="";
}
if(operation.equalsIgnoreCase("browse")){
this.doBrowse(request,response);
return;
}
if(operation.equalsIgnoreCase("addItem")){
this.doAdd(request,response);
return;
}
if(operation.equalsIgnoreCase("removeItem")){
this.doRemove(request, response);
return;
}
if(operation.equalsIgnoreCase("removeAll")){
this.doRemoveAll(request, response);
return;
}
if(operation.equalsIgnoreCase("doUnKnown")){
this.doUnknown(request, response);
return;
} }
private void doBrowse(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
RequestDispatcher rd=sc.getRequestDispatcher("/browse.jsp");
rd.forward(request, response);
}
private void doAdd(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
HttpSession session=request.getSession();
Hashtable cart=(Hashtable)session.getAttribute("shoppingcart");
if(cart==null){
cart=new Hashtable();
session.setAttribute("shoppingcart", cart);
}
String itemSku=request.getParameter("sku");
Catalog cat=new Catalog();
ItemInfo item=cat.getItem(itemSku);
cart.put(itemSku, item);
doBrowse(request,response);
}
private void doRemove(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
HttpSession session=request.getSession();
Hashtable cart=(Hashtable)session.getAttribute("shoppingcart");
if(cart==null){
cart=new Hashtable();
session.setAttribute("shoppingcart", cart);
}
String itemSku=request.getParameter("sku");
cart.remove(itemSku);
doBrowse(request,response);
}
private void doRemoveAll(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
HttpSession session=request.getSession();
session.setAttribute("shoppingcart", new Hashtable());
doBrowse(request,response);
}
private void doUnknown(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
Exception e=new Exception("The operation is invalid!");
RequestDispatcher rd=sc.getRequestDispatcher("/error.jsp");
request.setAttribute("javax.servlet.jsp.jspException",e);
rd.forward(request, response);
}
}
一个是web-app打成了web-add
另一个是url-pattern里那个dispatch打成了disptch.
下面是这段的正确代码.
我试了,运行没问题了.<web-app>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>mystore.servlet.Dispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/dispatch</url-pattern>
</servlet-mapping>
</web-app>
我没有用eclipse,我是在Tomcat中做的测试,把你的应用放到webapps目录下.对了,还把目录名改了一下,Mystore改成mystore,这样就和包名大小写一致了.