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

用Struts实现用户登陆的功能

阅读更多

1.在web.xml中配置一个过滤器

 

   首先,我们要在web.xml中设置一个过滤器,这样用户访问所有的页面的时候都必须先登陆。

 

   过滤器的设置代码如下:

 

<filter>
  <description>登陆过滤器</description>
  <display-name>loginFilter</display-name>
  <filter-name>loginFilter</filter-name>
  <filter-class>com.tntxia.filter.LoginFilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>loginFilter</filter-name>
  <url-pattern>*</url-pattern>
 </filter-mapping>
 <filter-mapping>

 其中url-pattern属性我们设置的为:*,表示所有的请求都会被这个过滤器所过滤。

 

2. 设置Struts

 

设置struts-config.xml

     A.增加一个FormBean:UserForm

    

<form-bean name="userForm" type="com.tntxia.struts.form.UserForm" />

 

    B.增加一个登陆的Action

    

   

<action attribute="userForm" input="/login.jsp"
	name="userForm" path="/login" scope="request"
	type="com.tntxia.struts.action.LoginAction">
	<forward name="/success" path="/uploadPhoto.jsp" />
</action>

 3.UserForm类的代码:

   

/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.tntxia.struts.form;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

/** 
 * MyEclipse Struts
 * Creation date: 06-21-2009
 * 
 * XDoclet definition:
 * @struts.form name="userFormForm"
 */
public class UserForm extends ActionForm {
	/**
	 * 
	 */
	private static final long serialVersionUID = -9144040556996550030L;

	/*
	 * Generated fields
	 */
	
	private String userId;
	
	private String password;

	/** 
	 * Method validate
	 * @param mapping
	 * @param request
	 * @return ActionErrors
	 */
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		// TODO Auto-generated method stub
		return null;
	}

	/** 
	 * Method reset
	 * @param mapping
	 * @param request
	 */
	public void reset(ActionMapping mapping, HttpServletRequest request) {
		// TODO Auto-generated method stub
	}

	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public String getPassword() {
		return password;
	}

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

}

 

4.LoginAction的代码:

 

/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.tntxia.struts.action;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Map;
import java.util.UUID;

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 org.apache.struts.upload.FormFile;

import com.tntxia.db.util.DBUtil;
import com.tntxia.struts.form.PhotoForm;

/** 
 * MyEclipse Struts
 * Creation date: 06-21-2009
 * 
 * XDoclet definition:
 * @struts.action validate="true"
 */
public class UploadFileAction extends Action {
	/*
	 * Generated Methods
	 */

	/** 
	 * Method execute
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {

		PhotoForm userForm = (PhotoForm)form;
		FormFile file = userForm.getPhoto();
		try{
			UUID uuid = UUID.randomUUID();
			String pre = uuid.toString();
			String ext = file.getFileName().substring(file.getFileName().lastIndexOf("."));
			File saveFile = new File(this.getServlet().getServletContext().getRealPath("/")+"\\upload",pre+ext);
			InputStream in = file.getInputStream();
			FileOutputStream out = new FileOutputStream(saveFile);
			int len = 0;
			byte[] buf = new byte[1024];
			while((len = in.read(buf))!=-1){
				out.write(buf,0,len);
			}
			in.close();
			out.close();
			response.setContentType("text/html;charset=GBK");
			response.getWriter().print(file.getFileName());
			ArrayList<String> params = new ArrayList<String>();
			params.add(userForm.getName());
			params.add(pre+ext);
			DBUtil.executePreparedSQL("insert into photo(name,fileName) values(?,?)", params);
			ArrayList<String> cols = new ArrayList<String>();
			cols.add("name");
			cols.add("fileName");
			Map<String,ArrayList<String>> result = DBUtil.getArrayResult(cols, "select * from photo");
			request.setAttribute("result", result);
		}catch(Exception e){
			e.printStackTrace();
		}
		return mapping.findForward("/success");
	}
}

 

5. 登陆过滤器的代码:

 

package com.tntxia.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LoginFilter implements Filter {

	public void destroy() {
		// TODO Auto-generated method stub
	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		HttpServletRequest req = (HttpServletRequest) request;
		HttpServletResponse res = (HttpServletResponse) response;
		HttpSession session = req.getSession();
		String uri = req.getRequestURI();
		
		if(uri.indexOf("login.jsp")!=-1||uri.indexOf("login.do")!=-1){
			chain.doFilter(request, response);
		}else if(session.getAttribute("userId")!=null){
			chain.doFilter(request, response);
		}else{
			res.sendRedirect("login.jsp");
		}

	}

	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub

	}

}

 

分享到:
评论

相关推荐

    struts2实现用户登录注册

    总的来说,"struts2实现用户登录注册"项目涵盖了Web开发中的多个关键点:前端表单处理、后端业务逻辑、数据库交互以及安全性考虑。通过实践这个项目,开发者可以深入理解Struts2框架的工作原理,以及如何在实际开发...

    用struts实现用户登录

    本项目以"用Struts实现用户登录"为主题,旨在帮助初学者入门Struts框架,理解其基本工作原理和配置过程。 首先,我们要了解Struts框架的核心概念。MVC模式是软件设计中的一个经典模式,它将应用程序分为三个主要...

    struts实现用户登录

    总结来说,使用Struts 1.2实现用户登录涉及到了MVC架构的理解,Struts配置文件的编写,ActionForm和Action类的设计,以及数据库操作和错误处理。虽然现代Web开发更倾向于Spring Boot和前端框架,但掌握Struts的基础...

    用MyEclipse工具struts实现的登录功能

    在这个场景中,我们将深入探讨如何使用MyEclipse工具来实现一个基于Struts的登录功能。 首先,我们需要了解Struts框架的核心组件和工作原理。Struts框架主要由以下部分组成: 1. **Action类**:这是业务逻辑处理的...

    struts2实现用户登录

    本文将深入探讨如何利用Struts2来实现用户登录功能,这对于任何Web应用来说都是基础且至关重要的部分。 首先,要理解Struts2的工作原理。Struts2框架的核心是Action类,它处理来自用户的请求,并通过...

    struts实现用户注册

    使用Struts 1.2实现用户注册涉及到了框架的基本配置、表单提交、服务器端验证、数据库操作和异常处理等多个环节。理解并熟练掌握这些知识点,对于开发Java Web应用是非常重要的。在实际项目中,我们还需要关注代码的...

    struts2登录注册简单实现

    在这个“struts2登录注册简单实现”的项目中,我们将深入探讨Struts2如何帮助我们实现用户登录和注册的核心功能。 1. **Struts2框架基础** Struts2是Apache软件基金会的一个开源项目,它继承了Struts1的优点并吸收...

    用Struts实现的最简单的用户登录

    这个"用Struts2实现的最简单的用户登录"示例旨在展示如何利用Struts2框架构建一个基本的用户登录系统。 首先,Struts2的核心是Action类,它是处理用户请求的中心。在这个例子中,我们需要创建一个名为`LoginAction`...

    基于struts2和hibernate实现登录和注册功能

    基于Struts2和Hibernate实现登录和注册功能 Struts2是一款基于MVC模式的Java Web应用程序框架,主要用于开发Web应用程序。Hibernate则是一款基于Java的持久层框架,主要用于将Java对象映射到关系数据库中。通过结合...

    Struts+Hibernate实现用户登录案例

    在Java Web开发中,"Struts+Hibernate实现用户登录案例"是一个常见的应用场景,它结合了两个重要的技术框架:Struts和Hibernate。Struts是MVC(Model-View-Controller)设计模式的一种实现,用于处理用户的请求和...

    Struts实现用户登录详细说明mvc

    在Struts实现用户登录时,通常涉及以下几个关键组件: 1. **ActionForm**: 这是Struts中的表单对象,用于封装来自HTML表单的数据。在用户登录场景下,ActionForm类会包含用户名和密码字段。 2. **ActionServlet**:...

    struts技术实现用户登录

    在"Struts技术实现用户登录"这个主题中,我们将深入探讨如何使用Struts来设计和实现一个简单的用户登录系统。 首先,用户登录界面是用户与系统交互的首要入口。在Struts框架中,通常会创建一个JSP页面作为视图...

    struts技术实现留言功能

    在“struts技术实现留言功能”这一主题中,我们将深入探讨如何使用Struts框架来实现网站的留言和发帖功能。 首先,我们需要理解Struts的工作原理。Struts基于Model-View-Controller(MVC)设计模式,将业务逻辑、...

    struts2实现文件下载功能

    在这个“Struts2实现文件下载功能”的示例中,我们将深入探讨如何利用Struts2框架来实现在web应用中让用户下载文件的功能。 首先,我们需要理解文件下载的基本原理。在Web应用中,当用户点击一个链接或提交一个表单...

    javaWeb_struts2框架实现简单用户注册登录

    基于javaWeb MVC模式,借助struts2框架编写,实现用户简单的注册与登录功能。 1.本demo严格按照MVC的分层模式采用myeclipse编写,可直接运行,服务器为tomcat,数据库为mysql。 2.数据库操作使用c3p0连接池和dbtuils...

    Struts1的登录例子,可以实现

    本示例项目是关于Struts1的登录功能实现,通过这个实例,我们可以深入理解Struts1的工作流程和业务处理方式。 首先,让我们来探讨一下Struts1的核心组件: 1. **Action类**:在Struts1中,Action类是业务逻辑的...

    struts登录

    在本文中,我们将深入探讨如何使用Struts实现用户登录功能。 首先,了解Struts的基础架构至关重要。Struts遵循Model-View-Controller(MVC)设计模式,将业务逻辑、数据展示和用户交互分离,提高了代码的可维护性和...

    struts1 用户登录(包含验证)

    在 Struts1 中实现用户登录功能通常包括以下几个步骤: 1. **创建表单类**:首先需要定义一个表单类(例如 `LoginForm`),该类用于封装用户输入的数据。 2. **创建 Action 类**:接着定义一个 Action 类(例如 `...

    使用struts实现分页

    本资源通过Struts框架实现了分页功能,主要涉及到以下几个关键知识点: 1. **MVC设计模式**:MVC模式将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。模型负责处理业务逻辑,视图...

    struts2 用拦截器 实现用户权限登录

    本教程将详细介绍如何使用Struts2的拦截器来实现用户权限登录功能。 ### 一、拦截器的原理与作用 1. **原理**:拦截器工作在Action调用之前,它通过观察者模式实现,当一个请求到达时,会按照配置的顺序依次执行...

Global site tag (gtag.js) - Google Analytics