`
xxp3369
  • 浏览: 151313 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

struts_login

阅读更多
1、配置struts
* 拷贝struts lib下的所有jar到WEB-INF/lib下
* 修改web.xml文件,配置ActionServlet
* 提供struts-config.xml文件

3、创建登录项目
* 创建jsp页面(login.jsp,login_success.jsp,login_error.jsp)
* 创建LoginActionForm.java
* 创建LoginAction.java
* 配置struts-config.xml文件


index.jsp


<!<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
    <a href="login.jsp">登录</a>
  </body>
</html>



login.jsp


<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>用户登录</title>
</head>
<body>
	<h1>用户登录</h1>
	<hr>
	<form action="login.do" method="post">
		用户:<input type="text" name="username"><br>
		密码:<input type="password" name="password"><br>
		<input type="submit" value="登录">
	</form>
</body>
</html>



login_error.jsp


<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>登录失败</title>
</head>
<body>
	<%=request.getAttribute("errorinfo") %>
</body>
</html>


login_success.jsp

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<%@ page import="com.bjsxt.struts.*" %>    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>登录成功</title>
</head>
<body>
	<%
		LoginActionForm laf = (LoginActionForm)request.getAttribute("loginForm");
	%>
	<%=laf.getUsername() %>,登录成功
</body>
</html>


LoginAction.java


package com.bjsxt.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;

/**
 * 用户登录的Action
 * @author Administrator
 *
 */
public class LoginAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		LoginActionForm laf = (LoginActionForm)form;
		String username = laf.getUsername();
		String password = laf.getPassword();
//		if ("admin".equals(username) && "admin".equals(password)) {
//			//转向到登录成功页面
//			request.setAttribute("username", username);
//			return mapping.findForward("success");
//		}else {
//			//转向到登录失败页面
//			return mapping.findForward("error");
//		}
		String errorInfo = "";
		try {
			UserManager.getInstance().login(username, password);
			//request.setAttribute("username", username);
			return mapping.findForward("success");
		}catch(UserNotFoundException unfe) {
			unfe.printStackTrace();
			errorInfo = "用户不能找到,用户名称=[" + username + "]";
		}catch(PasswordErrorException pee) {
			pee.printStackTrace();
			errorInfo = "密码错误";
		}
		request.setAttribute("errorinfo", errorInfo);
		return mapping.findForward("error");
	}

}



LoginActionForm.java


package com.bjsxt.struts;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

/**
 * 登录的ActionForm,ActionForam是做数据收集的,
 * 
 * ActionForm中的属性必须和表单中输入域的名称一致
 * @author Administrator
 *
 */
public class LoginActionForm extends ActionForm {

	private String username;
	
	private String password;

	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;
	}
	
	@Override
	public void reset(ActionMapping mapping, HttpServletRequest request) {
		System.out.println("----------LoginActionForm.reset()-----------");
	}

	@Override
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		System.out.println("----------LoginActionForm.validate()-----------");
		return null;
	}
	
}



UserManager.java

package com.bjsxt.struts;

public class UserManager {

	private static UserManager instance = new UserManager();
	
	private UserManager() {}
	
	public static UserManager getInstance() {
		return instance;
	}
	
	public void login(String username, String password) {
		if (!"admin".equals(username)) {
			throw new UserNotFoundException();
		}
		if (!"admin".equals(password)) {
			throw new PasswordErrorException();
		}
	}
	
}


PasswordErrorException.java




package com.bjsxt.struts;

public class PasswordErrorException extends RuntimeException {

}



UserNotFoundException.java


package com.bjsxt.struts;

public class UserNotFoundException extends RuntimeException {

}


Web.xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
	xmlns="http://java.sun.com/xml/ns/j2ee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <!-- Standard Action Servlet Configuration (with debugging) -->
  <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>  
</web-app>


struts-config.xml


<?xml version="1.0" encoding="ISO-8859-1" ?>

<!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="loginForm" type="com.bjsxt.struts.LoginActionForm"/>
	</form-beans>
	
	<action-mappings>
		<action path="/login"
				type="com.bjsxt.struts.LoginAction"
				name="loginForm"
				scope="request"
				validate="false"
		>
			<forward name="success" path="/login_success.jsp"/>
			<forward name="error" path="/login_error.jsp"/>
		</action>
		
	</action-mappings>
</struts-config>
分享到:
评论

相关推荐

    20110930_struts_login

    20110930_struts_login20110930_struts_login20110930_struts_login20110930_struts_login20110930_struts_login20110930_struts_login20110930_struts_login20110930_struts_login

    struts_login.rar_struts .login()

    本案例“struts_login.rar_struts.login()”旨在演示如何使用Struts框架实现一个简单的登录功能。我们将深入探讨这个案例中的关键知识点。 1. **Struts框架基础**: Struts将业务逻辑、控制流程和表现层进行了分离...

    struts_login.rar

    在这个"struts_login.rar"压缩包中,我们很显然看到它提供了一个基本的Struts登录示例,这对于初次接触Struts框架的学习者来说是非常有价值的。 首先,让我们来理解一下Struts框架的核心概念: 1. **MVC设计模式**...

    struts_login 源码共享

    本资料“struts_login”提供了一个基础的登录功能实现,适合初学者进行学习和实践。 在Struts框架中,MVC模式被用来分离业务逻辑、数据模型和用户界面,使得代码更易于管理和维护。具体来说: 1. **Model(模型)*...

    struts_login2

    欢迎大家下载lib包,谢谢

    struts_i18n1_login

    在"struts_i18n1_login"这个实例中,我们将探讨如何利用Struts框架实现国际化(i18n)功能,并创建一个基本的登录界面。国际化是一个重要的特性,它允许应用程序根据用户的语言和地区提供定制化的用户界面。 首先,...

    struts_dynavalidator_login.rar_struts

    这个“struts_dynavalidator_login.rar”压缩包包含了一个Struts框架下实现动态验证登录功能的示例程序。在这个程序中,Struts的核心职责是协调控制器、模型和视图,使得开发者可以更方便地构建结构清晰、可维护性强...

    struts_autoexceptionhandle_login

    标题“struts_autoexceptionhandle_login”暗示了我们讨论的主题与Struts框架有关,特别是关于自动异常处理和登录功能。Struts是Apache软件基金会的一个开源项目,它是一个用于构建企业级Java Web应用程序的MVC...

    Struts_01源代码

    5. **02_struts_login**: 这是一个常见的应用场景——登录系统。通过这个模块,学习者可以了解如何使用Struts实现用户登录功能,包括表单提交、验证、会话管理等。 6. **03_struts_trainnig_cal**: 可能是一个日历...

    struts_i18n_login.rar_i18n

    "struts_i18n_login.rar_i18n" 这个标题暗示我们将会探讨如何在 Struts 1 中实现国际化登录界面。 国际化(i18n)这个名字来源于 "internationalization" 的首字母缩写,数字 "18" 是因为 "n" 之后到 "i" 之间有18...

    struts_02源代码

    1. **13_struts_dynavalidator_login**: 这个例子可能涉及到Struts的动态验证器 DynaValidatorForm。DynaValidatorForm 是 Struts 提供的一种灵活的表单验证机制,它允许在运行时动态地定义表单字段的验证规则,而...

    struts2_login

    在"struts2_login"这个资源中,我们很显然关注的是Struts2框架中的用户登录功能实现。登录功能是任何Web应用的基础部分,它允许用户进行身份验证,确保只有授权的用户能够访问受保护的系统资源。 首先,让我们了解...

    struts2_login.7z

    在这个"struts2_login.7z"压缩包中,包含了一个使用Struts2实现的登录功能的源代码,非常适合初学者或有经验的开发者来学习和理解Struts2的工作原理。 首先,Struts2的核心是Action类,它是业务逻辑处理的入口点。...

    SSH登录无实例化例子

    如果你需要关于如何在Struts中整合SSH的详细示例,建议查看相关教程或文档,或者检查`struts_login`中的源代码以获取具体实现。 总结来说,SSH登录无实例化是针对那些只需执行单个命令而不需要保持完整连接的情况。...

    struts2-login-example.rar_struts2 example_struts2 login

    本示例“struts2-login-example”是专门为初学者设计的,旨在帮助他们理解如何在Struts2框架下实现一个基本的用户登录功能。下面将详细介绍这个登录示例所涉及的核心知识点。 首先,我们需要了解Struts2框架的基本...

    Struts2_Login.zip

    使用了struts2截至目前最新版2.5.22+MySQL8.0+druid 1.1.10实现了简单的登陆功能,可以在此基础上进一步增加注册功能,代码逻辑和登陆没什么区别,可以使用纯JDBC替代druid数据库连接池。仅仅是再提供一个数据库工具...

    自己学习用的代码,很乱的东西

    3. **struts_i18n_login**:i18n代表国际化,这可能是一个演示如何在Struts中实现多语言登录界面的实例。它可能包括了资源包(property files)来存储不同语言的文本。 4. **struts_taglib**:Struts Taglib是...

Global site tag (gtag.js) - Google Analytics