基于struct2完整的用户登录

基于struct2完整的用户登录

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

第一lib在导入struct2相应jar包

在web.xml组态struct2过滤器

  <filter>
   <filter-name>struts2</filter-name>
   <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  </filter>
  <filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>

Model,业务逻辑层,验证username和password,暂定都为”admin”。当然假设嵌入项目中,验证的数据能够从数据库提取

LoginCheck.java

public class LoginCheck {
   public boolean isLogin(String username,String password){
	 if(username.equals("admin")&&password.equals("admin")){
		 return true;
	 }else{
		 return false;
	 }
   }
}

Controller

LoginAction.java

为了获得很多其它的支持,能够继承ActionSupport类

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
	 String username=null;
	 String password=null;
	 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 execute(){
	  LoginCheck lc=new LoginCheck();
	  if(lc.isLogin(username, password)){
		  return "success";
	  }else{
		  return "failure";
	  }
  }
}

配置structs.xml

<?

xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><!-- struts为配置文件根元素 --><struts> <!-- Action必须放在指定的包名空间中 --> <package name="login" extends="struts-default"> <!-- 定义login的action,事实上现类为LoginAction --> <action name="login" class="LoginAction"> <!-- 定义处理结果与视图资源之间的关系 --> <result name="success">/wel.jsp</result> <result name="failure">/err.jsp</result> </action> </package></struts>

接下来的都是视图层

登录页面login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
  <head>
    <title>My JSP 'login.jsp' starting page</title>
  </head>
  <body>
  <form action="login.action" method="post">
         用户名<input type="text" name="username"><br>
         密码<input type="password" name="password"><br>
    <input type="submit" value="提交">
  </form>
  </body>
</html>

错误处理页面err.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
  <head>  
    <title>My JSP 'err.jsp' starting page</title>
  </head>
  <body>
          失败页面
  </body>
</html>

登录成功页面wel.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
  <head>  
    <title>My JSP 'wel.jsp' starting page</title>
  </head>  
  <body>
         成功页面<br>
  </body>
</html>

版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117601.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • leetcode 接雨水2_leetcode会议室

    leetcode 接雨水2_leetcode会议室题目链接给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例 2:输入:height = [4,2,0,3,2,5]输出:9 提示:n == height.length0 <= n &lt

    2022年8月8日
    0
  • ActiveX 部件不能创建对象: ‘scripting.FileSystemObject’

    ActiveX 部件不能创建对象: ‘scripting.FileSystemObject’解决方法:1.首先,是不是从来都是这种情况,如果只是偶尔的,一会儿是,一会儿不是,问题就不好办。如果是本身就有问题,那就是“scrrun.dll”文件未注册。使用regsvr32scrrun.dll就可以2.VB里用setfso=CreateObject("Scripting.FileSystemObject")asp里边用setfso=Serv…

    2022年7月14日
    17
  • VB.NET 数组的定义 动态使用 多维数组

    VB.NET 数组的定义 动态使用 多维数组

    2021年12月8日
    40
  • android scaleanimation 动画方向,Animation 动画详解(一)——alpha、scale、translate、rotate、set的xml属性及用法…[通俗易懂]

    android scaleanimation 动画方向,Animation 动画详解(一)——alpha、scale、translate、rotate、set的xml属性及用法…[通俗易懂]一、概述Android的animation由四种类型组成:alpha、scale、translate、rotate,对应android官方文档地址:《AnimationResources》alpha渐变透明度动画效果scale渐变尺寸伸缩动画效果translate画面转换位置移动动画效果rotate画面转移旋转动画效果下面我们逐个讲讲每个标签的属性及用法。动作定义文件应该存放在res/anim文…

    2022年10月9日
    0
  • 用Pyinstaller打包时遇到No module named win32timezone问题

    用Pyinstaller打包时遇到No module named win32timezone问题用Pyinstaller打包时遇到Nomodulenamedwin32timezone问题Pyinstaller使用方法我遇到的问题解决办法利用tkinter+python+pyinstaller实现了小工具的项目,没有pyinstaller打包时程序没有问题,打包后运行.exe过程中会在控制台打印错误。Pyinstaller使用方法我们对Markdown编辑器进行了一些功能拓展与语法…

    2022年10月28日
    0
  • DropDownList1_SelectedIndexChanged使用

    DropDownList1_SelectedIndexChanged使用       今天写代码给DropDownList1添加DropDownList1_SelectedIndexChanged事件,在运行测试时发现DropDownList1的index发生改变后DropDownList1_SelectedIndexChanged没有执行,查了一下DropDownList1的属性才知道AutoPostBack要设置成true,才会执行DropDownList1_S

    2022年7月18日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号