java struts2入门学习实例--用户注册和用户登录整合

时间:2022-02-21 08:56:02

需求:

1、用户注册(user_register.jsp)--》注册成功(UserRegister.action)--》显示注册信息(register_success.jsp)
2、用户登录(user_login.jsp)--》登录成功(UserLogin.action)--》显示用户名(login_success.jsp)

分析:

这里主要涉及struts2中对于多个类似的业务操作方法的封装。

效果

针对需求1,用户注册:

java struts2入门学习实例--用户注册和用户登录整合

java struts2入门学习实例--用户注册和用户登录整合

针对需求2,用户登录:

java struts2入门学习实例--用户注册和用户登录整合

java struts2入门学习实例--用户注册和用户登录整合

实现:

user_register.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form name="register" action="/struts2/UserRegister" method="post">
<table border="2" align="center">
<caption>新用户注册</caption>
<tr>
<th>用户名:</th>
<td><input name="username" id="username" type="text" /></td>
</tr>
<tr>
<th>密码:</th>
<td><input name="password" id="password" type="password" /></td>
</tr> <tr>
<td colspan="2" align="center"><input type="submit" value="提交"
width="120ppx" /></td>
</tr> </table>
</form>
</body>
</html>

user_login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form name="register" action="/struts2/UserLogin" method="post">
<table border="2" align="center">
<caption>用户登录</caption>
<tr>
<th>用户名:</th>
<td><input name="username" id="username" type="text" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="提交"
width="120ppx" /></td>
</tr> </table>
</form>
</body>
</html>

UserAction.java

package com.amos.web.action;

import com.opensymphony.xwork2.ActionSupport;

/**
* @ClassName: UserAction
* @Description: 用户管理,将相关的action封装到一个类中
* @author: amosli
* @email:amosli@infomorrow.com
* @date Jan 8, 2014 1:06:00 AM
*/
public class UserAction extends ActionSupport {
private static final long serialVersionUID = -6275534406709255984L;
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;
} // 用户注册
public String register() throws Exception { return "toRegisterJsp";
} // 用户登录
public String login() throws Exception {
return "toLoginJsp";
} }

struts.xml

<?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>
<!-- 加载其他配置文件 -->
<include file="config/user_struts.xml"></include>
</struts>

user_struts.xml

<?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="user" namespace="/" extends="struts-default">
<action name="UserRegister" class="com.amos.web.action.UserAction"
method="register">
<result name="toRegisterJsp" type="dispatcher">
/register_success.jsp
</result>
</action>
<action name="UserLogin" class="com.amos.web.action.UserAction"
method="login">
<result name="toLoginJsp" type="dispatcher">
/login_success.jsp
</result>
</action>
</package>
</struts>

login_success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
登录成功!
<hr>
用户名:<s:property value="username"/>
</body>
</html>

register_success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %> <!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
注册成功<br/>
<hr>
用户名:<s:property value="username" />
密码:<s:property value="password"/>
</body>
</html>

代码分析:

代码的入口为两个jsp程序,user_register.jsp和user_login.jsp,因为原理大体相同,这里主要讲一下登录,注册上一篇文章已经讲过了。

首先,在地址栏里输入http://localhost:8080/struts2/user_login.jsp,表单的action动作为POST方式提交,对应的动作时是UserLogin.action;UserLogin在struts启动时struts.xml加载到内存中时已经将user_struts.xml 反射出来了。user_struts.xml中已经配置了,调用com.amos.web.action.UserAction中的login方法,然后将值再转发到login_success.jsp中,login_success.jsp,通过s标签进行取值并最终显示到浏览器中。

这里最主要的思想在于将登录和注册这两种相类似的业务,相关联的业务整合到一个action中。

户注册(user_register.jsp)--》注册成功(UserRegister.action)--》显示注册信息(register_success.jsp)

用户登录(user_login.jsp)--》登录成功(UserLogin.action)--》显示用户名(login_success.jsp)

java struts2入门学习实例--用户注册和用户登录整合的更多相关文章

  1. java struts2入门学习实例--使用struts进行验证

    一.为什么要进行验证? 验证几乎是注册登录的必须前提,验证的主要作用有两点: 1.安全性 2.对用户提供差异化服务. 二.如何验证? ActionSupport类中有一个validate()方法,这是 ...

  2. java struts2入门学习实例--将客户端IP地址和访问方式输出到浏览器

    实例1:实现客户端IP地址和访问方式输出到浏览器. IpAction.java package com.amos.web.action; import javax.servlet.http.HttpS ...

  3. java struts2入门学习实例--用户注册

     一.用户注册示例 register.jsp <%@ page language="java" contentType="text/html; charset=UT ...

  4. java struts2入门学习实例--使用struts2快速实现多个文件上传

    一.错误提示信息配置 昨天说到更改默认错误配置信息,我测试很多遍,一直都不对.下面贴出来,待以后有好方法了再补充吧. 首先新建一个properties文件,这里命名为testupload.proper ...

  5. java struts2入门学习实例--使用struts2快速实现上传

    一.文件上传快速入门 1).关于上传表单三要素 >>尽量以POST请求方式上传,因为GET支持文件大小是有限制的. >>必须要加上enctype="multipart ...

  6. java struts2入门学习---中文验证、对错误消息的分离、结果&lpar;result&rpar;类型细节配置

    一.需求 利用struts2实现中文验证并对错误消息的抽离. 详细需求:用户登录-->不填写用户名-->页面跳转到用户登录页面,提示用户名必填(以英文和中文两种方式提示)-->填写英 ...

  7. java struts2入门学习---国际化

    一.国际化的概念 1.不同国家的人访问同一个网站,显示的语言不同. 2.对JSP页面进行国际化 属性(properties)文件命名规则:基名---语言--国家如, message_zh_CN.pro ...

  8. java struts2入门学习---拦截器学习

    一.拦截器,拦截器栈 1.拦截器的作用 拦截器本质上和servlet的过滤器是一样的.在struts2中,拦截器能够对Action前后进行拦截,拦截器是一个可插拨的,你可以选择使用拦截器,也可以卸载拦 ...

  9. java struts2入门学习--OGNL语言常用符号和常用标签学习

    一.OGNL常用符号(接上一篇文章): 1.#号 1)<s:property value="#request.username"/> 作用于struts2的域对象,而不 ...

随机推荐

  1. 最近发现了个js传图预览的函数和大家分享下

    由于浏览器js沙箱,存在不同域,js无法直接调用电脑文件.在之前做传图预览的时候,基本的思路就是, 将图片先保存到服务器中缓存,然后返回一个服务器路径,并显示出图片,然而这样很耗缓存目录文件的.方法也 ...

  2. php源码之遍历目录下的所有的文件

    <?php //遍历目录下的所有的文件 -- 递归调用 // http://www.manongjc.com/article/1495.html function get_all_file1($ ...

  3. centos 6&period;4 安装firefox使用的flashplayer插件

    1.centos安装完后居然没flash-plugin,去官网下载居然告诉已经安装了,可是firefox又的确放不出来flash视频. 2.google一下,去官网下载个tar.gz格式文件.把lib ...

  4. ios内存详解

    IOS以及Mac os都是基于Unix/linux改造出来的,而在内存管理方面也沿用了Unix/Linux的内存管理机制. 下面主要说的是IOS系统,有很多比较喜欢捣鼓的吧友肯定自己清理过机器的内存, ...

  5. PO状态为&OpenCurlyDoubleQuote;处理中”的处理方法

    EBS中经常会出现PO提交审批后状态为“处理中”的情况,此时PO创建人无法打开,审批人也无法打开,工作流等查看也无异常,可以使用一下SQL处理再进行审批: --set serveroutput on ...

  6. hadoop解决Could not locate executable null&bsol;bin&bsol;winutils&period;exe in the Hadoop binaries&period;问题

    先看下自己的JAVA_HOME里面有没有空格目录,如果有的话,先把JAVA_HOME换个没空格的位置. 在windows系统本地运行spark的wordcount程序,会出现一个异常,但不影响现有程序 ...

  7. 关于tp5 的验证码遇到的一些问题

    问题1: 网上大部分给的安装包是: composer require topthink/think-captcha 但是会提示你下载失败说要你回复*****的原始数据啥的 那可能是因为你的安装环境版本 ...

  8. 【MySQL】MySQL之MySQL常用的函数方法

    MySQL常用函数 本篇主要总结了一些在使用MySQL数据库中常用的函数,本篇大部分都是以实例作为讲解,如果有什么建议或者意见欢迎前来打扰. limit Select * from table ord ...

  9. opencv在同一窗口打印多张图片

    首先,由于cv2处理的图片是通过ndarray的格式操作的,也就是说通过array的拼接就可以实现图片的拼接,那么之后就可以通过简单的imshow将合并的图片打印从而达到在一个窗口中显示多张图片的目的 ...

  10. Java虚拟机的内存管理

    众所周知,Java程序员写的代码是没有办法控制Java对象的内存释放的,完全有JVM暗箱操作. 虽然程序员把内存的释放的任务都交给了Java虚拟机,但是并不代表Java程序就不存在内存泄漏. 反而,某 ...