ElasticForce 发表于 2019-10-21 21:29

Servlet入门求助

本帖最后由 ElasticForce 于 2019-11-24 13:36 编辑

这学期学习了java框架的知识
然后尝试写了个Servlet的小程序
但是怎么改,打开都是404-Not Found,想让大佬们看看是哪里除了问题
文件目录:

MyStudentInfo.java
package com.elastic.student;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Servlet implementation class MyStudentInfo
*/
@WebServlet("/MyStudentInfo")
public class MyStudentInfo extends HttpServlet {
      private static final long serialVersionUID = 1L;
      
    /**
   * @see HttpServlet#HttpServlet()
   */
    public MyStudentInfo() {
      super();
      // TODO Auto-generated constructor stub
    }

      /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                // TODO Auto-generated method stub
                response.setContentType("text/html");
                PrintWriter out = response.getWriter();
                out.println("为什么不行啊?");
      }

      /**
         * @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);
      }

}

web.xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
      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">
<servlet>
   <servlet-name>Student</servlet-name>
    <servlet-class>com.elastic.student.MyStudentInfo</servlet-class>
</servlet>
<servlet-mapping>
      <servlet-name>Student</servlet-name>
      <url-pattern>/servlet/student</url-pattern>
</servlet-mapping>
</web-app>


不知道是哪里出了问题


而且我有点疑惑的是
tomcat的wtpwebapps的文件夹里,没能看见我的java文件




羊毛丶 发表于 2019-10-21 21:58

项目用什么软件部署的?

ElasticForce 发表于 2019-10-21 22:17

羊毛丶 发表于 2019-10-21 21:58
项目用什么软件部署的?

用的eclipse

wenzhilanyu 发表于 2019-10-21 22:27

你都用了注解,为什么还在web.xml配置

608岁的老头 发表于 2019-10-21 22:28

楼上正解

风景暗色调 发表于 2019-10-21 22:57

@WebServlet("/MyStudentInfo"),直接访问你项目路径下的/MyStudentInfo就行了,你那个web.xml被注解配置覆盖了,看来你学的太散了,连注解都没学。。。

c00kie 发表于 2019-10-21 23:29

127.0.0.1/项目名称/MyStudentInfo

ElasticForce 发表于 2019-10-22 00:07

风景暗色调 发表于 2019-10-21 22:57
@WebServlet("/MyStudentInfo"),直接访问你项目路径下的/MyStudentInfo就行了,你那个web.xml被注解配置覆 ...

好的,谢谢,确实不了解这个注解的功能,生成servlet的时候eclipse自动生成了,百度学习了一下注解的用法。我尝试了正确的项目中,注解和xml文件可以共存,两个url都能使用,但我的这个项目还是报404,还是在tomcat的文件夹中找不到我想要运行的java文件(我觉得是这个原因,因为测试成功的项目文件夹里有与之对应的java文件)

风景暗色调 发表于 2019-10-22 23:18

ElasticForce 发表于 2019-10-22 00:07
好的,谢谢,确实不了解这个注解的功能,生成servlet的时候eclipse自动生成了,百度学习了一下注解的用法 ...

那应该是你的项目部署出了问题。

qqccfg 发表于 2019-10-23 00:31

本帖最后由 qqccfg 于 2019-10-23 00:37 编辑

看上面的代码肯定有问题或者不舒服,注解,xml中注册同一个servlet类,在注解那你至少要给个名字吧(两个注册同一个怎么默认名字,)如@WebServlet(name="servlet的名字",value="映射路径"),到底成功注册了servlet没有,可以在项目中看到的。访问的时候记得加 项目名称   127.0.0.1:端口(8080)/项目名称/路径
页: [1]
查看完整版本: Servlet入门求助