首先做一个练习,步骤总结(实例以JBuilder 2006开发)
题目是[Struts用户注册]
1. 创建一个工程;之后在这个工程下建立一个WEB模型,在建立的过程时选择Struts为框架。
2. 建立一个新的JSP页面,选择该页面用Struts。
表单中的
<html:form action="/regAction.do" method="post">
意思为提交给regAction.do,提交方式为post,注意的是此用的提交给谁要与struts-config.xml文件的
<action name="regActionForm" path="/regAction" >
path
写的一致,后缀省略,也可以先建立ActionForm 与Action .此处按个人喜欢吧,但建议先建立视图层的再建立业务的,最后是数据库层。(以MVC)
写的一致,后缀省略,也可以先建立ActionForm 与Action .此处按个人喜欢吧,但建议先建立视图层的再建立业务的,最后是数据库层。(以MVC)
3.建立一个Action 这个是子控制器,根据业务所需要建立。(默认下Struts已经建立了一个主控制器也就是Servlet,所有请求都将通过它处理,默认在Web.xml中配置名为action,将处理所有带*.do的请求)
在建立这个Action 时注意要配置的一些参数
<action
path="/regAction" //请求来源
name="regForm" //存储表单数据的actionform
validate="true" //是否进行表单验证
input="/reg.jsp" //表单验证失败的去向
scope="request" //将通过验证的actionform存储在哪个范围
type="strutsprj_t2.RegAction" //处理表单数据的业务类
>
4. 写一个实体Bean,针对某张表,以此例将有五个属性,新建中选择JavaBean 之后就配置好一些get/set方法
先在plus库中建立users表
-------------------------------------------------------------------------------------
create table users
(
uid int identity(1,1) not null,
username varchar(20) not null,
password varchar(20) not null,
email varchar(50) null,
nickname varchar(20) null
constraint pk_uid primary key (uid)
) ------------------------------------------------------------------------------------
-
5. 建立一个ActionForm ,这个建立的时候可以从上面的index.jsp页面中自动生成一个相应的ActionForm的java类,它有表单中的属性值的获取方法,相当于临时的一个Bean,它的一些方法一般无需改动。
6. 在Action建立的时候系统并创建了一具类 为xxxAction.java 此类一般用于处理请求表单时所经过的类,其实它是由主控制器分配过来的。一般的业务逻辑都在这里完成。主要在execute方法里完善代码并返回一个ActionForward对象。转发至某某页面
1)先从表单读取文本框中的数据并封装到实体Bean对象中
2)再把user对象交给数据库方法去进行操作(DAO),再建立一个类,该类为底层数据库操作的类
该类有两个方法:
方法一为接收对象查询数据库是否已经存在相同的用户并返回真假。
方法二为接收对象直接往数据库添加该对象并写入数据库。
7. 根据逻辑进行配置好成功页面与失败页面。并配好struts-config.xml的转发页面,页面当然事先建立好
注意: 以上步骤完成之后还有一些细节问题没解决,那就是中文接收。
首先思考一个问题,在二期时咱们都是通过请求到Servlt,在请求对象request 中设置接收的编码格式,而在Struts中这个Servlet已经自己生成,所以我们无法再去改写里面的代码。此时struts中提出了RequestProcessor概念,它意思是指每当用户请求.do的时候,struts主控制器都会把处理转交给RequestProcessor,所以我们只要重写RequestProcessor类里的processPreprocess()方法即可解决中文问题
1) 创建一个类继承与RequestProcessor类,并找到它的方法processPreprocess(HttpServletRequest request, HttpServletResponse response)重写它,在里面加入
request.setCharacterEncoding("gb2312");
说明:processPreprocess()方法 告诉请求处理器调用此方法后,是否继续处理请求
意思请求的时候都要先经过它才判断是否继续往后的请求处理,所以它是返回boolean值的
2) <controller processorClass="mystruts7.MyRequestProcessor"/>
此步为告诉配置文件,我要做的请求都将通过以上指定的类处理。它一般配置在<action-mappings>之后
再改进一下上面的例子,我们使用[数据源],这个知识点只是要了解,不用深究,因为它应用不广。
它的创建步骤如下
1. 首先配置好struts-config.xml文件的DataSource,一般双击它会出现提示向导
配置之前要注意的是它需要两个JAR包,需要导入工程中去
commons-dbcp-1.2.1.jar
commons-pool-1.2.jar
2. 通过Action类中获得DataSource对象;因为上面的配置中它获得的对象是存在application范围中
在Action类的execute方法中获得
ServletContext context = this.servlet.getServletConfig().getServletContext();
DataSource ds = (DataSource)context.getAttribute("dataSource");//为配置文件中的key
Javax.sql.DataSource 获得DataSource对象后通过它的一个方法返回联接对象 ds.getConnection();
分享到:
相关推荐
struts2学习笔记,非本人所写,但有学习的价值,总结的很好,分享一个!
struts2学习笔记总结
Struts2学习笔记,介绍了struts2的基础部分
这是学习struts2时记得重点笔记,包括了一些原理,ognl语句的编写,以及如何设置拦截器等等一些基本知识,起到复习和巩固的作用
自己学习struts的笔记,希望对大家有一点点帮助。
MVC框架struts学习笔记1MVC框架struts学习笔记1MVC框架struts学习笔记1
Struts学习笔记 Struts学习笔记 Struts学习笔记
struts2学习笔记,拦截器,action,所需jar包,从零开始
Struts 学习笔记 Struts 中扩展JfreeChart 笔记 很详细 很实例 的 对 Jfreechart 描述的很好
struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换
本人学习struts2的笔记,希望大家可以多多学习以后共同交流
1. struts2框架的引入 1)把struts2的相关jar包导入到项目中去 2)把struts2框架的配置文件struts.xml复制粘贴到项目中的src下面(同时也可以把log4j.properties放到src下) 在这里我们主要是要的这个struts.xml文件...
struts2四天的学习笔记。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
Struts学习笔记...
struts2学习笔记二