昨天学习了struts,发现struts并不是struts2同一框架的升级,完全是属于两个框架。struts2是在freework的基础上进行封装的。
1.struts的环境搭载
(1)创建web项目。
(2)导入struts jar包。
(3)struts实质就是对web的封装,减少web层的代码量,依靠配置文件实现。Action为核心类,所以的页面请求经过拦截并交给其actionServlet预处理。
在web.xml文件中配置struts的actionServlet处理所有.do的请求。
(4)在WEB-INF目录中加入struts的工作配置文件:struts-config.xml
(5) 在struts的工作配置文件:struts-config.xml,配置actionServlet收到register请求后,调用ReigsterAction处理,并把请求中的数据封装到registerForm中。
(6)编写封装数据的RegisterFormBean和处理请求的RegisterAction。
2.下面以注册为例
1.写jsp
<form action="${pageContext.request.contextPath }/register.do" method="post">
用户名:<input type="text" name="username"><br/>
密码:<input type="password" name="password"><br/>
电子邮箱:<input type="text" name="email"><br/>
<input type="submit" value="注册">
</form>
2.请求为了交给struts处理,这时需要导入struts开发包
3.在web.xml文件中配置struts的actionServlet处理所有.do的请求
<servlet>
<servlet-name>ActionServlet</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ActionServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
4.在WEB-INF目录中加入struts的工作配置文件:struts-config.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
</struts-config>
5.在struts的工作配置文件:struts-config.xml,配置actionServlet收到register请求后,调用ReigsterAction处理,并把请求中的数据封装到 registerForm中。
<form-beans>
<form-bean name="registerForm" type="cn.itcast.web.formbean.RegisterFormBean"></form-bean>
</form-beans>
<action-mappings>
<action path="/register" name="registerForm" type="cn.itcast.web.action.RegisterAction">
<forward name="message" path="/message.jsp"/>
</action>
</action-mappings>
6.编写封装数据的RegisterFormBean和处理请求的RegisterAction
RegisterFormBean registerForm = (RegisterFormBean) form;
String username = registerForm.getUsername();
String password = registerForm.getPassword();
String email = registerForm.getEmail();
try{
System.out.println("向数据库中注册" + username + "用户");
request.setAttribute("message", "注册成功!!");
}catch (Exception e) {
request.setAttribute("message", "注册失败!!");
}
return mapping.findForward("message");
7.编写显示全局消息的message.jsp页面