a27891 2025-07-19 16:13 采纳率: 100%
浏览 7
已结题

java servlet tomcat

我是JAVA的初学者,在启动示例代码时候出现了问题
项目目录结构是这样的

img

这是link.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>Insert title here</title>
</head>
<body>
<a href="LinkRequestServlet?pageNo=2&queryString=QST">下一页</a>
</body>
</html>


这是LinkRequestServlet的代码

package com.qst.chapter02.servlet;
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;


public class LinkRequestServlet extends HttpServlet {

    public LinkRequestServlet() {
        super();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置请求的字符编码为UTF-8
        request.setCharacterEncoding("UTF-8");
        //设置响应文本类型为HTML,UTF-8
        response.setContentType("text/html;charset=UTF-8");
        //获取输出流
        PrintWriter out=response.getWriter();
        //获取请求数据
        String pageNo = request.getParameter("pageNo");
        String queryString = request.getParameter("queryString");
        int pageNum=0;
        if(pageNo!=null)
            pageNum=Integer.parseInt(pageNo);
        //响应输出数据        
        out.println("<p>请求的页数"+pageNum+"</p>");
        out.println("<p>请求的查询字符是:"+queryString+"</p>");
        out.flush();
        out.close();
    }
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    }

}

点击下一页就会出现这样的404结果,不太明白问题是出在哪里

img

  • 写回答

4条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2025-07-19 16:22
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题分析: 根据提供的代码和项目目录结构,可以初步断定问题可能出在servlet的路径配置不正确导致无法找到相应的servlet类。需要检查@WebServlet注解中的路径是否正确配置。 解决方法:
    1. 确保Servlet类的路径和包名的一致性
    2. 确保@WebServlet注解中的路径配置正确,保证能够正确映射到请求路径
    3. 在web.xml中配置Servlet映射,确保Servlet能够正常被调用 示例代码:
    // 在LinkRequestServlet类上添加@WebServlet注解
    @WebServlet("/LinkRequestServlet")
    public class LinkRequestServlet extends HttpServlet {
        // servlet内容保持不变
    }
    
    <!-- 在web.xml中配置Servlet映射 -->
    <servlet>
        <servlet-name>LinkRequestServlet</servlet-name>
        <servlet-class>com.qst.chapter02.servlet.LinkRequestServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>LinkRequestServlet</servlet-name>
        <url-pattern>/LinkRequestServlet</url-pattern>
    </servlet-mapping>
    

    通过正确配置Servlet路径映射,可以解决404页面找不到资源的问题。如果问题仍然存在,可以考虑检查项目部署路径等相关配置。

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

报告相同问题?

问题事件

  • 系统已结题 7月27日
  • 已采纳回答 7月19日
  • 创建了问题 7月19日