struts2建立一个最简单的web应用

从头开始,一切明了。

用struts开发也有一段时间了。但自己却一直没有接触框架的内容。今天徒手建了一个最简单的struts2 的web应用。

1,直接在Tomcat webapps 下面建立一个工程目录:webapps/rj

2,在工程目录下面新建文件夹 rj/WEB-INF

3,在WEB-INF下面建立classes和lib目录

4,在WEB-INF/classes 目录下面创建struts.xml 文件

struts.xml 文件内容如下:

<?xml version="1.0" encoding="GBK"?>
<!-- 指定Struts 2配置文件的DTD信息 -->
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<!-- struts是Struts 2配置文件的根元素 -->
<struts>
      <!-- Struts 2的Action必须放在指定的包空间下定义 -->
      <package name="strutsqs"  extends="struts-default">
       	<!-- 定义login的Action,该Action的实现类为com.tomp.action.LoginAction类 -->
        <action name="login" class="com.tomp.action.LoginAction">
	    		<!-- 定义处理结果和资源之间映射关系。 -->
					<result name="error">/error.jsp</result>
					<result name="success">/welcome.jsp</result>
		</action>
     </package>
</struts>

5,在工程目录rj/WEB-INF下面创建web.xml文件。

web.xml文件内容如下:

<?xml version="1.0" encoding="GBK"?>  
<!-- web-app是Web应用配置文件的根元素,指定Web应用的Schema信息 -->  
<web-app 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">  
 
    <welcome-file-list>  
        <welcome-file>index.jsp</welcome-file>  
    </welcome-file-list>  
  <!-- 定义Struts 2的FilterDispatcher的Filter -->  
  <filter>  
      <!-- 定义核心Filter的名字 -->  
     <filter-name>struts2</filter-name>  
      <!-- 定义核心Filter的实现类 -->  
      <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>  
  </filter>  
  <!-- FilterDispatcher用来初始化Struts 2并且处理所有的Web请求 -->  
  <filter-mapping>  
      <filter-name>struts2</filter-name>  
      <url-pattern>/*</url-pattern>  
  </filter-mapping>  
</web-app>  

6,在工程目录rj下面建立三个jsp页面:

index.jsp,success.jsp,error.jsp

index.jsp 内容如下:

<%@ page language="java" contentType="text/html; charset=GBK"%>  
<html>  
<head>  
<title>登录页面</title>  
</head>  
<body>  
<!-- 提交请求参数的表单 -->  
    <form action="login.action" method="post">  
     <table align="center">  
    <caption><h3>用户登录</h3></caption>  
          <tr>  
      <!-- 用户名的表单域 -->  
           <td>用户名:<input type="text" name="username"/></td>  
         </tr>  
          <tr>  
         <!-- 密码的表单域 -->  
              <td>密  码:<input type="text" name="password"/></td>  
          </tr>  
         <tr align="center">  
               <td colspan="2"><input type="submit" value="登录"/><input type="reset" value="重填" /></td>  
         </tr>  
      </table>  
    </form>  
</body>  
</html>  

success.jsp内容如下:

<%@ page language="java" contentType="text/html; charset=GBK"%>  
<html>  
<head>  
<title>success</title>  
</head>  
<body>  
天啦,你成功了!
</body>  
</html> 

eror.jsp 页面内容就不写了,不会失败的。

7,在WEB-INF /lib下面加入如下5个struts2 必须得包:


8,新建java文件如下:

//Struts 2的Action类就是一个普通的Java类
package com.tomp.action;

public class LoginAction {

       //下面是Action内用于封装用户请求参数的两个属性
       private String username;
 			 private String password;

       //username属性对应的getter方法
       public String getUsername(){
              return username;
       }

       //username属性对应的setter方法

       public void setUsername(String username){
              this.username = username;
       }

       //password属性对应的getter方法
       public String getPassword(){
              return password;
       }

       //password属性对应的setter方法
       public void setPassword(String password){
              this.password = password;
       }

       //处理用户请求的execute方法
       public String execute() throws Exception{
              //当用户请求参数的username等于scott,密码请求参数为tiger时,返回success字符串
              //否则返回error字符串
              if (getUsername().equals("scott")&& getPassword().equals("tiger")){
                   return "success";
              }
              else{
                   return "error";
              }
       }
}

编译好,按路径放到WEB-INF/classes 目录下

路径应该如下:WEB-INF/classes/com/tomp/action/LoginAction.class 

编译方法就不说了,可以用javac命令编译,也可以用编译器。


到这里就完成了。


启动tomcat 输入。。。。。localhost:端口号/rj 就成功了。


下面说些必备知识:

Struts 一共有5个必备包及作用:

struts2-core-2.1.6.jar ---------------    struts2的核心包

freemarker-2.3.13.jar--------------- FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具

ognl-2.6.11.jar --------------   支持ognl表达式

xwork-2.1.2.jar -------------- xwork的包 由于Struts2是由xwork的延伸 有些类依然关联着 xwork的类

commons-fileupload-1.2.1.jar ------------   struts的上传下载


有这5个就可以正常运行了。少一个都不行。我是一个个看着报的错误加进去的。


web.xml作用:

     每一个web项目都有一个web.xml,如果要用到struts2就必须在web.xml中加上strut2的过滤器,决定struts处理哪些类型请求。
其实他就是负责整个web项目的配置。

我们的代码中如果用到与struts2相关的,首先会找这个配置web.xml中关于struts2 的配置,然后再根据这个配置内容,去找对应的其他配置内容。

如这里:

  <filter>  
      <!-- 定义核心Filter的名字 -->  
     <filter-name>struts2</filter-name>  
      <!-- 定义核心Filter的实现类 -->  
      <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>  
  </filter>  
  <!-- FilterDispatcher用来初始化Struts 2并且处理所有的Web请求 -->  
  <filter-mapping>  
      <filter-name>struts2</filter-name>  
      <url-pattern>/*</url-pattern>  
  </filter-mapping>  
  <filter>  
      <!-- 定义核心Filter的名字 -->  
     <filter-name>struts2</filter-name>  
      <!-- 定义核心Filter的实现类 -->  
      <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>  
  </filter>  
  <!-- FilterDispatcher用来初始化Struts 2并且处理所有的Web请求 -->  
  <filter-mapping>  
      <filter-name>struts2</filter-name>  
      <url-pattern>/*</url-pattern>  
  </filter-mapping>  
红色部分:
<url-pattern>/*</url-pattern>  
表示处理所有类型请求,如果改为

<url-pattern>*.do</url-pattern>  
表示struts只处理.do类型的请求。如果其他类型请求就会pass。不会再去找struts.xml中内容了。


struts.xml

struts.xml就是struts的配置文件。决定过滤剩下的请求由哪个类来处理及处理结果。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值