基于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)
上一篇 2022年1月3日 下午12:00
下一篇 2022年1月3日 下午1:00


相关推荐

  • java实训自我总结_java实训个人总结

    java实训自我总结_java实训个人总结java 实训个人总结 java 实训个人总结范文实训已经进行两周多了 还有一周就要正式结束了 突然发现自己似乎又重蹈覆辙了 再一次一次的不经意中和某些人的就距离却是越来越来大 总是想偷一下懒 总是想着马马虎虎过去算了 没有那么精打细算过 结果不经意有些人人开始脱颖而出 有些人开始展露锋芒 而我也开始黯淡下去 我是想好好学学别人的 结果画虎不成反类犬 原来我也是不轻易臣服的人 我即便不去领导他们也没

    2026年3月18日
    3
  • Adaptive thresholding using the integral image

    Adaptive thresholding using the integral image#include #include #include#includeusingnamespacestd; voidvvAdaptiveThreshold(IplImage*inImg,IplImage*outImg){intS=inImg->width>>5;intT=10;char*input,*bin;

    2022年5月16日
    29
  • 最小化安装Centos7后安装图形界面[通俗易懂]

    最小化安装Centos7后安装图形界面[通俗易懂]最小化安装Centos7后安装图形界面:1. 更新下系统yum -y upgradereboot2. 安装依赖包 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel…

    2022年8月18日
    9
  • 条件运算符嵌套_条件运算符(?:)的运算过程是什么

    条件运算符嵌套_条件运算符(?:)的运算过程是什么条件运算符(?:)都知道就不细说了,最简单也是最常用的例子:n=(a>b)?a:b;    在C++primerplus第六版180页看到了一个例子,如下所示:    constcharx[2][20]={“Jason”,”atyourservices\n”}    constchar*y=”Quillstone”;

    2022年10月2日
    5
  • 学习使用Java Quartz任务调度(一)

    学习使用Java Quartz任务调度(一)//本着以交流经验和学习的态度来分享知识,如果有误,请批评指出,不胜感激!现在企业中基本均有涉及到任务调度和异步执行器,在Java方向,提供了开源的Quartz、JDK提供了Timer。在以上基础前提下,Java5.0通过java.util.concurrent这个新包以及它下边的诸多类和接口,提供了方便的线程池调用。在本篇文章中,我们主要使用Quartz来作为解决任务调度的工具。为什么不…

    2022年7月13日
    21
  • vim设置汇总

    vim设置汇总vim配置文件:/etc/vimrc显示行号setnumber设置yaml文件换行对齐autocmdFileTypeyamlsetlocalaits=2sw=2et设置tab键为4个空格setts=4setexpandtab换行保持和前一行一样的缩进setautoindent

    2022年9月30日
    5

发表回复

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

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