zoukankan      html  css  js  c++  java
  • Struts2 源码分析——Hello world

    新建第一个应用程序

    上一章我们讲到了关于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。如下最后的结果。

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app id="WebApp_9" version="2.4" 
     3     xmlns="http://java.sun.com/xml/ns/j2ee" 
     4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     5     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
     6 
     7     <display-name>Hello World</display-name>
     8     
     9     <filter>
    10         <filter-name>struts-prepare</filter-name>
    11         <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareFilter</filter-class>
    12     </filter>
    13 
    14     <filter>
    15         <filter-name>struts-execute</filter-name>
    16         <filter-class>org.apache.struts2.dispatcher.filter.StrutsExecuteFilter</filter-class>
    17     </filter>
    18 
    19     <filter-mapping>
    20         <filter-name>struts-prepare</filter-name>
    21         <url-pattern>/*</url-pattern>
    22     </filter-mapping>
    23 
    24     <filter-mapping>
    25         <filter-name>struts-execute</filter-name>
    26         <url-pattern>/*</url-pattern>
    27     </filter-mapping>
    28 
    29     <welcome-file-list>
    30         <welcome-file>index.jsp</welcome-file>
    31         <welcome-file>default.jsp</welcome-file>
    32         <welcome-file>index.html</welcome-file>
    33     </welcome-file-list>
    34 
    35 
    36 </web-app>

    2.从项目struts2-showcase的WEB-INF/lib底下,把struts2要用的包全部复到HelloWorld项目的WEB-INF/lib里面。相关包如下

    3.在HelloWorld项目里面新建一个包为:com.helloworld。然后在com.helloworld的包下面,新一个action类为:FirstAction。

    FirstAction类的代码:

     1 package com.helloworld;
     2 
     3 import com.opensymphony.xwork2.ActionSupport;
     4 
     5 public class FirstAction extends ActionSupport{
     6     public String execute() throws Exception
     7     {
     8         return SUCCESS;
     9     }
    10 }

    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配置文件的内容。如下

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 
     3 <!DOCTYPE struts PUBLIC
     4     "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
     5     "http://struts.apache.org/dtds/struts-2.5.dtd">
     6 
     7 <struts>
     8     <constant name="struts.devMode" value="false" />
     9     
    10     <package name="default" extends="struts-default">
    11 
    12         <action name="first" class="com.helloworld.FirstAction" >
    13             <result name="success">/WEB-INF/HelloWorld.jsp</result>
    14         </action>
    15 
    16     </package>
    17 
    18 </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/根目录)项目的根目录就出面文件列表。

     1    <servlet>
     2         <servlet-name>default</servlet-name>
     3         <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
     4         <init-param>
     5             <param-name>debug</param-name>
     6             <param-value>0</param-value>
     7         </init-param>
     8         <init-param>
     9             <param-name>listings</param-name>
    10             <param-value>false</param-value>
    11         </init-param>
    12         <load-on-startup>1</load-on-startup>
    13     </servlet>

    为了让读者看明白笔者只能在新建一个项目,让大家看明白。如图下

    <2>. 我们在开发过程中可能会发现端口被占用。不要担心。把到Tomcat的真实路经下tomcatin文件夹下面。在运行一下shutdown.bat。当然你的tomcat一定要保证能运行。因为有一些情况eclispse可以用。但是独立却不能运行。请自己行配置一下就行了。实在不行的话。同样子找到server.xml,并找到底下代码的部分。把8080改成为你想要的端口号即可。

    1 <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
    本章总结

    本章主要讲的如何配置struts2。当然笔者成功的运行项目的时候。笔者认为struts2.xml文件是一个重要的文件。他是struts2的如何找到对应的action类的重要信息的存放点。同时笔者也明白了一点:StrutsPrepareFilter类一定要在StrutsExecuteFilter类前面执行。否则会出错。不信,你们可以试试。当然如果用StrutsPrepareAndExecuteFilter那就是没有什么前后的问题了。

  • 相关阅读:
    [No000068]document.body.clientHeight 和 document.documentElement.clientHeight 的区别
    [No000067]Js中获取当前页面的滚动条纵坐标位置scrollTop
    jquery 给a标签绑定click
    java 延时
    MySQL建表语句+添加注释
    ubuntu 搜狗输入法内存占用太多,卡顿不够处理办法
    org.apache.http.client.HttpClient使用方法
    json 文件打读取
    bootStrap @media 用法
    java web项目获取项目路径
  • 原文地址:https://www.cnblogs.com/hayasi/p/5807862.html
Copyright © 2011-2022 走看看