Struts1登陆Demo

本实例是Struts1的一个入门实例

采用的编辑器是Myeclipse 10

 

一,创建模型

本事列涉及两个JavaBean

1.UserInfo.java:描述用户的实体类

package cx.mystruts.entity;

public class UserInfo {
	private String uid;
	private String pwd;
	public String getUid() {
		return uid;
	}
	public void setUid(String uid) {
		this.uid = uid;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public UserInfo(String uid, String pwd) {
		super();
		this.uid = uid;
		this.pwd = pwd;
	}
	public UserInfo() {}

}

2.UserService.java:处理业务逻辑的JavaBean

package cx.mystruts.service;

import java.util.HashMap;
import java.util.Map;

import cx.mystruts.entity.UserInfo;

public class UserService {
	
	//构造Map对象,用于存入UserInfo的集合
	private Map userInfoMap=new HashMap();
	//构造UserService静态对象,实现单列工厂模式
	private static UserService userService=new UserService();
	
	//构造函数私有,单列模式,模拟数据库产生UserInfo的集合
	private UserService(){
		try{
			UserInfo u=new UserInfo("cx","123456");
			userInfoMap.put(u.getUid(), u);
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}
	
	//定义静态方法
	public static UserService newInstance(){
		return userService;
	}
	
	public UserInfo login(String uid,String pwd){
		//判断用户输入的用户名是否在集合中
		if(this.userInfoMap.containsKey(uid)){
			UserInfo findUserInfo=(UserInfo)this.userInfoMap.get(uid);
			if(findUserInfo.getPwd().equals(pwd)){
				return findUserInfo;
			}
			return null;
		}
		return null;
	}

}

 二.以下步骤需要添加Struts支持,直接使用MyEclipse添加,这里不介绍

1.创建ActionForm

package cx.struts;

import org.apache.struts.action.ActionForm;

public class LoginActionForm extends ActionForm {
	
	private String uid;
	private String pwd;
	public String getUid() {
		return uid;
	}
	public void setUid(String uid) {
		this.uid = uid;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	
	

}

 2.创建控制器

   (1)ActionMapping:包含Action的配置信息,与Struts-config.xml配置文件中的<action>元素对应。

   (2)ActionForm:包含用户的表单数据。当Struts1框架调用execute()方法时,ActionFrom中的数据已经通过了表单验证。

   (3)HttpServletRequest:当前的HTTP请求对象

   (4)HttpServletResponse:当前的HTTP响应对象

package cx.struts;

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 cx.mystruts.entity.UserInfo;
import cx.mystruts.service.UserService;

public class LoginAction extends Action{
	
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {
		LoginActionForm frm=(LoginActionForm)form;
		String uid=frm.getUid();
		String pwd=frm.getPwd();
		
		UserInfo user=UserService.newInstance().login(uid, pwd);
		if(user!=null){
			request.setAttribute("user", user);
			return mapping.findForward("success");
		}
		return mapping.findForward("fail");
	}

}

 三.视图

1.登陆界面index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

    
    <title>User Login</title>

  </head>
  
  <body>
    <form action="login.do" method="post">
      UID:<input type="text" name="uid" />
      PWD:<input type="text" name="pwd"/>
      <input type="submit" value="ok">
    
    </form>
  </body>
</html>

 2.登陆成功界面success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Success</title>
  </head>
  
  <body>
  <h1>Login Success</h1>
    UID:${user.uid }<br/>
    PWD:${user.pwd }
  </body>
</html>

 3.登陆失败界面fail.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>fail</title>
    
  </head>
  
  <body>
    <h1>Login Fail</h1>
  </body>
</html>

 四.Struts配置文件

1.webxml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name />
  <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>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 2.Struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
  <data-sources />
  <form-beans>
    <form-bean name="loginActionForm"  type="cx.struts.LoginActionForm"/>
  </form-beans>
  <global-exceptions />
  <global-forwards />
  <action-mappings>
     <action  name="loginActionForm"  path="/login"  type="cx.struts.LoginAction">
      <!-- 配置Action中的success转发,对应于index.jsp页面 -->
      <forward name="success" path="/success.jsp"/>
       <!-- 配置Action中的fail转发,对应于error.jsp页面 -->
      <forward name="fail" path="/fail.jsp"/>
    </action>
     
  </action-mappings>
  <message-resources parameter="cx.struts.ApplicationResources" />
</struts-config>

 

 

OK!到此,整个登陆流程就Ok!

你可能感兴趣的:(struts1,demo,login)