路辛 2020-04-09 20:59 采纳率: 75%
浏览 597
已采纳

访问servlet总是404错误?

小白刚学javaWeb,这个问题研究一下午了还是没搞明白,想请大家指点一下。
主要问题是:servlet(servlet.java)编写好之后,到底应该放在哪个文件夹中?

文件目录:

图片说明

在index.jsp中有一个表单,准备使用servlet来处理。

index.jsp内容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录</title>
</head>
<body>

    <center>
        <form action="MyServlet/servlet1" method="get">     
            <table border=2 style="background-color: lightskyblue; margin: auto">
                <tr>
                    <td>姓名:</td>
                    <td><input type="text" name="userName"></td>
                </tr>
                <tr>
                    <td>年龄:</td>
                    <td><input type="text" name="userInfo"></td>
                </tr>
                <tr>
                <tr>
                    <td>身高:</td>
                    <td><input type="text" name="userInfo"></td>
                </tr>
                <tr>
                <tr>
                    <td>体重:</td>
                    <td><input type="text" name="userInfo"></td>
                </tr>
                <tr>
                    <td colspan=2 align=center><input type="submit" value="提交"></td>
                </tr>
            </table>
        </form>
    </center>


</body>
</html>

servlet.java内容:



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 servlet1
 */
@WebServlet("/MyServlet/servlet1")
public class servlet1 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public servlet1() {
        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
        // 设置输入的编码格式为GBK
        request.setCharacterEncoding("GBK");
        // 设置输入的编码格式为GBK
        response.setCharacterEncoding("GBK");
        // 给浏览器的标示,该字体为text/html
        response.setContentType("text/html");


        String Name=request.getParameter("userName");
        String []Info=request.getParameterValues("userInfo");


        PrintWriter out=response.getWriter();
        out.println("<html><head><title>接收成功</title></head><body>");

        out.println("接收到来自于"+Name+"的消息,他的信息是:"+"<br>");
        out.println("年龄:"+Info[0]+"<br>");
        out.println("身高:"+Info[1]+"<br>");
        out.println("体重:"+Info[2]+"<br>");


        out.println("</body></html>");

    }



}

当我启动tomcat之后,访问:
http://localhost:8080/servletTest/index.jsp

这样是可以访问到index页面的,当我填完表单,点击提交之后,就显示404错误了。请问一下,是我servlet放置的位置不对吗,还是因为我servlet的@WebServlet()注解写的不对?还是因为我表单action=""这个地方写的不对?正确的情况应该怎么写啊?谢谢大家

  • 写回答

2条回答 默认 最新

  • RestartJava 2020-04-09 22:37
    关注

    你用idea或者eclipse新建web项目,再写吧,或者检查一下servlet.java有没有编译为.class文件,感觉你的servlet.java没起作用

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路