Struts1的基本配置
2016-03-17 15:02
513 查看
要学习struts1,先了解struts1的特性和注意的事项:
1.struts1中是使用抽象类而不是接口,因此开发Action类继承一个抽象的基类;
2. struts1的Action是单例模式,并且必须是线程安全的,因为只有Action的一个实例来处理所有的请求,所以在开发的时候要格外小心,Action资源必须是线程安全的或同步的;
3. Struts1 Action的主要是通过execute()方法暴露了Servlet API,这样就不许使用第三方的容器,比如Tomcat,weblogic,JBoss等;
4. struts的Action依赖于Servlet API,当Action被调用时,HttpServletRequest和HttpServletResponse被传递给执行方法;
5. Struts1 使用ActionForm对象捕获输入。所有的ActionForm必须继承一个基类。因为其他JavaBean不能用作ActionForm,开发者经常创建多余的类捕获输入。
项目配置:
一. 新建一个web项目。
二. 导入struts1需要的lib包:
三. 拷贝struts1案例项目下的web.xml和struts-config.xml配置文件到WEB-INF下
四. 配置web.xml
五. 配置struts-config.xml文件(以一个注册页面为例)
六. 在第五步只要导入基本的配置在第六步是建立Action和相应的ActionForm(以注册为例)
Action:
ActionForm:
七 . 把Action和FormBean配置到struts-config.xml中:
八. 建立JSP页面:
1.struts1中是使用抽象类而不是接口,因此开发Action类继承一个抽象的基类;
2. struts1的Action是单例模式,并且必须是线程安全的,因为只有Action的一个实例来处理所有的请求,所以在开发的时候要格外小心,Action资源必须是线程安全的或同步的;
3. Struts1 Action的主要是通过execute()方法暴露了Servlet API,这样就不许使用第三方的容器,比如Tomcat,weblogic,JBoss等;
4. struts的Action依赖于Servlet API,当Action被调用时,HttpServletRequest和HttpServletResponse被传递给执行方法;
5. Struts1 使用ActionForm对象捕获输入。所有的ActionForm必须继承一个基类。因为其他JavaBean不能用作ActionForm,开发者经常创建多余的类捕获输入。
项目配置:
一. 新建一个web项目。
二. 导入struts1需要的lib包:
三. 拷贝struts1案例项目下的web.xml和struts-config.xml配置文件到WEB-INF下
四. 配置web.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <display-name>Struts Blank Application</display-name> <!-- 所有的*.do的anction都交给了这个ActionServlet来处理 --> <servlet> <servlet-name>action</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> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <!-- Standard Action Servlet Mapping --> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <!-- The Usual Welcome File List --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
五. 配置struts-config.xml文件(以一个注册页面为例)
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <struts-config> <form-beans> </form-beans> <!-- 全局跳转 --> <global-forwards> <forward name="error" path="/ErrorPage.jsp"></forward> </global-forwards> <action-mappings> </action-mappings> </struts-config>
六. 在第五步只要导入基本的配置在第六步是建立Action和相应的ActionForm(以注册为例)
Action:
package action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import form 4000 .RegisterActionForm; public class RegisterAction extends Action{ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception { RegisterActionForm actionForm = (RegisterActionForm)form; String userName = actionForm.getUserName(); String passWord = actionForm.getPassWord(); if(userName != null && !"".equals(userName) && passWord != null && !"".equals(passWord)){ System.out.println("后台收到用户名-->> "+actionForm.getUserName()); System.out.println("后台收到用密码-->> "+actionForm.getPassWord()); return (mapping.findForward("success")); }else{ // return new ActionForward("/default"); return (mapping.findForward("default")); } } }
ActionForm:
package form; import org.apache.struts.action.ActionForm; public class RegisterActionForm extends ActionForm{ private String userName; private String passWord; public void init(){ userName = null; passWord = null; } 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; } }
七 . 把Action和FormBean配置到struts-config.xml中:
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <struts-config> <form-beans> <form-bean name="RegisterActionForm" type="form.RegisterActionForm"></form-bean> </form-beans> <!-- 全局跳转 --> <global-forwards> <forward name="error" path="/ErrorPage.jsp"></forward> </global-forwards> <action-mappings> <action name="RegisterActionForm" path="/register" scope="request" type="action.RegisterAction"> <forward name="default" path="/WEB-INF/register.jsp" redirect="false"></forward> <forward name="success" path="/WEB-INF/success.jsp" redirect="false"></forward> </action> </action-mappings> </struts-config>
八. 建立JSP页面:
<%@ page pageEncoding="utf-8" %> <%@ page errorPage="ErrorPage.jsp" %> <%@ page language="java" import="java.util.*" %> <%@ page import="form.RegisterActionForm" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>注册页面</title> <style type="text/css"> .reg_div{ background-color: #92DCF8; margin:auto; margin-top:15%; height: 200px; width: 350px; } .reg_table{ text-align: center; margin: auto; padding-top: 15%; } </style> <script type="text/javascript" src="script/jquery-1.4.2.min.js"></script> <script type="text/javascript"> function submitPb(){ var f = document.theForm; var userName = f.userName.value; var passWord = f.passWord.value; if($.trim(userName).length == 0 || $.trim(passWord).length == 0){ alert("用户名和密码不能为空!"); return false; } f.submit(); } </script> </head> <body> <form name="theForm" method="post" action="register.do"> <div class="reg_div"> <table class="reg_table"> <tr> <td>帐号:</td> <td colspan="2"><input type="text" name="userName"/></td> </tr> <tr> <td>密码:</td> <td colspan="2"><input type="password" name="passWord"/></td> </tr> <tr> <td></td> <td><input type="button" value="提交" onclick="submitPb();"/></td> <td><input type="reset" value="重置"/></td> </tr> </table> </div> </form> </body> </html>
<%@ page pageEncoding="utf-8" %> <%@ page errorPage="ErrorPage.jsp" %> <%@ page language="java" import="java.util.*" %> <%@ page import="form.RegisterActionForm" %> <% RegisterActionForm form = (RegisterActionForm)pageContext.findAttribute("RegisterActionForm"); %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>提交结果</title> <style type="text/css"> .reg_div{ background-color: #92DCF8; margin:auto; margin-top:15%; height: 200px; width: 350px; } .reg_table{ text-align: center; margin: auto; padding-top: 20%; } </style> <script type="text/javascript"> </script> </head> <body> <form name="theForm" method="post" action="register.do"> <div class="reg_div"> <table class="reg_table"> <tr> <td>输入的帐号是:</td> <td><%=form.getUserName() %></td> </tr> <tr> <td>输入的密码是:</td> <td><%=form.getPassWord() %></td> </tr> </table> </div> </form> </body> </html>
相关文章推荐
- MVC三层架构在各框架中的特征
- struts2 PK struts1
- ssh1中action中request.setAttribute()设值jsp无法获取的解决
- struts1、 struts2所有版本jar包下载地址大全
- JSP与struts2跳转兼容问题
- Struts1、Struts2和SpringMVC剖析
- struts的ActionForm的使用(转)
- 使用struts bean:write标签时不能显示Integer,Date等类型的属性问题的解决
- File "/tags/struts-tiles" not found或java.lang.ClassNotFoundException: org.apache.struts.taglib.tile
- Struts1与Struts2原理
- Struts1 不能进入Action,页面空白问题解决
- struts-config.xml配置文件详解
- Struts1.2.9 HelloWorld
- javax.servlet.ServletException: BeanUtils.populate
- struts1源码学习3
- struts1源码学习1
- struts1源码学习4
- struts源码学习5
- struts1源码学习6(doPost和doGet)
- struts1源码学习7,action处理核心ComposableRequestProcessor