新建第一个应用程序 |
上一章我们讲到了关于struts2核心机制。对于程序员来讲比较概念的一章。而本章笔者将会亲手写一个Hello world的例子。所以如果对struts2使用比较了解的朋友,请跳过本章。当然如果有跟笔者相同情况的朋友,我意见不烦看看我写的文章,就当打发时间来着。在前面的章节里面我们知道如果获得源码(不清楚的朋友,请查看Struts2 源码分析——前言)。用Eclipse新建一个Dynamic Web Project。项目为HelloWorld。如下面等图片。
第一步:新建一个Dynamic Web Project
第二步:命名项目HelloWorld。并点击下一步(Next)。直到出现第三步的图片。
第三步:选择生成Web.xml。并点击完成(finish)。
好了一个Web项目就正式建立成功了。而接下来我们就要把相关的struts2的配置写上去。
1.去源码解开的根目录。找到apps文件夹。找到我们要分析源码的项目struts2-showcase。找到项目的web.xml文件,并复制替换掉HelloWorld项目的web.xml。删除不需要的配置信息。只要留下下面有用的信息。并改掉display-name的信息为Hello World。如下最后的结果。
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Hello World</display-name> <filter>
<filter-name>struts-prepare</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareFilter</filter-class>
</filter> <filter>
<filter-name>struts-execute</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsExecuteFilter</filter-class>
</filter> <filter-mapping>
<filter-name>struts-prepare</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <filter-mapping>
<filter-name>struts-execute</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list> </web-app>
2.从项目struts2-showcase的WEB-INF/lib底下,把struts2要用的包全部复到HelloWorld项目的WEB-INF/lib里面。相关包如下
3.在HelloWorld项目里面新建一个包为:com.helloworld。然后在com.helloworld的包下面,新一个action类为:FirstAction。
FirstAction类的代码:
package com.helloworld; import com.opensymphony.xwork2.ActionSupport; public class FirstAction extends ActionSupport{
public String execute() throws Exception
{
return SUCCESS;
}
}
4.把相关struts2配置文件复制到HelloWorld项目的SRC文件下。并到WEB-IN文件夹下新建一个JSP为HelloWorld。如图下
HelloWorld.JSP:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Hello World
</body>
</html>
5.修改struts.xml配置文件的内容。如下
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd"> <struts>
<constant name="struts.devMode" value="false" /> <package name="default" extends="struts-default"> <action name="first" class="com.helloworld.FirstAction" >
<result name="success">/WEB-INF/HelloWorld.jsp</result>
</action> </package> </struts>
到这里一个就是基本的struts2相关的配置就结束了。在开发中我们要用到struts2相关的功能的话,只能把相关包引进来。修改相关的配置就可以了。当然这里就是笔者讲的重点。
发布第一个目项。 |
笔者用的是eclipse来开发。所以这里只是简单的讲一下用eclipse发布而以。另一种是打包为war在发布这里就不讲了。
1.点开Servers的操作区,点开图片中的蓝色字体新建一个服务器。如图下。
2.选择自己的Tomcat版本号。并服务器命为Tomcat v7.0。点击下一步(next)。如图下
3.选择自己要发布的项目,点击增加(add)。在点击完成(finish)。如果成功的话,eclipse的项目窗体也出现相关Tomcat的配置的项目。如图下
成功之后:
项目体窗
4.接下来就变的很简单 。如果选择服务器=》右击=》选择Public(发布)。然后在来选择服务器=》右击=》先择自己需要的执行模式。是debug还是start.自己看。如图下
最后运行的结果
看到上面操作还是很简单的。笔者这还是要说一些开发使用Tomcat的时候要注意的点。
<1>.点开成功这后项目体窗下的Servers项目。并找到对应的web.xml.这里的web.xml是为Tomcat服务器下的每一个项目所用。如果项目本身自己没有web.xml的时候就是去找服务器的web.xml。找到底下代码的部分。你们看到一个<param-name>listings</param-name>为节点的值。这节点的值设为true的时候。就是可以看到项目的文件。也就是如果你的URL里面输入(http://locahost:xxx/根目录)项目的根目录就出面文件列表。
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
为了让读者看明白笔者只能在新建一个项目,让大家看明白。如图下
<2>. 我们在开发过程中可能会发现端口被占用。不要担心。把到Tomcat的真实路经下tomcat\bin文件夹下面。在运行一下shutdown.bat。当然你的tomcat一定要保证能运行。因为有一些情况eclispse可以用。但是独立却不能运行。请自己行配置一下就行了。实在不行的话。同样子找到server.xml,并找到底下代码的部分。把8080改成为你想要的端口号即可。
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
本章总结 |
本章主要讲的如何配置struts2。当然笔者成功的运行项目的时候。笔者认为struts2.xml文件是一个重要的文件。他是struts2的如何找到对应的action类的重要信息的存放点。同时笔者也明白了一点:StrutsPrepareFilter类一定要在StrutsExecuteFilter类前面执行。否则会出错。不信,你们可以试试。当然如果用StrutsPrepareAndExecuteFilter那就是没有什么前后的问题了。