首页 > 编程语言 >JavaWeb项目在idea中的部署及部署方式异同

JavaWeb项目在idea中的部署及部署方式异同

时间:2022-10-08 20:44:29浏览次数:61  
标签:web JavaWeb tomcat 部署 IDEA idea servlet war

浅知拙见, 欢迎指正和交流!

1. 基于servlet和tomcat在idea中实现的web项目helloworld

项目目录结构如下

1.1 创建工程, 引入web项目模板

1.2 引入servlet-api的依赖

1.3 编写HelloServlet

package com.xy.javaweb.servlet;

import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;


public class HelloServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response){

        try {
            response.getWriter().println("<h1>Hello Servlet!</h1>");
            response.getWriter().println(new Date().toLocaleString());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

1.4 web.xml中添加HelloServlet的对应映射

<?xml version="1.0" encoding="UTF-8"?>
<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_4_0.xsd"
         version="4.0">
    
    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <!--    这里是对应Servlet的全类名 参考包名路径-->
        <servlet-class>com.xy.javaweb.servlet.HelloServlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
    
</web-app>

1.5 部署到tomcat

  1. add comfigurations 中点击左侧加号, 选择 tomcat - local 选择好tomcat;

  2. 确认端口未被占用的情况下 , 确认访问路径;

1.6 选择部署方式和Application Context

deployment 面板下, 选择好部署方式war_exployded, 并将 Application Context 改为 / .

启动项目, 在浏览器输入地址和对应servlet访问路径拼接成的URL地址;

2. idea使用tomcat部署JavaWeb项目两种方式及区别

从表面来看分为两种方式:

  1. 手动将工程打包成war包, 然后放在webapps下, 再启动tomcat进行访问(war方式);
  2. 使用idea中的tomcat副本的方式直接进行部署(war_exployded);

在idea工具栏, 绿色小锤子处, add configurations 面板中, 添加tomcat后, 编辑Deployement 中可以选择war或者war_exployded任意一种.

两种方式的区别

  1. war方式是将项目文件打包成war包的方式, 放在webapps下

  2. war_exployded方式则是启动tomcat实例后, 以配置文件的形式指向项目编译后的目录(这种方式亦称为热部署)

1. IDEA中整合了Tomcat,会拷贝tomcat的三个文件夹做副本,三个文件夹分别是,conf,work,log,没有webapps,因为IDEA部署项目用了方式二,即在conf中增添项目的配置文件来部署

2. servletContext.getContextPath()获取到的是配置文件中的path值,即该项目部署后对外提供的访问路径

3. servletContext.getRealPath("/")获取到的是配置文件中的docBase值,即被部署的这个项目在电脑磁盘中的物理位置(不一定在tomcat文件夹下,可以在任意位置,IDEA中部署的项目都在D:\IDEA_workspace\JavaWeb\out\artifacts\位置下,其中D:\IDEA_workspace\JavaWeb是博主的IDEA工作空间,即存放源代码的地方)

4. 综上所述,"/" 就是 对应该项目工程在电脑磁盘中的物理位置,又因为 "/"被服务器解析为 http://ip:port/工程路径/ ,所以通过http://ip:port/工程路径/ 是直接访问到项目在磁盘中的物理位置

5. 在IDEA中,模块下的src中的源代码,编译后会存放在web/WEB-INF/classes下,部署时是将web文件夹进行部署(其中包括src的源代码编译形成的class文件),源代码没部署

6. "/"对应 http://ip:port/工程路径 , 工程路径(即配置文件的path值) 对应 配置文件的docBase指向的物理位置 , 物理位置下的文件夹 对应 IDEA编写的模块中的web目录下的资源 , 因此,"/"(即http://ip:port/工程路径) 对应IDEA模块下的web目录.
————————————————
版权声明:本文为CSDN博主「阿龟在奔跑」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43719791/article/details/120240564

标签:web,JavaWeb,tomcat,部署,IDEA,idea,servlet,war
From: https://www.cnblogs.com/wang-jifeng/p/16770149.html

相关文章

  • 快速部署瀚高数据库(保密)版本的方法
    背景公司这边有一套基于瀚高数据库的测试环境.因为重保期间调试比较麻烦.同事想让将其部署到不受限制的地方.本来想着进行一次备份恢复,然后响应的安装->设置->初始化......
  • idea关于java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver报错的解决办法
     第一步,下载驱动 点击以下链接进入MySQL驱动下载官网 https://dev.mysql.com/downloads/connector/j/ 选择PlatformIndependent   下载第二个(zip格......
  • 解决IDEA输出乱码问题
     找到IDEA安装目录bin目录下的如下文件,在文件末尾添加 -Dfile.encoding=UTF-8,然后重启idea即可  ......
  • PaddleOCR在 Linux下的webAPI部署方案
    很多小伙伴在使用OCR时都希望能过采用API的方式调用,这样就可以跨端跨平台了。本文将介绍一种基于python的PaddleOCR识方案。喜欢的可以关注公众号,获取更多内容。   ......
  • idea -- mybaties -- 模板下载
    1,ctroller-->如下@GetMapping(value="/createTlzExcel")publicStringcreateTlzExcel(HttpServletResponseresponse)throwsException{Map<String,Object>exc......
  • springboot+热部署
    springboot框架已经用了很长时间了,每次调整代码都需要重启项目,很多时候就算是重启了,项目的一些资源还不能更新这就需要一个东西叫做热部署,顾名思义就是可以像hbuilder中编......
  • 尚硅谷-JavaWeb Day3 jQuery
    1.jQuery介绍:JavaScript和Query,辅助JavaScript 开发的js类库;2.js使用方式①在script标签中,先导入js文件②使用$(function(){....});表示页面......
  • java--IDEA快捷键操作
    1.ctrl+alt+m选择区域代码创建方法的快捷键2.ctrl+shift+-收起类中所有的方法创建对象接收结果快捷键:alt+enter整理代码格式:ctrl+alt+l3.删除一行:ctrl+y4.ctrl+s......
  • idea创建Maven项目
    目录配置一下idea的Maven新建Maven项目配置一下idea的Maven首先先配置一下idea的Maven:打开idea的设置,找到构建、执行、部署-->构建工具-->Maven然后配置自己的Mave......
  • idea在continue的breakpoint不起作用
    1,背景调试代码的时候遇到continue处的breakpoint不起作用,故记录一下过程。2,分析过程2.1,复现publicclasstest{publicstaticvoidmain(String[]args){......