基于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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 怎样用Python识别条形码?

    怎样用Python识别条形码?最近一位热心的网友找到宋宋,想做一个条形码或者二维码的识别系统。现在,他在北京的某知名大型连锁超市,需要通过Python识别条形码,进行快速的商品库存录入。如果已经存在的则不进行录入。不知Python能否实现?所以趁此机会我们给大家介绍下OpenCV和pyzbar。废话不多说,进入正题……条码在生活中随处可见,其可分为三类:一维条码、二维条码、三维条码一维条码:我们平时习惯称为条形码。条形码是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识…

    2025年8月4日
    4
  • 前缀索引使用

    前缀索引使用前缀索引使用1.前缀索引索引通常会使用字段的整体用作关键字,但是有些时候,即使使用字段的前段部分数据也是可以去识别某些记录的,而这种方式就是前缀索引,可以更快的去搜索某些数据建立前缀索引的语法:ALTERTABLE表名ADDKEY(字段名(N));N就是要用字段的前几位建立索引。既然我们使用了前缀索引,那么我们肯定就要确认N为多少的时候的辨识度是极限接近最高辨识度的,否则前缀…

    2022年5月23日
    42
  • RabbitMQ 原理图和名词理解(二)[通俗易懂]

    RabbitMQ 原理图和名词理解(二)[通俗易懂]一、RabbitMQ简介RabbitMQ是基于AMQP实现的一个开源消息组件,主要用于在分布式系统中存储转发消息,由因高性能、高可用以及高扩展而出名的Erlang写成。其中,AMQP(AdvancedMessageQueuingProtocol,即高级消息队列协议),是一个异步消息传递所使用的应用层协议规范,为面向消息的中间件设计。RabbiMQ是EDA事件驱动架构的核心,也是CQR…

    2022年6月22日
    22
  • potplayer+madvr_potplayer安装包

    potplayer+madvr_potplayer安装包ctrl+j调出madvr的OSD菜单如下图:如何设置madVR10bit输出:1.确保视频源是10bit源2.显示器设置如下:3.渲染设置如下:设置完成,OSD信息变化如下:如何确定是否HDR设置生效:调节如下targetpeaknits:100或者200,如果100比200时的屏幕亮,说明HDR生效。…

    2022年9月14日
    1
  • 怎样选择一个好的虚拟主机

    怎样选择一个好的虚拟主机

    2021年9月22日
    45
  • 金融系列11《电子现金应用》

    金融系列11《电子现金应用》

    2022年1月10日
    42

发表回复

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

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