cokupop 2022-09-14 21:41 采纳率: 50%
浏览 1152

idea里的tomcat只运行index.jsp该如何解决?

问题遇到的现象和发生背景

使用的是idea2020版本 现在是想去建造一个servlet 但是现在的问题是 我去正常的配置tomcat
但是tomcat只会去运行web文件夹下的index.jsp文件 我实际想去运行的是src文件夹里的servlet
文件 大致了解了以下 应该是tomcat的url配置问题 但是可能知识实在理解不到位 实在是解决不了了
铁铁们 救命啊
现在的tomcat配置如下

img

项目表如下

img

尝试过的解决方法

尝试过更改或者添加jar什么的 没有起到什么实质作用
感谢铁铁

  • 写回答

2条回答 默认 最新

  • 程序yang 全栈领域优质创作者 2022-09-15 10:17
    关注

    仅供参考:

    IDEA 配置Tomcat运行Servlet项目
    开发阶段:idea 中配置 Tomcat 插件,当写完代码之后直接运行 idea(和普通项目是一样的流程)。
    部署阶段:开发者打一个 war,然后将 war 部署到Tomcat上运行(如果是开发阶段就会略显麻烦,每次都需要进行打包发布)
    IDEA如何配置Tomcat插件
    具体步骤:
    第一步:点击添加配置

    img

    第二步:点击“+”号,选择Tomcat,然后选择local

    img

    第三步:点击configure选择本地的Tomcat安装包,你的Tomcat放在哪里,直接选择即可

    img

    第四步:点击Deployment 选项,选择Servlet项目

    img

    第五步:选择要部署的项目,然后点击ok

    img

    第六步:配置url站点(修改访问路径),然后点击ok,配置就完成了

    img

    总预览

    img

    当配置好Tomcat插件之后,进行测试
    1.写入Servlet后端类
    2.配置web.xml文件

    具体实现步骤:
    1.写入Servlet后端类

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Date;
    
    public class MyResponseServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //刷新操作,设置成1s刷新一次
            resp.setIntHeader("Refresh",1);
            //设置响应类型
            resp.setContentType("text/html");
            //设置编码格式,如果不设置会出现乱码
            resp.setCharacterEncoding("utf-8");
            //写入body信息
            PrintWriter writer = resp.getWriter();
            writer.println(String.format("<h1>当前时间: %s</h1>",new Date()));
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            this.doGet(req, resp);
        }
    }
    

    2.配置web.xml文件

    <servlet>
        <servlet-name>myResponseServlet</servlet-name>
        <servlet-class>MyResponseServlet</servlet-class>
      </servlet>
    
      <servlet-mapping>
        <servlet-name>myResponseServlet</servlet-name>
        <url-pattern>/response</url-pattern>
      </servlet-mapping>
    

    3.在 idea 运行后端类代码,点击运行

    img

    此时会自己弹出一个浏览器的页面,
    (1)当步输入我们设置的url时,会出现一个Hello World!页面,这个页面是WEB-INF下的index.jsp,这个是我们项目里的。而不是Tomcat自带的

    img

    (2)当我们输入我们自定义的url的时候,就会出现一个新的界面,也就是我们写入的刷新页面,每隔一秒刷新一次

    img

    附:如果只是想修改不访问index.jsp,可以在web.xml进行修改配置

    在web.xml中加入以下代码,然后重启服务器就可以了.

    <welcome-file-list>
        <welcome-file>这儿写你要显示的页面名称</welcome-file>
    </welcome-file-list>
    

    添加位置如下:

    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
             version="3.1">
        <welcome-file-list>
            <welcome-file>login.jsp</welcome-file>
        </welcome-file-list>
    </web-app>
    

    这样运行项目时就默认显示login.jsp页面了

    评论

报告相同问题?

问题事件

  • 创建了问题 9月14日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵