在学习SSH框架之前,首先需要熟悉servlet,然后再去替代它。

Struts:

教程:

part1  基础配置

首先去官网下载Struts,下载这个大小为65MB的

压缩后,就可以将其中的lib中的jar导入了,其实不用全部导入,常见的jar包如下:

然后就是编写代码了,

首先去web.xml配置filter,加入以下配置,这个filter配置是第一步,但是目前以我短浅的学习暂时不能说出它的作用

<filter><filter-name>struts</filter-name><filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts</filter-name><url-pattern>/*</url-pattern></filter-mapping>

接着,假设我们有一个html页面了,页面里有一个表单,表单的action属性跳转到一个链接,这个添加填上myAction,于是我们再建一个java类,名字就是myAction, extends ActionSupport,然后实现excute方法,该方法返回String值,和struts.xml中相对应。当然,光是编写了一个myAction的类是不能将表单的链接和类关联起来的,还需要struts.xml文件,其实如果熟悉servlet的xml配置,原理都差不多

html界面的表单写法

<form action="<%=request.getContextPath() %>/loginAction" method = "post">
用户名:<input type = "text" name = "userName"/><br/>
密码:<input type="password" name = "password"/><br/>
<input type="submit" value="登录"/>

struts.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><!-- 配置包名,便于区分   namespace直译是命名空间,作用是绑定url前缀,即在访问页面时该加什么前缀 --><package name="mypackage" extends="struts-default" namespace="/"><!-- action的名字   对应哪一个类   method属性指定调用类中的哪个方法处理 --><action name="loginAction" class="com.bowen.controller.MyAction" method="excute"><!--配置方法的返回值--><result name="success">/index.jsp</result><result name = "fail">/login.jsp</result></action></package>
</struts>

对于该配置文件中的result标签,它的name与你编写的excute方法的返回值相对应,标签内部指定跳转的地址

result标签还可以指定跳转类型,比如重定向,或者再跳转到一个action:

<result name="success" type="redirect">/index.jsp</result>
<result name = "fail" type="chain">action2</result>

之前用过servlet都知道,解决中文乱码要加上几句话,而struts中则是在web.xml配置文件中加入

<filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

part 2  参数传递问题

在传统的servlet中我们采用request和response传递参数,但是struts2如果想用同样的方式传递参数,可以:

HttpServletRequest req = ServletActionContext.getRequest();

HttpServletResponse resp = ServletActionContext.getResponse();

获取request和response,再getAttribute,但实际上还有其他方式

我们一般使用ModelDriven接口,在编写的action类里继承ModelDriven,然后实现getModel方法,具体的可以参考下面的网址,毕竟我也是初学者,没有别人讲的好,而modelDriven背后的机制又特别迷惑,目前我只能停留在应用的阶层。

https://blog.csdn.net/weixin_39220472/article/details/80296890

此外,我们还需要request,response等对象,而在struts中,所有的这些对象都被集中在ActionContext中,你想要的对象它应有尽有,可以这样获得一个想要的对象

Map<String, Object> session = ActionContext.getContext().getSession();

可以看出它就是一个Map,可以通过put的方法来存值

session.put("name", "Tom");

之后就是ognl表达式和struts标签了,和jstl表达式类似,但是又不一样

https://www.cnblogs.com/mingforyou/p/4483945.html

上面的博客可以快速入门,如何使用struts标签,将它和jstl做了比较

SSH学习(个人笔记)相关推荐

  1. linux网络配置命令笔记,初学者学习linux笔记与练习-第二天。一些基本命令以及初级网络配置...

    菜鸟学习linux笔记与练习-----第二天.一些基本命令以及初级网络配置 基本命令 ??uname -a -s ??hostname显示主机名 若是要永久生效,则编辑以下文件 ??#vim /etc ...

  2. python神经结构二层_《python深度学习》笔记---8.3、神经风格迁移

    <python深度学习>笔记---8.3.神经风格迁移 一.总结 一句话总结: 神经风格迁移是指将参考图像的风格应用于目标图像,同时保留目标图像的内容. 1."神经风格迁移是指将 ...

  3. tensorflow学习函数笔记

    为什么80%的码农都做不了架构师?>>>    [TensorFlow教程资源](https://my.oschina.net/u/3787228/blog/1794868](htt ...

  4. CSDN技术主题月----“深度学习”代码笔记专栏

    from: CSDN技术主题月----"深度学习"代码笔记专栏 2016-09-13 nigelyq 技术专题 Hi,各位用户 CSDN技术主题月代码笔记专栏会每月在CODE博客为 ...

  5. 深度学习-最优化笔记

    深度学习-最优化笔记 作者:杜客 链接:https://zhuanlan.zhihu.com/p/21360434 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 译 ...

  6. 深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening

     深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening 主成分分析与白化是在做深度学习训练时最常见的两种预处理的方法,主成分分析是一种我们用的很多的降维的一种手段,通 ...

  7. 深度学习入门教程UFLDL学习实验笔记一:稀疏自编码器

     深度学习入门教程UFLDL学习实验笔记一:稀疏自编码器 UFLDL即(unsupervised feature learning & deep learning).这是斯坦福网站上的一篇 ...

  8. 学习LOAM笔记——特征点提取与匹配

    学习LOAM笔记--特征点提取与匹配 学习LOAM笔记--特征点提取与匹配 1. 特征点提取 1.1 对激光点按线束分类 1.2 计算激光点曲率 1.3 根据曲率提取特征点 2. 特征点匹配 2.1 ...

  9. 学习MSCKF笔记——后端、状态预测、状态扩增、状态更新

    学习MSCKF笔记--后端.状态预测.状态扩增.状态更新 学习MSCKF笔记--后端.状态预测.状态扩增.状态更新 1. 状态预测 2. 状态扩增 3. 状态更新 学习MSCKF笔记--后端.状态预测 ...

  10. 学习MSCKF笔记——真实状态、标称状态、误差状态

    学习MSCKF笔记--真实状态.标称状态.误差状态 学习MSCKF笔记--真实状态.标称状态.误差状态 1. 连续时间系统 1.1 真实状态运动学公式 1.2 标称状态运动学公式 1.3 误差状态运动 ...

最新文章

  1. netcore 图片 文件大小_NetCore 3.0文件上传和大文件上传的限制详解
  2. forall分批提交oracle,使用BULK COLLECT+FORALL加速批量提交
  3. 如何构造强度较高的密码
  4. 青龙羊毛——去闲转(教程)
  5. python3菜鸟-菜鸟笔记Python3——数据可视化(一)
  6. 【转】Go 语言教程(2)——表达式
  7. Spring.Net学习
  8. 4、路由器和主机如何配置IP地址等信息才能使计算机相互通信
  9. 一张图片教你识别Vue的premission的权限管理,您细品\(^o^)/~
  10. Code Runner for VS Code 突破 1000 万下载量!支持运行超过 40 种语言
  11. Matlab控制精度
  12. 干货集锦:200+生信范文、30+款软件、12类图片素材PPT,今年的SCI稳了!(附下载)...
  13. 小米10首销战绩公布:嘴上说不买身体却很诚实
  14. 今日头条们的 App 内容页技术实现与优化 | CSDN技术头条
  15. 解决WPS文档不加载金格office360签章的问题
  16. mybatis文档地址
  17. 解决Source Not Found问题
  18. HBuilder制作表格式的简历
  19. 苹果电脑QQ邮件服务器,苹果邮件设置qq邮箱的步骤_苹果电脑自带邮件怎么设置qq邮箱-win7之家...
  20. 《数学之美》 读书笔记

热门文章

  1. Linux目录标准FHS介绍
  2. 设计模式(2)六大原则(七大原则)
  3. 微信读书电脑版更改字体
  4. 【MySQL】MySQL高手是如何练成的?
  5. @EnableCaching、@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig:缓存核心注解,用来实现缓存功能...
  6. FPGA设计——图像处理(锐化增强)
  7. RK3288 OTG切换为Host模式
  8. 统计|如何理解线性回归分析中残差检验的基本步骤
  9. html中a标签的种类
  10. 热部署与定时任务冲突问题解决方案