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() %>

转载于:https://www.cnblogs.com/chengzhipcx/p/4752786.html

Structs2笔记①--structs的背景、structs2框架的意义、第一个helloworld相关推荐

  1. 牌类游戏使用微服务重构笔记(四): micro框架使用经验

    项目依赖 推荐使用go module, 我选择go module的最主要原因是足够简单,可以脱离gopath,就跟写nodejs一样,随便在一个地方新建一个文件夹就可以撸代码了,clone下来的源码也 ...

  2. 爬虫学习笔记(十)—— Scrapy框架(五):下载中间件、用户/IP代理池、settings文件

    一.下载中间件 下载中间件是一个用来hooks进Scrapy的request/response处理过程的框架. 它是一个轻量级的底层系统,用来全局修改scrapy的request和response. ...

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

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

  4. Unity3D 学习笔记4 —— UGUI+uLua游戏框架

    Unity3D 学习笔记4 -- UGUI+uLua游戏框架 使用到的资料下载地址以及基础知识 框架讲解 拓展热更过程 在这里我们使用的是uLua/cstolua技术空间所以提供的UGUI+uLua的 ...

  5. Spring Boot 框架学习笔记(五)( SpringSecurity安全框架 )

    Spring Boot 框架学习笔记(五) SpringSecurity安全框架 概述 作用 开发示例: 1. 新建项目 2. 引入依赖 3. 编写`SecurityConfig`类,实现认证,授权, ...

  6. motan学习笔记 一 微博轻量级RPC框架Motan

    前言 motan学习笔记 一 微博轻量级RPC框架Motan motan学习笔记 二 motan架构分析 motan学习笔记 三 motan Demo 分析 motan学习笔记 四 motan Dem ...

  7. ⑤ESP8266 开发学习笔记_By_GYC 【ESP8266 IDF框架 使用C++编程】

    ⑤ESP8266 开发学习笔记_By_GYC [ESP8266 IDF框架 使用C++编程] 目录 ⑤ESP8266 开发学习笔记_By_GYC [ESP8266 IDF框架 使用C++编程] 一.简 ...

  8. nrf52832 学习笔记(二)SDK框架分析

    nrf52832 学习笔记(二)SDK框架分析 个人对SDK框架的一些理解,如有错误欢迎斧正. flash 分区 在不包含DFU的情况下,nrf52832 flash划分为: MBR 0x000000 ...

  9. 【图神经网络】图神经网络(GNN)学习笔记:GNN的通用框架

    图神经网络GNN学习笔记:GNN的通用框架 1. MPNN 2. NLNN 3. GN 参考资料 所谓通用框架,是对多种变体GNN网络结构的一般化总结,也是GNN编程的通用范式,这里介绍3类通用框架: ...

  10. 爬虫学习笔记(九)—— Scrapy框架(四):FormRequest、日志

    一.Request Scrapy.http.Request类是scrapy框架中request的基类.它的参数如下: url(字符串) - 此请求的URL callback(callable)- 回调 ...

最新文章

  1. RabbitMQ 学习
  2. (1)访问控制 (2)final关键字 (3)对象创建的过程 (4)多态
  3. 一款实用可行的支付系统,专供互联网企业使用,赶紧收藏了!
  4. optee的RPC设计(模型)详解
  5. DirectShow学习
  6. Mybatis更新和删除数据
  7. selenium===使用docker搭建selenium分布式测试环境
  8. Magento布局layout.xml文件详解
  9. Chrome“无法添加来自此网站的应用、扩展程序和应用脚本”的解决办法
  10. Java乔晓松-android中调用系统拍照功能并显示拍照的图片
  11. Mongodb 3.2.X 添加admin的root账户
  12. 密码攻击之基于字典和彩虹表的密码攻击
  13. 日常生活 - 打印机如何扫描文件到电脑上
  14. 关于概率论中常错的考点 左偏右偏
  15. 古文觀止卷七_獲麟解_韓愈
  16. Java 线程池常见误区
  17. 马王堆汉墓帛书‧老子乙本——道经
  18. DLL load failed while importing _cvxcore解决办法
  19. 操作系统笔记(二):进程和线程
  20. Centos安装Docker

热门文章

  1. iOS开发之超级签名-原理/机制/技术细节-完全解析(暂时还没有验证)
  2. Nova for mac(强大的代码编辑工具)
  3. mac升级为macOS big sur菜单栏不显示WiFi怎么办?
  4. 博客园美化资源网站链接
  5. 针对云原生转型的6个关键数据策略
  6. 超过父控件的部分不能响应事件怎么办
  7. 一看数分就想写个程序玩玩。。。
  8. HTTP状态码介绍详细
  9. Windows 11正式发布!网友的这波吐槽,太搞笑了。。。
  10. IntelliJ IDEA 查看类继承关系图,太强大了!