struts2-4-登录校验(用户类型)

一:登录页面:login.jsp

 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <%@ taglib prefix="s" uri="/struts-tags"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 8 <title>登录页面</title>
 9 </head>
10 <body>
11  <s:fielderror escape="false"></s:fielderror>
12  <font color="red">${requestScope.error}</font>
13  <form action="loginReg" method="post" >
14   用户名:<input type="text" name="username"><br>
15   密码:<input type="text" name="password"><br>
用户类型:
  <select  name="userType">
     <option value="管理员">管理员</option>
     <option value="普通用户">普通用户</option>
   </select>
16  <input type="submit" value="登录">
17  </form>
18 </body>
19 </html>

二:跳转到action   nuc.sw.action-->LoginRegAction

 1 package nuc.sw.action;
 2
 3 import com.opensymphony.xwork2.ActionContext;
 4 import com.opensymphony.xwork2.ActionSupport;
 5
 6 public class LoginRegAction extends ActionSupport{
 7     private String username;
 8     private String password;
 9     private String userType;
10     public String getUsername() {
11         return username;
12     }
13
14     public void setUsername(String username) {
15         this.username = username;
16     }
17
18     public String getPassword() {
19         return password;
20     }
21
22     public void setPassword(String password) {
23         this.password = password;
24     }
25   public String getUserType() {
		return userType;
	}

	public void setUserType(String userType) {
		this.userType = userType;
	}
26     @Override
27     public String execute() throws Exception {
28 //    public String LoginMethod() throws Exception {
29         // TODO Auto-generated method stub
30         //登录逻辑
31         if(username.equals("zd")&&password.equals("123")){
32             ActionContext.getContext().getSession().put("user", username);
33             ActionContext.getContext().getSession().put("pass", password);
                ActionContext.getContext().getSession().put("type", userType);
34             return SUCCESS;
35         }
36         else{
37
38             ActionContext.getContext().put("error", "用户名或者密码错误");
39             return ERROR;
40         }
41
42     }
43     @Override
44     public void validate() {
45         // TODO Auto-generated method stub
46         if(username==null||username.trim().equals(""))
47             this.addFieldError("usernameError",  "<font color=‘red‘>用户名不能为空</font>");
48         if(password==null||password.trim().equals(""))
49             this.addFieldError("passwordError",  "<font color=‘red‘>密码不能为空</font>");
50
51     }
52 }

三:修改配置文件struts.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 4     "http://struts.apache.org/dtds/struts-2.3.dtd">
 5
 6 <struts>
 7  <constant name="struts.devMode" value="true" />
 8  <package name="default" namespace="/" extends="struts-default">
 9     <action name="loginReg" class="nuc.sw.action.LoginRegAction">
10          <result name="success">/welcome.jsp</result>
11          <result name="error">/login.jsp</result>
12          <result name="input">/login.jsp</result>
13      </action>
14  </package>
15     <!-- Add packages here -->
16 </struts>

四:登录成功页面   welcome.jsp

 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10 欢迎${sessionScope.type}${sessionScope.user}登录;
11 </body>
12 </html>

五:action标签的method属性的取值

1 public String LoginMethod() throws Exception  去@override

1 <action name="loginReg" class="nuc.sw.action.LoginRegAction" method="LoginMethod">

六:使用ActionSupport所提供的方法

1 @Override
2     public void validate() {
3         // TODO Auto-generated method stub
4         if(username==null||username.trim().equals(""))
5             this.addFieldError("usernameError", "用户名不能为空");
6         if(password==null||password.trim().equals(""))
7             this.addFieldError("passwordError", "密码不能为空");
8
9     }

七:修改struts.xml  获取校验的数据

1 <result name="input">/login.jsp</result>

八:修改login.jsp 在登录页面显示错误信息

1  <%@ taglib prefix="s" uri="/struts-tags"%>
2 <s:fielderror escape="false"></s:fielderror>

九:项目结构:

十:运行结果:

正确:

?

错误:

数据校验:

时间: 2024-11-10 01:13:48

struts2-4-登录校验(用户类型)的相关文章

js经典校验之注册与登录校验

平时都专注于后台功能的实现和逻辑需求的分析及数据库方面的设计,很少关注前端的设计,而项目开发过程中专门负责后台是不太可能的事,所以前端我们也需要会用,除了漂亮的首页等其他的交给美工来做,一些功能性的东西还是有负责模块开发的人来完成,所以除了后台.数据库外,前端也需要开发人员懂其一二. 例子1 用户注册校验 用户注册jsp页面 [html] view plain copy <%@ page language="java" import="java.util.*"

【struts2+hibernate+spring项目实战】用户登录校验(struts拦截器)

一.概述 项目中所有页面均放入WEB-INF,所有页面安全性得到了很大程度的提高.但是当用户登录后长时间没有操作时,会造成Session数据的过期,如果此时获取Session中的数据,必定会引发WEB引用的空指针异常,造成数据错误,程序崩溃.因此需要一种机制保障每次发送请求执行Action中的方法之前校验用户是否处于登录状态.针对上述分析,可以选用两种实现方式.AOPAOP思想可以在任意方法执行前进行拦截,完成原始方法执行前的操作Struts2拦截器Struts2拦截器可以再Struts2的任意

JAVAWEB开发之Struts2详解(二)——Action接受请求参数、类型转换器、使用Struts2的输入校验、以及遵守约定规则实现Struts2的零配置

Action接受请求参数 作为MVC框架,必须要负责解析HTTP请求参数,并将其封装到Model对象中 Struts2提供了非常强大的类型转换机制用于请求数据 到 model对象的封装 Struts2和MVC定义关系 StrutsPrepareAndExecuteFilter:控制器 在Struts2中action是什么?(Struts2是一个MVC框架) V:jsp M:action C:action StrutsPrepareAndExecuteFilter Struts2提供了三种数据封装

Struts2之数据校验

时间:2017-1-11 11:09 --Struts2提供的数据校验 在开发中,请求参数是需要校验的:    客户端:过滤正常用户的错误操作,通过JS代码完成    服务器:Java代码 Struts2提供的校验是服务器端校验. 校验方式分为两种:    1.手动校验(编码校验)    2.配置校验(自动校验,基于Annotation,基于XML) 1.手动校验:    要求:Action类必须继承ActionSupport,需要重写validate()方法(是Validateable接口中的

Struts2(五)数据校验

一.概述 在提交表单数据时,如果数据需要保存到数据库,空输入等可能会引发一些异常,为了避免引起用户的输入引起底层异常,通常在进行业务逻辑操作之前,先执行基本的数据校验. 下面通过两种方式来阐述Struts 2的数据校验功能. 二.重写validate方法 我们编写的Action一般继承与ActionSupport,而ActionSupport不仅实现了Action接口,还实现了Validatable接口,提供了数据校验功能.在Validatable接口中定义一个validate方法,重写该方法,

Struts2框架(8)---Struts2的输入校验

Struts2的输入校验 在我们项目实际开发中在数据校验时,分为两种,一种是前端校验,一种是服务器校验: 客户端校验:主要是通过jsp写js脚本,它的优点很明显,就是输入错误的话提醒比较及时,能够减轻服务器的负担,但是客户端校验并不是安全的,简单来讲就是防君子防不了小人. 服务器端校验:最大特点就是数据安全,但是如果只有服务器端校验,会大大增加服务器端的负担. 所以一般在我们开发中,是客户端和服务器端校验相结合作用的. 那这篇文章,我只讲服务器端校验,在Struts2支持两种校验方式: 代码校验

Android之QQ授权登录获取用户信息

有时候我们开发的app须要方便用户简单登录.能够让用户使用自己的qq.微信.微博登录到我们自己开发的app. 今天就在这里总结一下怎样在自己的app中集成QQ授权登录获取用户信息的功能. 首先我们打开腾讯开发平台这个网页,点击---->移动应用---->创建应用,成功创建应用后.能够产生我们须要的App ID和App Key,例如以下图所看到的: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmVhcl9odWFuZ3poZW4=/font/5a6

Struts2请求参数校验

校验的分类 客户端数据校验 和 服务器端数据校验 客户端数据校验 ,通过JavaScript 完成校验 (改善用户体验,使用户减少出错 ) 服务器数据校验 ,通过Java代码 完成校验 struts2 支持校验方式 代码校验(用的很少) :在服务器端通过编写java代码,完成数据校验 配置校验(主流):XML配置校验(主流) 和 注解配置校验 代码校验请求参数 步骤一: 封装数据 步骤二: 实现校验Action ,必须继承ActionSupport 类 步骤三: 覆盖validate方法(val

Struts2中result的返回类型

Struts2框架提供的结果类型 已配置结果类型名  类 名  描 述 dispatcher  org.apache.struts2.dispatcher.ServletDispatcherResult  默认结果类型,用来呈现JSP页面 chain  com.opensymphony.xwork2.ActionChainResult  将action和另外一个action链接起来 freemarker  org.apache.struts2.views.freemarker.Freemarke