servlet 不能访问的问题

daishunchao 发布于 2011/04/21 13:47
阅读 2K+
收藏 1

我用Eclipse创建了一个Servlet.

Web.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.servlet.MyServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/My</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

但是我在地址栏输入http://localhost:8080/Servlet/My为什么不行呀

我在Server.xml配置如下

<Context path="/Servlet" docBase="E:\MyEclipse\Servlet" debug="0" reloaded="true"/>

地址栏输入是有项目的。

我看classes里面也编译了一个MyServlet.class文件

加载中
0
小编辑
小编辑

浏览器是什么错误信息?

到tomcat去看看错误日志提示什么内容

0
daishunchao
daishunchao

引用来自#2楼“小编辑”的帖子

浏览器是什么错误信息?

到tomcat去看看错误日志提示什么内容

 404错误

0
红薯
红薯

404 说明 servlet 没起效,要看看是不是有什么异常在 Tomcat 日志里

0
daishunchao
daishunchao

谢谢红薯大哥和另一外朋友,我会常来您的网站学习的,祝越办越好!!!请多多指教!!!

0
红薯
红薯

引用来自#5楼“daishunchao”的帖子

谢谢红薯大哥和另一外朋友,我会常来您的网站学习的,祝越办越好!!!请多多指教!!!

啥意思啊?解决了?怎么解决的?什么问题呢

0
daishunchao
daishunchao

引用来自#6楼“红薯”的帖子

引用来自#5楼“daishunchao”的帖子

谢谢红薯大哥和另一外朋友,我会常来您的网站学习的,祝越办越好!!!请多多指教!!!

啥意思啊?解决了?怎么解决的?什么问题呢

 红薯大哥:是这样子的,我手动配置了一个,行了,web.xml里配置和项目里WEB-INF里的lib文件夹也放了servlet-api.java

我发现MyServlet.java下面doGet方法如果不写就会报错

public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  out
    .println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
  out.println("<HTML>");
  out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
  out.println("  <BODY>");
  out.print("    This is ");
  out.print(this.getClass());
  out.println(", using the GET method");
  out.println("  </BODY>");
  out.println("</HTML>");
  out.flush();
  out.close();
 }

错误是:

type Status report

message HTTP method GET is not supported by this URL

description The specified HTTP method is not allowed for the requested resource (HTTP method GET is not supported by this URL

0
daishunchao
daishunchao

如果写上去之后就行了,我的地址栏输入的是:http://localhost:8080/myapps/My

为什么成功后显示的页面是:This is class com.MyServlet, using the GET method

请问为什么这样子呢

0
红薯
红薯

引用来自#8楼“daishunchao”的帖子

如果写上去之后就行了,我的地址栏输入的是:http://localhost:8080/myapps/My

为什么成功后显示的页面是:This is class com.MyServlet, using the GET method

请问为什么这样子呢

当然啦,要么写 service 方法,要么写 doXxxx 方法,否则就是 405 错误

0
daishunchao
daishunchao

引用来自#9楼“红薯”的帖子

引用来自#8楼“daishunchao”的帖子

如果写上去之后就行了,我的地址栏输入的是:http://localhost:8080/myapps/My

为什么成功后显示的页面是:This is class com.MyServlet, using the GET method

请问为什么这样子呢

当然啦,要么写 service 方法,要么写 doXxxx 方法,否则就是 405 错误

 可是我写了doPost()方法啦,doGet()方法没写就报错呀,写了就不会

0
红薯
红薯

doPost 必须用 POST 方法调用,你直接输入网站是 GET 方法,调用 doGet 方法

你要去恶补一下 HTTP 协议。

返回顶部
顶部