Maven实战指南 05

 

第五章 要开始Web应用了啦

前面章节,咱们有研究怎么样在Eclipse环境下,结合m2eclipse创建、编译、测试、打包、安装一个基本的java项目了,当然还包括几个常用文档的生成。但是,目前Java程序员,最常要面对的是JavaWeb应用,那咱们得折腾明白,eclipse+m2eclipse怎么样开发管理JavaWeb应用不是。

本章内容,咱们将弄明白怎么样折腾JavaWeb应用的套路,主要针对的是最基本的JSP/Servlet Web应用。

  5.1 简单介绍一下思路

一切还是以实际案例进行。不过分两步:

第一步:实现一个简单的jsp/servlet,有点MVC感觉的HelloWorld

在这个环节,咱们主要体现:

1、怎么搭建创建Web应用工程的环境

2、怎么样创建Web应用工程

3、Web应用工程的目录结构是怎样的

4、怎样结合Web服务器,发布Web应用

5、体验Web应用的开发和发布测试过程

第二步:实现经典的MVC版本的用户CRUD

1、熟练第一步中的几个方面

2、结合典型的业务逻辑,实现CRUD

  5.2 要不来个Web版的HelloWorld

5.2.1 寻觅和安装心仪的ArcheType

目标确定好了吧,前面配置好了的Eclipse也启动完备了啦。

好叻,咱们开始创建Web应用了啦。

按前面创建普通Java工程的步骤:

点击 File->New->Others

选择 Create Maven Project,点击 下一步

选中创建Web应用工程的archetype,如图:

 

如果没有同我一样的选项,可以选择其它类似的,创建web应用的都可以,比如前面那个叫maven-archetype-webapp的也可以。当然,咱们也可以选择从网上找到坐标后的archetype插件,再安装进去。

怎么安装新的archetype呢,简单着呢,点击上图中的 Add Archetype 按钮,在出现的窗口中输入在网上找到的插件坐标信息。如图:

 

点击OK按钮,Eclipse自动会下载该构件。重新打开创建工程的向导页面,咱们就可以发现新增了刚刚添加的archetype插件。如图:

 

 

 

5.2.2 基于ArcheType向导创建Web工程

继续上节的创建工程的向导页面,我还是比较念旧jee5的,选中jee5下一步,在下一个界面中输入咱们新创建的Web工程的坐标信息和包名。如图:

 

 

点击Finish按钮,m2eclipse会自动给咱创建一个Web工程MvnBookTP03,目录结构图如下。其它没什么,就是在src\main目录下,添加了webapp目录,里面有我们久违的Web应用特有的WEB-INF目录,web.xmlindex.jsp等。

其中webapp目录和里面的文件以及结构,在maven中也是固定的。

 

 

咱们就创建好了Web应用工程,可以在里面写咱们的HelloWorld 案例的Servletjsp

5.2.3 编写演示代码

工程创建好了,咱们开始写测试代码吧。

在写代码前,咱先罗嗦一句。接下来咱们是写jspservlet,是有专门的页面向导,协作咱们快速的创建jspservlet代码的架构的。如果您不是使用的我前面介绍的eclipse-jee-mars-2-win32-x86_64.zip中的Eclipse,或者您使用的是纯Java IDE,那恭喜您,有两个选择:一是在您的路上继续下去,所有代码都手敲出来呗,工具不能帮你生成框架代码嘛;另外一个就是老老实实下载eclipse-jee-mars-2-win32-x86_64.zip^_^

 

接下来,咱们写3个代码:2jsp和一个servlet

Index.jsp,里面显示输入框,能提交我们输入的问候者名称

Welcome.jsp,显示对问候者的问候信息

WelcomeServlet,接收index.jsp发过来的名称,生成问候信息,转给welcome.jsp显示

当然,出来写前面的代码外,咱们还需要配置web.xmlservlet的,不要忘记了。

 

接下来就开始写代码了。具体写代码过程就不玩了,直接贴代码内容:

1src\main\webapp\index.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <title>Index JSP</title>

    </head>

    <body>

        <form action="welcomeServlet" method="post">

           请输入问候人名:<input type='text' name="name"/><br/>

           <input type='submit' value='问候'/>

        </form>

    </body>

</html>

 

2、src\main\webapp\welcome.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <title>Welcome JSP</title>

    </head>

    <body>

        问候信息:${welcome }

    </body>

</html>

 

3、src\main\java\....\WelcomeServlet.java

package cn.com.mvnbook.demo.tp03;

 

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

 * Servlet implementation class WelcomeServlet

 */

public class WelcomeServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

 * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)

 */

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");

String name = request.getParameter("name");

String welcome = "Hello," + name;

request.setAttribute("welcome", welcome);

request.getRequestDispatcher("/index.jsp").forward(request, response);

}

}

 

4、src\main\webapp\WEB-INF\web.xml中添加WecomeServlet的配置

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">

  <display-name>MvnBookTP03</display-name>

  <session-config>

    <session-timeout>30</session-timeout>

  </session-config>

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

  <servlet>

    <description></description>

    <display-name>WelcomeServlet</display-name>

    <servlet-name>WelcomeServlet</servlet-name>

    <servlet-class>cn.com.mvnbook.demo.tp03.WelcomeServlet</servlet-class>

  </servlet>

  <servlet-mapping>

    <servlet-name>WelcomeServlet</servlet-name>

    <url-pattern>/WelcomeServlet</url-pattern>

  </servlet-mapping>

</web-app>

 

 

5.2.4 构建Web项目

前期的构建过程,同前面基本的java工程一样,根据我们自己的需要,在pom.xml中配置好对应功能的插件,再运行对应的图形化菜单命令就可以了,我们在这里不做重复的说明。

一个Web应用构建好后,不仅仅只是编译打包安装就可以了,还需要将它发布到Web服务器中进行测试调试才行。我们这里主要介绍两种发布到Tomcat7.x服务器,启动测试的方式。在项目开发过程中,我们可以根据自己的需要,选择其中一种:

1、使用MavenJetty插件部署Web

1)pom.xml中添加Jetty插件的坐标信息,内容如下:

<plugin>

<groupId>org.mortbay.jetty</groupId>

<artifactId>maven-jetty-plugin</artifactId>

<version>6.1.26</version>

<configuration>

<webAppSourceDirectory>${basedir}/src/main/webapp</webAppSourceDirectory>

</configuration>

</plugin>

2)Eclipse中配置Web服务器运行环境

A、点击Eclipse的菜单Window->Preferences,打开Preferences窗口,选中左边树Server->Runtime Environment。如下图:

 

 

B、点击右边的 Add按钮,弹出一个选择服务器的窗口,选中窗口中的Apache->Apache Tomcat v7.0服务器(我的测试环境是Tomcat7.x)。如图:

 

 

C、点击 Next,进入选择TomatServer配置页面,选择咱们Tomcat的安装目录和JRE运行环境(咱们自己JDK)。如图:

 

D、点击 Finish OK,关闭所有配置窗口,完成Eclipse中的WebServer配置

 

3)运行

右击工程,选择 Run As->Maven build ...,打开自定义launch窗口,在Goals中输入启动的插件名和目标:jetty:run。如图:

 

点击Run运行一次后,以后每次都可以在 Run As->Maven build选项中选择重复运行。

 

服务器启动好了,接下来打开浏览器,输入http://localhost:8080/MvnBookTP03/index.jsp,就可以访问第一个页面了。后面的页面访问测试,相信大家有基本的jsp/servlet基础,都可以知道操作了。

 

2、使用cargo-maven2-plugin插件部署Web

使用cargo插件相对简单,我们只需要在pom.xml进行配置,指定部署应用必须的信息,再运行Run As->Maven install命令,cargo插件自动会把打成war包的应用,发布到指定的web服务器的发布目录下。

接下来要做的是我们自己启动Web服务器,按以前的方式打开浏览器浏览页面。

Gargopom.xml中的插件配置内容如下:

<plugin>

<!-- 指定插件名称及版本号 -->

<groupId>org.codehaus.cargo</groupId>

<artifactId>cargo-maven2-plugin</artifactId>

<version>1.4.8</version>

<configuration>

        <!--是否说明,操作startstop等后续操作必须等前面操作完成才能继续 -->

<wait>true</wait>

        <!-- 容器的配置 -->   

<container>

            <!-- 指定tomcat版本 -->    

<containerId>tomcat7x</containerId>

            <!-- 指定类型:standalone, installed-->  

<type>installed</type>

            <!-- 指定Tomcat的位置,即catalina.home -->   

<home>C:\java\servers\apache-tomcat-7.0.69_64</home>

</container>

        <!-- 具体的配置 -->

<configuration>

            <!-- 类型,existing:存在 -->    

<type>existing</type>

            <!-- Tomcat的位置,即catalina.home -->    

<home>C:\java\servers\apache-tomcat-7.0.69_64</home>

</configuration>

<deployables>  <!-- 部署设置 -->

<deployable>   <!-- 部署的War包名等 -->

<groupId>cn.com.mvnbook.demo</groupId>

<artifactId>MvnBookTP03</artifactId>

<type>war</type>

<properties>

<context>MvnBookTP03</context>   <!-- 部署路径 -->

</properties>

</deployable>

</deployables>

<deployer> <!-- 部署配置 -->

<type>installed</type>   <!-- 类型 -->

</deployer>

</configuration>

<executions>

<!-- 执行的动作 -->

<execution>

<id>verify-deployer</id>

<phase>install</phase>   <!-- 解析install -->

<goals>

<goal>deployer-deploy</goal>

</goals>

</execution>

<execution>

<id>clean-deployer</id>

<phase>clean</phase>

<goals>

<goal>deployer-undeploy</goal>

</goals>

</execution>

</executions>

</plugin>

 

当我们在工程上点鼠标右键,选择 Run As ->Maven install后,我们就可以在Tomcat7的发布目录下,发现MvnBookTP03.war,启动后它就能自动发布并能被访问。

5.2.5 测试

不管前面哪种方式,启动服务器后,打开浏览器,输入http://localhost:8080/MvnBookTP03/index.jsp连接后,会出现如图页面,后面的操作相信大家都能自己完成了。

 

 版权所有,转载请注明来源  系列视频参考http://cyedu.ke.qq.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值