用myeclipse进行struts开发的一点理解

    技术2026-10-01  1

    开发环境:myeclipse 7.5 + tomcat 6.0 + jdk

    如果在用myeclipse开发struts前先配置tomcat环境,可以参考下

    http://blog.csdn.net/upfar/archive/2011/02/21/6197197.aspx

     

    好了,tomcat环境配置好了,开发struts开始

    1.启动myeclipse,点开菜单"File",然后选择"new"->"Project"->"Web Project"

    2.点击next后弹出一个project配置窗口,在"Project Name"栏我们输入工程名:hello,然后选择"java EE 5.0",然后点击"finish",web工程创建完毕

     

    3.在工程内添加入struts框架,在刚创建的工程上点右键,选择"myeclipse"->Add Struts Capabilities,在弹出的窗口上输入actionServlet name,将Base package for new classes设置为struts(其实就是为class设置一个包),然后点"finish".(actionServlet是核心控制器,action是业务控制器)

    4.点开hello工程,发现多了很多东西,点开WebRoot->Web-INF,双击struts-config.xml,看到这里是一个可视化操作界面,点击左边列的中间有一个"J"的图标,然后依次创建2个jsp文件login.jsp和loginsuccess.jsp

     

    login.jsp代码

     

    <%@ page language="java" pageEncoding="ISO-8859-1"%><%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <html>  <head>  <title>JSP for UserLoginForm form</title> </head> <body>  <html:form action="/action2">   userName : <html:text property="uname"/><br/>   password : <html:password property="upwd"/><br/>   <html:submit/><html:cancel/>  </html:form> </body></html>

     

    loginsuccess.jsp代码

     

    <%@ page language= "java"%>

    <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>

    <%@ taglib uri="http://jakarta.apache.org/struts/tags-nested" prefix="nested" %>

    <!DOCTYPE HTML PUBLIC "-//W 3C//DTD HTML 4.01 Transitional//EN"> <html:html locale="true"> <head> <title>My Struts 'loginSuccess.jsp' ending page</title> </head>

    <body> Hello <bean:write name="username" scope="request" />, you successfully logged in! </body> </html:html>

     

    5.然后在空白处点击右键,选择new->action,form,jsp,弹出设置actionform的窗口,在Use case输入action2,以及点击add按钮添加actionForm的属性值uname,upwd,点击next

    6.这里是action的设置,点击Forwars,以及添加转向success,failure,点finish完成.

     

    7. 打开工程中的src->struts.action->Action2Action,找到execute方法,将execute代码替换成如下:

    public ActionForward execute(ActionMapping mapping, ActionForm form,   HttpServletRequest request, HttpServletResponse response) {  Action2Form action2Form = (Action2Form) form;// TODO Auto-generated method stub  if (action2Form.getUname().equals("hello") && action2Form.getUpwd().equals(""))  {   request.setAttribute("username", action2Form.getUname());   return mapping.findForward("success");  }  return mapping.findForward("failure"); }

     

    8.发布工程,右键点击工程,选择myeclipse->add and remove Deployment,然后add,在server里面选择之前已经配置好的tomcat,然后点finish,工程就自动发布到了tomcat的webapps目录下

     

     

    然后通过myeclipse的快捷工具栏启动tomcat(或者右键工程->run as->Configuration->鼠标双击myeclipse server application,然后server选择tomcat,启动 tomcat)

    然后输入http://localhost:8080/hello/login.jsp就可以看到登陆界面了

     

    这个是大多都可以在网上找到类似的资料,以下是个人对struts的一点理解

    1.添加了add struts capabilities后,就会创建struts-config.xml,在web.xml中加入<servlet-name>以及<servlet-class>,这个就是添加actionservlet这个核心控制器以及引入struts库等

    2.在struts-config.xml中添加action,form,jsp等操作后,就会在struts-config.xml中添加<form-bean><action-mapping>

     

    那么个人理解struts流程就是

    1.actionservlet拦截到login.jsp的请求后,就检查actionForm是否存在,不存在则创建,并保存在struts-config.xml中的<form-bean>中,并将请求保存在对应的actionForm中(login.jsp中的2个文本框请求变量的property对应的就是actionForm的属性变量名)

    2.actionForm保存了请求变量后进行一般性的语法以及格式检查后,会返回一个actionerros对象,如果返回null或者一个不包含actionerror的actionerrors对象,则验证成功

    3.actionServlet检查action,如果没有则创建,检查是否有action-mapping对象,如果没有则创建并将action配置信息都<action-mapping>中,并保存在struts-config.xml的<action-mapping>中,执行action的execute方法,代码中首先可以读取actionForm保存的请求变量(通过request.getParameter()或者actionform.getUname()),然后将获取的变量给request,目的是要传递给loginsuccess.jsp显示,然后调用action-mapping对象的findForward方法,读取struts-config.xml文件,找到对应的forward对象,并将forward对象返回给actionServlet

    4.actionServlet根据forward对象找到指向的jsp页面,然后将请求转发给这个jsp

    5.jsp根据请求,调用jsp组件生成jsp动态页面返回给客户

    最新回复(0)