Struts2学习笔记之简单登录

Strut2入门级小程序---流程记录

1、导jar包

现阶段一共13个基本jar包,都干什么用随后看(中间用到了BeanUtils的工具所以也要导commons-beanutils-1.8.3.jar和commons-logging-1.1.1.jar两个包)

分别是:

2、创建需要的界面(此处我是一个登录小程序,所以从login.jsp转到success.jsp界面),所以我创建了login.jsp和success.jsp界面如下:

login.jsp

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

<html>
  <head>
    <title>登陆界面</title>
  </head>
  
  <body>
    <form action="${pageContext.request.contextPath }/login" method="post">
    	<table width="1000px" align="center" >
    		<tr>
    			<td colspan="2" align="center" ><h2>欢迎登陆</h2></td>
    			
    		</tr>
    		<tr>
    			<td width="40%" align="right" >姓名</td>
    			<td width="60%" align="left">
    				<input type="text" name="username">
    			</td>
    		<tr>
    			<td width="40%" align="right" >密码</td>
    			<td width="60%" align="left">
    				<input type="password" name="password">
    			</td>
    		</tr>
    		<tr>
    			<td colspan="2" align="center" ><input type="submit" value="提交"></td>
    			
    		</tr>
    	</table>
    </form>
    
  </body>
</html>

success.jsp


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

<html>
  <head>
    <title>Welcome</title>

  </head>
  
  <body>
    <h1>${user.username }欢迎你。。。</h1>
  </body>
</html>

3、对Struts2框架进行配置

(1)对web.xml配置过滤器

<filter>
        <filter-name>hello</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>hello</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
(2)新建struts.xml文件并进行配置

说明:文件名称只能是struts.xml(不是的话要再web.xml中配置,默认是struts.xml),放在Tomcat的\WEB-INF\classes目录下,因为我用的是Myeclipse,所以直接放在src下


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

<struts>
	<package name="homework_01" namespace="/" extends="struts-default">
		<action name="login" class="cn.zg0086.homework.LoginStruts2" method="read"  >
			<result name="good" type="redirect">/success.jsp</result>
			<result name="bad">/login.jsp</result>
		</action>
	</package>
</struts>

4、创建LoginStruts2.java,实现ServletRequestAware接口

package cn.zg0086.homework;

import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts2.interceptor.ServletRequestAware;

import cn.zg0086.homework.bean.Homework;

public class LoginStruts2 implements ServletRequestAware {
	HttpServletRequest request;

	public String read() {

		// 建一个List集合当数据库查询
		List<Homework> list = new ArrayList<Homework>();
		list.add(new Homework("张三丰", "123"));
		list.add(new Homework("周芷若", "321"));
		list.add(new Homework("周杰伦", "456"));
		list.add(new Homework("苍老师", "111"));

		Homework work = new Homework();

		try {
			BeanUtils.populate(work, request.getParameterMap());
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		boolean flag = list.contains(work);
		if (list.contains(work)) {
			request.getSession().setAttribute("user", work);
			return "good";
		}
		return "bad";
	}

	public void setServletRequest(HttpServletRequest request) {
		this.request = request;

	}

}
5、写链接,测试

对了,还建了一个Homework的javabean

package cn.zg0086.homework.bean;

public class Homework {
	private String username;
	private String password;

	public Homework(String username, String password) {
		super();
		this.username = username;
		this.password = password;
	}

	public Homework() {
		super();
		// TODO Auto-generated constructor stub
	}

	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 int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((password == null) ? 0 : password.hashCode());
		result = prime * result + ((username == null) ? 0 : username.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Homework other = (Homework) obj;
		if (password == null) {
			if (other.password != null)
				return false;
		} else if (!password.equals(other.password))
			return false;
		if (username == null) {
			if (other.username != null)
				return false;
		} else if (!username.equals(other.username))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "Homework [username=" + username + ", password=" + password + "]";
	}

}

总结:

1、导jar包

2、创建需要的界面

3、对Struts2框架进行配置

4、创建LoginStruts2.java,实现ServletRequestAware接口

5、写链接,测试


注意

使用List<T>.contains(T t)的时候,T类中要重写equals()方法,这属于只是遗忘,需要常回忆知识点



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值