美文网首页
白手搭建java web应用_基于maven+tomcat+sp

白手搭建java web应用_基于maven+tomcat+sp

作者: qinqiang2000 | 来源:发表于2019-08-27 19:14 被阅读0次

    初衷

    带新人学java web时,发现网上99%的文章都是基于某个IDE来教学,此方式会让新人极易被IDE庞杂的功能给干扰,导致注意力被分散,而非专注于java web应用的目录格式、配置文件的作用、及其内部配置项对应web体系、springmvc体系的哪一部分。因此写一篇白手构建java web应用的文章,争取新人在重要知识点的注意力最大化。

    前提

    1.已安装maven和Tomcat并能正常使用。如果您通过代理上网或者链接到Apache的中央仓库很慢,请搜索相关教材,汗牛充栋。
    2.初步了解java web和spring mvc的基本概念。不熟可先看看这里:12

    创建java Web应用框架

    通过Maven的原型maven-archetype-webapp创建一个java web的标准框架。
    运行:mvn archetype:generate -DgroupId=com.cmxx -DartifactId=mvc_demo -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
    如果发现很慢,请看上面的前提
    建完后,目录结构如下:

    标准java web目录结构
    各子目录的基本分工:
    分工
    读者可以瞄一眼pom.xml、index.jsp和web.xml,看最基本的架构包含啥内容。

    构建java web应用

    1.运行mvn clean package,build success说明项目没有出错

    运行示例

    2.修改pom.xml,代码如下:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.cmxx</groupId>
        <artifactId>mvc_demo</artifactId>
        <packaging>war</packaging>
        <version>1.0-SNAPSHOT</version>
        <name>simpleWeb Maven Webapp</name>
        <url>http://maven.apache.org</url>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
                <scope>compile</scope>
            </dependency>
     
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>4.3.9.RELEASE</version>
            </dependency>
        </dependencies>
        
        <build>
            <finalName>mvc_demo</finalName>
        </build>
    </project>
    

    3.在src/main下新建java文件,运行mkdir java或者手动新建文件夹

    新建java文件夹

    4.在src/main/java下新建包,包路径自定义,此处为com.cmxx


    新建包路径

    5.在src/mian/java/com/cmxx包下新建SimpleController.java文件,代码如下:

    package com.cmxx;
     
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.ModelMap;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
     
    @Controller
    @RequestMapping("/myc/")
    public class SimpleController {
     
        @RequestMapping(method = RequestMethod.GET)
        public String sayMvc(ModelMap model) {
            model.addAttribute("modelValue", "Simple Spring 4 MVC");
            return "output"; //WEB-INF/views/output.jsp
        }
     
        @RequestMapping(value = "/simpleAgain", method = RequestMethod.GET)
        public String sayHelloAgain(ModelMap model) {
            model.addAttribute("modelValue", "Simple again from Spring 4 MVC");
            return "output"; //WEB-INF/views/output.jsp
        }
     
    }
    

    6.在src/main/webapp/WEB-INF下新建views文件夹,运行mkdir views或者手动新建文件夹

    新建views文件夹

    7.src/main/webapp/WEB-INF/views文件夹下新建output.jsp文件,其中的代码如下:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Simple page</title>
    </head>
    <body>
        Output: ${modelValue}
    </body>
    </html>
    

    8.src/main/webapp/WEB-INF文件夹下新建applicationContext.xml文件,其中的代码如下:

    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
     
        <context:component-scan base-package="com.cmxx" />
     
        <mvc:annotation-driven />
     
        <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix">
                <value>/WEB-INF/views/</value>
            </property>
            <property name="suffix">
                <value>.jsp</value>
            </property>
        </bean>
     
    </beans>
    

    9.修改src/main/webapp/WEB-INF下的web.xml文件,代码如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     
      <display-name>Simple Spring MVC web app</display-name>
     
      <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/applicationContext.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
     </servlet>
     
     <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/entry/*</url-pattern>
     </servlet-mapping>
     
    </web-app>
    

    10.运行mvn clean package,build success说明项目可以进行发布

    运行示例

    发布java web应用

    1.查看项目的target文件夹,可以发现有打包好的mav_demo.war包,把war包复制到tomcat安装目录下的webapps文件下:


    复制war包

    2.运行tomcat的bin目录下的startup.bat


    运行tomcat

    3.在浏览器中输入网址http://localhost:8080/mvc_demo/entry/myc/,运行结果如下:

    运行结果

    4.在浏览器中输入网址http://localhost:8080/mvc_demo/entry/myc/simpleAgain,运行结果如下:

    运行结果

    温习Spring MVC Flow

    读者请将以上练习的内容,对应到底下Java web+Spring MVC体系,加深理解。请先忽略Model和Database部分

    1. web.xml是java web的标准配置文件,配置servlet基本信息及url根映射路径(/entry/*)。这里配置的servlet为Spring MVC的前置控制器:DispatcherServlet
    2. applicationContext.xml用于配置Spring MVC的基本信息,包括包扫描路径、基于注解的controller与url映射配置、创建视图解析器(InternalResourceViewResolver)
    3. SimpleController用于处理url为/entry/myc/的请求。其中均设置了一个model并返回output(等于告诉视图解析器,寻找一个output开头的视图来呈现model的内容)
    4. output.jsp:视图。视图解析器根据applicationContext.xml里面的配置,找到output.jsp作为内容呈现者。output.jsp里面的${modelValue}是告诉视图解析器,将model里面key为modelValue的内容放到这里来
    5. Tomcat将解析好的output.jsp通过HTTP返回给浏览器
    Spring MVC Flow

    相关文章

      网友评论

          本文标题:白手搭建java web应用_基于maven+tomcat+sp

          本文链接:https://www.haomeiwen.com/subject/fqksectx.html