Struts2的背景

  1. 由出色稳定的框架struts1和webwork框架整合而来的
  2. 吸取了两大框架的优点
  3. 提高了开发的效率和规范性
  4. 更好的实现了MVC架构
  5. 解除了与servlet的强耦合性

使用struts2框架的意义

  1. 更敏捷的开发
    1. 自动封装表单提交数据:属性驱动,模型驱动
    2. 便捷的实现上传文件:fileupload
    3. 使网站通用于国内外:国际化
    4. 通过配置完成表单验证:校验器
    5. 强大的标签库:Struts2标签库,OGNL标签库
  2. 更科学的管理
    1. 使用xml文件管理程序文件对应关系
  3. 更安全的操作
    1. 安全的线程机制:每个action都是独立的
    2. 防止了数据的重复提交:token令牌机制
  4. 先进的编程思路
    1. 面向切面编程:拦截器

Helloworld

下载路径:http://struts.apache.org/download.cgi#struts2324

第一步把需要的jar文件拷贝过去

第二步把struts.Xml拷贝过去

如果不连接网络的话就不能提示

需要在myeclipse内配置下,将dtd文件的网址复制到浏览器的地址框中,下载。

或者在struts-2.3.24\src\core\src\main\resources目录内也存在dtd文件。

第三步将关于filter的配置拷贝到web.xml中

Struts.Xml的属性配置

<!-- bean标签用于创建一个JavaBean 实例 -->

<!-- constant该标签用于struts2默认行为标签 -->

<!-- package该标签
包标签
用于区分不同的请求文件的标签

        比如说网站前台请求
网站后台请求-->

<!--include该标签用于引入其他的xml配置文件 -->

 


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


<!DOCTYPE struts PUBLIC  


    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  


    "http://struts.apache.org/dtds/struts-2.0.dtd">  


  


<struts>  


    <!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 -->  


    <constant name="struts.i18n.encoding" value="UTF-8" />  


  


    <!--  


        该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。  


        如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。  


    -->  


    <constant name="struts.action.extension" value="do" />  


  


    <!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->  


    <constant name="struts.serve.static.browserCache" value="false" />  


  


    <!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->  


    <constant name="struts.configuration.xml.reload" value="true" />  


  


    <!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->  


    <constant name="struts.devMode" value="true" />  


  


    <!-- 默认的视图主题 -->  


    <constant name="struts.ui.theme" value="simple" />  


  

 

 

Helloworld的例子

 

输入的表单

<form
action="<%=path %>/new/login.action"
method="post">

            用户名:<input
type="text"
name="username"><br>

            密码:<input
type="text"
name="password"><br>

            <input
type="submit"
value="提交">

        </form>

LoginAction

 

public
class LoginAction {

    private String username;//此处
表单内的name必须与此一致

    private String password;

    public String execute(){

        if (username.equals("admin")&&password.equals("123")) {

            return
"success";

        }else {

            return
"fail";

        }

    }

    

    public String getUsername() {

        return
username;

    }

    public
void setUsername(String username) {

        this.username = username;

    }

    public String getPassword() {

        return
password;

    }

    public
void setPassword(String password) {

        this.password = password;

    }

    

}

配置struts.xml文件 表单中访问的路径也要加上namespace的名字

<package
name="test" extends="struts-default" namespace="/new">

<action
name="login"
class="com.pcx.filter.LoginAction">

<result
name="success">/success.jsp</result>

<result
name="fail">/fail.jsp</result>

</action>

</package>

Struts2的属性驱动和模型驱动帮我们完成了数据的获取和数据的封装。

加入struts2的标签库的支持 <%@tagdlib prefix="s" uri="/struts-tags"%>

 

 

 

 

注意:要想拿到当前应用程序的路径需要在请求的路径前面加上

action="<%=request.getContextPath() %>

 

Structs2笔记①--structs的背景、structs2框架的意义、第一个helloworld的更多相关文章

  1. X-Cart 学习笔记(二)X-Cart框架1

    目录 X-Cart 学习笔记(一)了解和安装X-Cart X-Cart 学习笔记(二)X-Cart框架1 X-Cart 学习笔记(三)X-Cart框架2 X-Cart 学习笔记(四)常见操作 四.X- ...

  2. X-Cart 学习笔记(三)X-Cart框架2

    目录 X-Cart 学习笔记(一)了解和安装X-Cart X-Cart 学习笔记(二)X-Cart框架1 X-Cart 学习笔记(三)X-Cart框架2 X-Cart 学习笔记(四)常见操作 3.了解 ...

  3. [.NET] 《Effective C#》快速笔记(四)- 使用框架

    <Effective C#>快速笔记(四)- 使用框架 .NET 是一个类库,你了解的越多,自己需要编写的代码就越少. 目录 三十.使用重写而不是事件处理函数 三十一.使用 ICompar ...

  4. 嵌入式Linux驱动笔记(十八)------浅析V4L2框架之ioctl【转】

    转自:https://blog.csdn.net/Guet_Kite/article/details/78574781 权声明:本文为 风筝 博主原创文章,未经博主允许不得转载!!!!!!谢谢合作 h ...

  5. go语言,golang学习笔记3 用命令下载框架报错问题解决 设置环境变量

    go语言,golang学习笔记3 用命令下载框架报错问题解决 设置环境变量 下载安装:go get github.com/astaxie/beego 首页 - beego: 简约 & 强大并存 ...

  6. .NET MVC 学习笔记(二)— Bootstrap框架

    二..NET MVC 学习笔记(一)—— Bootstrap框架 在实际开发过程中,页面的样式问题是让人很头疼的问题,良好的用户界面可以大大提高用户体检,而在你没有前端开发人员的火力支援情况下,并不是 ...

  7. 《Effective C#》快速笔记(四)- 使用框架

    .NET 是一个类库,你了解的越多,自己需要编写的代码就越少. 目录 三十.使用重写而不是事件处理函数 三十一.使用 IComparable<T> 和 IComparer<T> ...

  8. Spring框架学习笔记(3)——SpringMVC框架

    SpringMVC框架是基于Spring框架,可以让我们更为方便的进行Web的开发,实现前后端分离 思路和原理 我们之前仿照SpringMVC定义了一个自定义MVC框架,两者的思路其实都是一样的. 建 ...

  9. nodejs学习笔记一:安装express框架并构建工程目录

    偶遇node是在一个阳光明媚的上午,无意间打开博客看到一片关于nodejs的介绍,通读全篇后,心情跌宕起伏,哎呀,这么好的东西我竟然现在才知道,这是最气的,于是马上开始制定学习nodejs计划,好了, ...

随机推荐

  1. 面向对象之static关键字

    static概念 static它是静态修饰符,一般用来修饰类中的成员. static特点 1.多个对象共享一个static成员变量.一个对象将static成员变量值修改了,其他对象中的static成员 ...

  2. 阿里云CentOS自动备份MySql 8.0并上传至七牛云

    本文主要介绍一下阿里云CentOS7下如何对MySql 8.0数据库进行自动备份,并使用.NET Core 将备份文件上传至七牛云存储上,并对整个过程所踩的坑加以记录. 环境.工具.准备工作 服务器: ...

  3. 【Len's DMG】macOS Mojave 10.14.1 正式版 18B75 With Clover 4726原版镜像

    亮点:本次10.14.1正式版镜像更新config配置文件SMbios机型信息,让识别更趋于完善,自带去除10.14.1 USB端口限制补丁和最新USBInjectAll.kext,移除大量可能造成卡 ...

  4. wp apps

    WP apps: 明星脸 用于 Windows 10 的 URL https://www.microsoft.com/store/apps/9nblggh5kq63 用于 Windows Phone ...

  5. # 课堂测试(CH6)20155218

    课堂测试(CH6) 1. 下面代码中,对数组x填充后,采用直接映射高速缓存,所有对x和y引用的命中率为(D) A . 1 B . 1/4 C . 1/2 D . 3/4 解析:在x[0],y[0]时发 ...

  6. Python_sklearn机器学习库学习笔记(六) dimensionality-reduction-with-pca

    # 用PCA降维 #计算协方差矩阵 import numpy as np X=[[2,0,-1.4], [2.2,0.2,-1.5], [2.4,0.1,-1], [1.9,0,-1.2]] np.c ...

  7. 菜鸟vimer成长记——第4.2章、编程插件

    简介 这部分的插件是与编程相关的插件.主要涉及两大块:所有编程语言通用的插件,以及各个语言独有的插件.插件的数量和合理性,这可能是一个不断累积和修正的过程. 个人感觉,现在比较适合sh,html,ma ...

  8. dubbo 接口初入门

    最近公司开发新的一套系统,开发出来的方案会基于dubbo分布式服务框架开发的,那么什么是dubbo,身为测试的我,第一眼看到这个,我得去了解了解dubbo是啥玩意,为开展的测试工作做准备,提前先学 d ...

  9. SpringBoot日记——登录与拦截器篇

    之前的文章我们把登录页写了出来,但是想要让登录现实他的基本功能,要如何做呢?本篇文章就来帮你实现第一步,让登录页对账号密码做校验,并且完成登录跳转. LoginController 1. 要实现登录, ...

  10. 【日常训练】Help Far Away Kingdom(Codeforces 99A)

    题意与分析 题意很简单,但是注意到小数可能有一千位,作为一周java选手的我选择了java解决. 这里的分析会归纳一些必要的Java API:(待补) 代码 /* * ACM Code => c ...