struts.* 基础(by cju)
自己一星期总结:2008-10-26 04:45下午
struts
1.Struts的基本流程MVC2(model-view-contrller)
from(数据业务model)
|
IE(浏览器)----总调(ActionListener)----Action(C2)----Service(javabean)
| |
| 回到总调(ActionListener)
config.xml和.jsp
model分为业务model、数据model
Struts开发
(1)、 创建表单 extends ActionForm
(2)、 登记表单 struts-config.xml
(3)、 创建分管经理 extends Action(覆盖 execute() 方法)
(4)、 定义流程 struts-config.xml
scope="request" 解释 把表单缓存在仓库Request中
***注意用struts开发时要配置web.xml 配置如下
<web-app>
<servlet>
<servlet-name>controller</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>controller</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
2.文件上传
用到FormFile
具体的操作:
FormFile photo = user.getPhoto();//获取user中的图片流
InputStream is=photo.getInputStream();
String path = application.getRealPath("photo");//路径
FileOutputStream fos = new FileOutputStream(path+"/"+user.getName()+".gif");
int i;
while ((i=is.read())!=-1){
fos.write(i);
}
fos.close();
is.close();
3.中文乱码处理方案
(1)利用filter过滤器
(2)利用request.setCharacterEncoding("GBK");进行强转
(3)利用Struts进行转换(模板模式)(例子留言板3)
方法:继承类RequestProcessor
原因:RequestProcessor是在Form时会调用的九个方法之一,覆盖这个方法可以进行转换
注:在运用图片等上传时request.setCharacterEncoding("GBK");进行中文转换
4.设计模式
java设计模式一共有23种
1,模板模式(由父类定义流程,子类去覆盖)应用很广
5.动态表单(重点)
有人建议所有的表单都可以做成动态表单,可以不要Form
动态表单DynaActionForm
<form-beans>
<form-bean name="loginForm" type="org.apache.struts.action.DynaActionForm">
<!—在下面制定Form的属性 -->
<form-property name="email" type="java.lang.String "/>
<form-property name="password" type="java.lang.String "/>
<!—可以为属性设置默认值 -->
<form-property initial="false" name="rememberMe" type="java.lang.Boolean "/>
</form-bean>
<form-beans>
6.程序设计应尽量降低耦合度,
最好能使程序片分开互不影响,
构架的目的:降低层与层之间的依赖性,容易变化的依赖稳定的。
7.校验
校验有两种(1)用Form.validate()服务器端的校验
(2)配置文件脚本
注:一般的校验都交由客户端处理(javascript)
8.实体关系(重点)
实体关系分为 1:1 /1:n/m:n 三种,注意体会,学会利用关系进行建sql表和处理对象
9.表达式和jstl(重点自学)
1.表达式语言EL
基本 获取本javabean中的对象的值 ${user.name}
Empty操作符 ${empty a} a不存在返回true
判断 ${A?B:C}
page内的属性名和它的值进行映射 ${pageScope.user}
对请求范围内的属性名和值进行映射 ${requestScope.name}
对会话范围内的属性名和值进行映射 ${sessionScope.name}
2.标准标签库jstl
Core标签库
一般用途<c:out><c:set><c:remove><c:catch>
条件标签<c:if><c:choose><c:when><c:otherwise>
迭代标签<c:forEach><c:forTokens>
URL相关的标签<c:import><c:url><c:redirect><c:param>
I18N标签库和国际化标签(不太熟的)
struts.* 基础(by cju)相关推荐
- struts基础配置
struts2是针对MVC思想的具体实现,对应于MVC中的C即Controller控制器层,有以下优点: 通过简单.集中的配置来调度业务类,是的配置和修改都很容易. 提供简单.统一的表达式语言来访问所 ...
- Struts学习笔记--(二)Struts基础
本文为how2java Struts教程的学习笔记,原教程链接如下:http://how2j.cn/k/struts/struts-jsp/55.html 中文问题 修改addProductjsp 修 ...
- servlet+jsp基础 by cju
servlet+jsp 1,验证码 作用:防止恶意注册(利用代码重复注册导致服务器瘫痪); 动态生成验证码servlet继承与HttpServlet,验证码通常是以图片的形式显 ...
- 名师讲坛——Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax)
[书名]<名师讲坛--Java Web开发实战经典基础篇(JSP.Servlet.Struts.Ajax)> [作者]李兴华.王月清 [ISBN]9787302231585 }:YKf: ...
- 名师讲坛—Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax)
名师讲坛-Java Web开发实战经典基础篇(JSP.Servlet.Struts.Ajax) 基本信息 作者: 李兴华 王月清 出版社:清华大学出版社 ISBN:9787302231585 ...
- 【Web】Eclipse + Maven + Struts搭建服务器
一.环境 系统:Windows7 IDE:Eclipse-Kepler Service Release 2 使用插件:Maven(请预先在电脑上安装Maven) 二.搭建 在Eclipse中新建一个M ...
- struts——struts在升级,作为程序员,该怎样以不变应万变?
struts在升级,作为程序员,该怎样以不变应万变? 怎样学习新版本struts? 今天无意中翻看了一下struts2.0,结果发现它与struts1.1有很大的变化,可以说已经变的面目全非了.作为程 ...
- ajax如何处理程序设计,Struts与Ajax高级程序设计
摘要: <Struts与Ajax高级程序设计>详细介绍了Struts MVC Web 框架的使用方法,可以帮助读者解决在日常Web 应用程序开发中遇到的各种难题.不合理的设计会导致对Str ...
- java基础 - 1
目录 第一章:Java开始 1 学习目标 1 Java历史 2 Java技术概述 3 Java技术的优点 3 Java虚拟机 4 类加载器 6 Windows环境变量 8 内容总结 13 独立实践 1 ...
最新文章
- 华为南太无线解决方案部梁旭阳_工业互联网产业联盟网络组走进华为南京研究所技术研讨会顺利召开...
- Centos7 MYSQL安装与基础命令运用
- Facebook高管:我们是科技公司 不是媒体公司
- 【c++】iostreeam中的类为何不可以直接定义一个无参对象呢
- Atitit.异步编程 java .net php python js 对照
- java元婴期(22)----java进阶(mybatis(1)---mybatis框架概述入门程序)
- 6月共处理钓鱼网站8186个:非CN域名达8029个
- Struts2中Action的属性接收参数
- Security+ 学习笔记54 安全政策
- git中Bash基本操作命令
- 解决方案:如何防止数据重复插入
- 最全的软件开发报价标准
- python 人体建模_Matplotlib学习---可视化人体姿态
- 服务器配置参数主要有哪些
- uniapp省市区三级联动
- 南京大学计算机专业复试面试,2014 CS复试全面回忆 上机真题 面试血泪史
- 1. 遥控器-华科尔Devo7e 改造成为支持 dsm2/dsmx 的多制式遥控器
- 计算机导航窗格里没有桌面,今天解决win10 导航窗格怎么添加桌面的解决环节
- dimm和udimm_Adata推出32GB DDR4-2666 UDIMM和SO-DIMM
- 基于OTSU算法和基本粒子群优化算法的双阈值图像分割