Eclipse學習之三:Eclipse開發Struts應用

在配置好Structs開發環境的基礎上
 
1  配置Struts的映射地址
2  配置<form-bean>: 添加登錄表單loginForm
3  配置<action>:添加登錄組件login
4  開發ActionForm Bean:創建登錄表單類LoginForm.java
5  開發Action:創建登錄處理類LoginAction.java
 
1  在使用Struts進行開發時 需要避免對JSP文件的直接訪問 這樣做的目的是爲了將所有的請求都交給Struts來統一處理
在web.xml中進行映射配置
  1. <servlet-mapping>
  2.         <servlet-name>action</servlet-name>
  3.         <url-pattern>*.do</url-pattern>
  4.     </servlet-mapping>
對於每一個name.do的請求 都必須在struts-config.xml中配置與"name"對應的組件 該組件是通過<action>元素來註冊的 使用<action>的第一種配置形式-直接轉發方式 來配置一個地址"index.do" 負責轉發到登錄頁面login.jsp
  1. <action path="/index" forward="/login.jsp" />
 
2  修改login.jsp的登錄提交地址爲login.do
  1. <form name="form1" action="login.do" method="post">
3  配置<form-bean> : 添加登錄表單loginForm
  1. <form-bean name="loginForm"
  2.             type="com.demo.struts.forms.LoginForm">
  3.         </form-bean>
4  配置<action>:添加登錄組件login
  1. <action path="/login" name="loginForm" scope="request"
  2.             type="com.demo.struts.actions.LoginAction" input="/login.jsp">
  3.             <forward name="success" path="/welcome.jsp" />
  4.             <forward name="failure" path="/login.jsp" />
  5.         </action>
5  開發ActionForm Bean:創建登錄表單類 LoginForm.java
 
  1. package com.demo.struts.forms;

  2. public class LoginForm extends ActionForm {

  3.     proteced String username = nill;
     protected String password = null;

    public String getPassword() {

  1.         return password;
  2.     }

  3.     public void setPassword(String password) {
  4.         this.password = password;
  5.     }

  6.     public String getUsername() {
  7.         return username;
  8.     }

  9.     public void setUsername(String username) {
  10.         this.username = username;
  11.     }
  12. }

6  開發Action 創建登錄處理類LoginAction.java

 

  1. package com.demo.struts.actions;

  2. import java.sql.Connection;
  3. import java.sql.ResultSet;
  4. import java.sql.Statement;

  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import javax.servlet.http.HttpSession;
  8. import javax.sql.DataSource;

  9. import org.apache.log4j.Logger;
  10. import org.apache.struts.action.ActionErrors;
  11. import org.apache.struts.action.ActionForm;
  12. import org.apache.struts.action.ActionForward;
  13. import org.apache.struts.action.ActionMapping;
  14. import org.apache.struts.action.ActionMessage;
  15. import org.apache.struts.actions.DispatchAction;


  16. public class LoginAction extends DispatchAction {


  17.     public ActionForward execute(ActionMapping mapping, ActionForm form,
  18.             HttpServletRequest request, HttpServletResponse response)
  19.             throws Exception {

  20.         ActionErrors errors = new ActionErrors();
  21.         ActionForward forward = new ActionForward();
  22.         LoginForm loginForm = (LoginForm) form;

  23.         try {
  24.             // get parameters
  25.             String username = loginForm.getUsername();
  26.             String password = loginForm.getPassword();

  27.             // invalidate the original session if exists

  28.             HttpSession session = request.getSession(false);
  29.             if (session != null) {
  30.                 session.invalidate();
  31.             }

  32.             // create a new session for the user

  33.             session = request.getSession(true);

  34.             // login

  35.             boolean isValid = false;
  36.             if (username.equals("admin")&&password.equals("admin"))
  37.             {
  38.                isValid = true;
  39.              }
  40.             if (isValid) {
  41.                 session.setAttribute(Constants.USERNAME_KEY, username);
  42.             } else {
  43.                 errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage(
  44.                         "login.message.failed"));
  45.             }

  46.         } catch (Exception e) {
  47.             errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage(
  48.                     "login.message.failed"));

  49.         }

  50.         // If a message is required, save the specified key(s)

  51.         // into the request for use by the <struts:errors> tag.


  52.         if (!errors.isEmpty()) {
  53.             saveErrors(request, errors);
  54.             
  55.             forward = mapping.findForward(Constants.FAILURE_KEY);
  56.         } else {
  57.             forward = mapping.findForward(Constants.SUCCESS_KEY);
  58.         }

  59.         // Finish with

  60.         return (forward);
  61.     }
  62.           
  63. }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章