第五章 要开始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.xml和index.jsp等。
其中webapp目录和里面的文件以及结构,在maven中也是固定的。
咱们就创建好了Web应用工程,可以在里面写咱们的HelloWorld 案例的Servlet和jsp了
5.2.3 编写演示代码
工程创建好了,咱们开始写测试代码吧。
在写代码前,咱先罗嗦一句。接下来咱们是写jsp和servlet,是有专门的页面向导,协作咱们快速的创建jsp和servlet代码的架构的。如果您不是使用的我前面介绍的eclipse-jee-mars-2-win32-x86_64.zip中的Eclipse,或者您使用的是纯Java IDE,那恭喜您,有两个选择:一是在您的路上继续下去,所有代码都手敲出来呗,工具不能帮你生成框架代码嘛;另外一个就是老老实实下载eclipse-jee-mars-2-win32-x86_64.zip吧 ^_^
接下来,咱们写3个代码:2个jsp和一个servlet。
Index.jsp,里面显示输入框,能提交我们输入的问候者名称
Welcome.jsp,显示对问候者的问候信息
WelcomeServlet,接收index.jsp发过来的名称,生成问候信息,转给welcome.jsp显示
当然,出来写前面的代码外,咱们还需要配置web.xml,servlet的,不要忘记了。
接下来就开始写代码了。具体写代码过程就不玩了,直接贴代码内容:
1、src\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、使用Maven的Jetty插件部署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服务器,按以前的方式打开浏览器浏览页面。
Gargo在pom.xml中的插件配置内容如下:
<plugin>
<!-- 指定插件名称及版本号 -->
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.4.8</version>
<configuration>
<!--是否说明,操作start、stop等后续操作必须等前面操作完成才能继续 -->
<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