Maven项目的配置

04-09 1329阅读

Maven 项目的配置

        • 一 . 创建项目
        • 二 . 引入依赖
        • 三 . 创建目录
        • 四 . 编写代码
        • 五 . 打包程序
        • 六 . 部署
        • 七 . 验证程序
        • 八 . smart tomcat使用
        • 九 . 错误分析
          一 . 创建项目

          1 . 创建一个 maven 项目

          Maven项目的配置

          2 . 创建好 maven 项目的目录结构

          Maven项目的配置

          Maven项目的配置

          3 . 观察 maven 的控制面板

          Maven项目的配置

          二 . 引入依赖

          4 .Maven 项目创建完毕后, 会自动生成一个 pom.xml 文件. 我们需要在 pom.xml 中引入 Servlet API 依赖的 jar 包 , 需要在maven 的中央仓库去下载。

          maven中央仓库:下载地址!

          Maven项目的配置

          此处我们一般选择 3. 1 版本的进行下载 (注意这里的版本要匹配jdk8;tomcat8.5,servlet3.1)

          复制下面这段代码到 idea 中的 pom.xml 中

          Maven项目的配置

          首先需要在 pom.xml 中创建 标签对 ,然后将复制好的Servlet坐标依赖进行粘贴进标签对中 , 该标签对中也可存放多个依赖 。

          Maven项目的配置

                 javax.servlet
                    javax.servlet-api
                       
                          3.1.0
              
                  provided
           
          

          首次使用 maven 时 ,可能会爆红 ,需要手动刷新进行导入

          Maven项目的配置

          此时我们 maven 项目的相关依赖已经成功导入

          Maven项目的配置

          附 : pom.xml

          
              4.0.0
              org.example
              demo_project
              1.0-SNAPSHOT
              
                  
                  
                      javax.servlet
                      javax.servlet-api
                      3.1.0
                      provided
                  
              
          
          
          三 . 创建目录

          创建maven 项目的时候虽然已经自动创建了一些目录,但是使用maven开发web项目还需要借助一个目录即 webapp目录 。

          1 . 在 main 目录下单独创建一个webapp 目录

          Maven项目的配置

          2 . 在webapp中创建WEB-INF目录 , 并在下边新建一个 web.xml

          Maven项目的配置

          3 . 给 web.xml 中写入指定配置

                  
                     Archetype Created Web Application
                  
          

          导入指定代码之后,可能会出现代码爆红的现象,但是此处的爆红并不会影响后续的操作

          四 . 编写代码

          在 java 目录下方创建一个 helloservlet 类, 并使该类继承自 HttpServlet 类,并重写相关的方法

          Maven项目的配置

          这些方法是 Servlet api 中HttpServlet 提供的针对不同的响应和请求使用的 , 当 tomcat 收到了 get 请求就会调用此处的doGet( ) 方法 。

          • doGet()

            Maven项目的配置

            doGet 的参数有两个, 分别表示收到的 HTTP 请求 和要构造的 HTTP 响应. 这个方法会在Tomcat收到GET请求时触发 .

            • req 是 tomcat 针对请求 ,已经解析好,构造好了的
            • resp则是一个空的对象(无属性的对象)

              重写doGet() 方法

              @Override
                  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
                      System.out.println("hello");
                      resp.getWriter().write("hello");
                  }
              
              • resp.getWriter()会获取到一个流对象,获取到的对象会可以使用 write() 方法写入一些数据,写入的数据就会被构造成一个 http 响应的 body 部分 ,tomcat 就会将响应转化为字符串然后返回给浏览器 。

              • 添加注解

                Maven项目的配置

                注解是一中语法糖 , 通常的作用是针对某一个类/方法 ,进行额外的解释说明,赋予这个类/方法一种额外的功能/ 含义 , 此处的注解是当前的类和 http 请求的路径关联起来,路径与 servlet 类之间是一对一的关系 。

                五 . 打包程序

                常见的 .class 构成的压缩包使用的是 .jar 包,但是此处我们需要使用.war包,一种 tomcat 专属的用来描述 webapp 的程序 , 一个war 包就是一个 webapp , 默认情况下 maven 打的是 jar 包, 所以需要向 pom.xml 中添加以下配置程序:

                    war
                    
                        hello
                        // 此处的 finalName 指的是打包后的名字,如果为空则默认使用artifactId+version来作为打包后的名称
                    
                

                配置程序修改完成之后,需要使用 package 进行打包 。

                Maven项目的配置

                双击 package , 当出现 BUILD SUCCESS 时打包完成 。

                Maven项目的配置

                Maven项目的配置

                六 . 部署

                把 war 包拷贝到 Tomcat 的 webapps 目录下

                Maven项目的配置找到tomcat 目录下的startup.bat启动tomcat

                Maven项目的配置

                显示如下字样则启动成功

                Maven项目的配置

                七 . 验证程序

                在浏览器中输入相对应的地址

                http://127.0.0.1:8080/hello/helloservlet
                

                Maven项目的配置

                这里的第一个 hello 指的是 context-path 第二个 helloservlet 指的是 Servlet path , 下图当中上方指的是 servlet path 下方指的是 context path

                Maven项目的配置

                上述七个步骤是针对一个新的项目来设计的, 当项目创建好了之后,后续只需要修改代码,前三个步骤就可以省略了;从4-7即可;重新部署的时候,不一定需要重启tomcat;

                刚才在浏览器输入 url 之后 ,浏览器就构造了一个 对应的 http GET请求,发给了tomcat , tomcat就根据第一级路径确定了具体的 webapp ,根据第二季路径就确定了具体调用的是哪一个类 。

                八 . smart tomcat使用

                有没有什么能够解决掉打包部署的方法呢?当然

                使用 idea 的插件可以省略掉5 . 6 步骤 , 下面我们介绍一下 idea 当中的插件 smart tomcat 的用法 。

                step1、打开idea,file->settings->plugin;在搜索栏搜索smart tomcat;

                Maven项目的配置

                step2、第一次使用需要配置一下 , 设置一下相关的参数

                Maven项目的配置

                Maven项目的配置

                设置完毕之后 , apply 后 ok 即可 。

                Maven项目的配置

                点击导航栏中的 三角按钮 , 即可开始运行 , 这里的smart tomcat 是通过另一种方式来启动 tomcat 的 ,部署的程序效果与打包后再部署相同

                Maven项目的配置

                idea 直接调用 tomcat ,让 tomcat 加载当前项目中的目录,这个过程没有打 war 包,也没有拷贝,更没有解压缩 。

                上述的两种部署,其实是 tomcat 的两种运行方式 ,

                • 如果是直接拷贝 war 包进行部署 ,context path 就是war包名
                • 如果是使用 smart tomcat 方式进行部署,则一级路径 context path是可以进行配置的,默认情况下就是项目名。
                  九 . 错误分析
                  • 出现 404

                    • 路径错误

                      检查 url 中的 content-path , servlet-path 等相关路径 。

                      Maven项目的配置

                      Maven项目的配置

                    • webapp 没有被正确部署

                      web.xml 内容错了 , 文件名错了, 文件路径错了等

                      • 出现 405

                        比如浏览器发送了一个 get 请求 , 但是代码中没有重写 doGet() 方法 , 并且super.doGet()没有删除的情况下就会出现 405

                        • 出现500 ,代码抛出异常了

                        • 出现空白页面 : 没有写resp.getWriter().write;

                        • 出现无法访问此网站 , tomcat 没有启动

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]