Structs2 登录用户名验证

if(userNames.contains(userName)){
//result="该用户名已经被使用";
result="用户名已经存在";
}else{
result="用户名可以使用";
}
System.out.println(result);

res.setContentType("text/javascript");
res.setCharacterEncoding("UTF-8");
res.getWriter().write(result);

    return "success";
}



<script type="text/javascript" src="${pageContext.request.contextPath }/jquery-3.1.1.min.js"></script>

<br> $(document).ready(function(){<br> var inputUserNameObj = $(&quot;#userName&quot;);<br> $(&quot;#userName&quot;).blur(function(){<br> //alert(&quot;1&quot;)<br> var text = inputUserNameObj.val();<br> $.post(&quot;testAction.action?userName=&quot;+text,null,function(response){<br> alert(&quot;2&quot;);<br> if(response==&quot;用户名已经存在&quot;){<br> alert(&quot;3&quot;);<br> //document.getElementById(&quot;userName&quot;).focus();//获取焦点<br> document.getElementById(&quot;message&quot;).innerHTML=&quot;<font color='red'>&quot;+response+&quot;</font>&quot;;<br> }else{<br> alert(&quot;4&quot;);<br> //document.getElementById(&quot;userName&quot;).focus();//获取焦点<br> document.getElementById(&quot;message&quot;).innerHTML=&quot;<font color='blue'>&quot;+response+&quot;</font>&quot;;<br> }</p> <pre><code> }) return false; }) }) </code></pre> <p><struts><br> <package name="ajax" extends="json-default" ><br><br> &lt;!-- 检验用户名是否存在 --&gt;<br><br> <action name="testAction" class="com.test.Action.TestAction" method="test"><br><br> &lt;!-- 返回类型为json 在sjon-default中定义 --&gt;<br><br> <result type="json" name="success"><br><br> &lt;!-- root的值对应要返回的值的属性 --&gt;<br><br> &lt;!-- 这里的result值即是 对应action中的 result --&gt;<br><br> <param name="root">result</param><br><br> </result><br><br> </action><br><br> </package><br> </struts> </p> <p>action返回的字符串页面接收不到</p>

2个回答

什么错误,没说清楚;是返回的字符串页面接收不到?
这个你要先分清,是后台没给页面返回,还是返回到页面了,页面接收表达式有错,没显示出来;

就是返回的页面接收不到

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
struts2中用户名是否重复如何用Ajax做

我想在struts2中加入Ajax做用户名是否重复的判断,不知道该怎么做,如果用sevlet我倒是会做的,可是在struts2中好像做不了啊。。。求各位帮我看看要怎么做啊?做好能给完整的例子让我研究下。

利用struts2如何实现 登陆验证

期望实现: 用户输入账号密码后,如果密码错误,提示用户“密码错误,请重新输入”;界面保留用户名,用户只需重新输入密码。 前提: 1, 后台验证(比如validate,interceptor),而不是前台JS验证 2, 前台不使用struts 标签(比如 s:textfield),因为前台直因为前台想直接使用bootstrap的模板

struts2登陆跳转action验证密码错误返回登陆页面,地址改变了,再次登陆就报错了怎么解决呢?

struts2登陆跳转action验证密码错误返回登陆页面,地址改变了,再次登陆就报错了,怎么解决呢?struts2登陆跳转action验证密码错误返回登陆页面,地址改变了,再次登陆就报错了,怎么解决呢?

struts2验证器无法显示验证的问题

# 我用Struts2写一个验证器要求验证用户名不得为空等等,但是那些验证都显示不出来求各位大神指点指点。 ![图片说明](https://img-ask.csdn.net/upload/201610/16/1476618610_883264.png) login2Action.java ``` package cn.edu.xmut.action; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionSupport; public class Login2Action extends ActionSupport{ private static final long serialVersionUID = 1L; private String username; private String password; public String login(){ return Action.SUCCESS; } // @Override // public void validate() { // if(username == null || "".equals(username)){ // this.addFieldError("username",this.getText("username.null")); // } // if(password == null||"".equals("password")){ // this.addFieldError("password",getText("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; } } ``` login2.jsp ![图片说明](https://img-ask.csdn.net/upload/201610/16/1476618248_743888.png) struts.xml ![图片说明](https://img-ask.csdn.net/upload/201610/16/1476618267_767915.png) LoginAction-validation.xml ![图片说明](https://img-ask.csdn.net/upload/201610/16/1476618289_432334.png) ![图片说明](https://img-ask.csdn.net/upload/201610/16/1476618628_132236.png) ![图片说明](https://img-ask.csdn.net/upload/201610/16/1476618634_362607.png)

登录时的用户名,密码验证问题

![图片说明](https://img-ask.csdn.net/upload/201610/09/1476020283_89770.png) 哪位大神能帮我看一下为什么if{}else{}语句中,每次都会直接执行else中的语句啊?else{}语句中我想实现的是登陆页面,如果没有输入用户名或者用户名在数据库中不存在的话点击提交按钮就弹出一个对话框,可是我每次一打开界面还没填信息就会弹出对话框,怎么改一下代码呀?很着急,求大神帮忙![图片说明](https://img-ask.csdn.net/upload/201610/09/1476020833_102392.png) 这个是我的注册界面,也是在else语句出问题了,我想数据库中不存在该用户名就转到注册成功的界面,可是我一点注册的按钮,还没等我输值就直接转到登陆成功的界面了

用struts2完成连接数据库实现用户登录注册功能;

注册功能实现了,也存进数据库了,但跳转到登录页面就无法成功登录,一直跳到登录不成功的页面。这是为啥? //链接数据库的方法 public class Conn { Connection conn = null; Statement st = null; ResultSet rs = null; public Connection getConn(){ try{ Class.forName("org.gjt.mm.mysql.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mytest","root","123456"); st = conn.createStatement(); }catch(Exception e){ e.printStackTrace();; } return conn; } // 处理登录的方法 public String loginMethod(){ try{ String sql1 = "select * from user where username=' "+getUsername()+" ' and password=' "+getPassword()+" '"; PreparedStatement pst=conn.getConn().prepareStatement(sql1); ResultSet rs=pst.executeQuery(); if(rs.next()){ ActionContext.getContext().getSession().put("user",username ); return "loginin"; }else{ this.addFieldError("error", "用户名或密码错误!!"); return "loginout"; } }catch(Exception e){ e.printStackTrace(); return "loginout"; } // stuuts.xml配置 <package name="user" extends="struts-default"> <action name="loginAction" class="action.UserAction" method="loginMethod"> <result name="loginout">UserLogin.jsp</result> <result name="loginin">WelcomeLo.jsp</result> </action> // UserLogin.jsp页面 <body> <center> <s:fielderror name="error"></s:fielderror> <h3>请您输入用户名与密码</h3> <s:form action="loginAction" method="post"> <s:textfield name="username" label="用户名"/> <s:password name="password" label="密码"/> <s:submit value="登录"/> </s:form> </center> </body> WelcomeLo.jsp页面 <body> <center><h3>欢迎${sessionScope.user},您已经登录!</h3></center> </body> ```

struts2 奇怪的trim验证问题

在用struts2 的验证时候出现一个奇怪的问题 [code="java"]<field name="username"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>用户名不能为空</message> </field-validator> </field>[/code] 当不输入用户名时候, “用户名不能为空” 的提示信息 有。 当 用户名 前 加空格时候, 空格去不掉,为什么 请大家帮忙 [b]问题补充:[/b] 谢谢bohemia 回答 是不是我对[quote]<param name="trim">true</param> [/quote]的理解有问题。 我的理解时,在输入栏加了空格能去掉。 你说的那个意思[quote]trim了判断提示; 只输入空格,应该也提示 这个信息吧? [/quote] 我试验了,只输入空格的话,出那个提示信息。 但是,输入 空格 加 "aaa", 最终数据库里存放的用户名是 空格加用户名 也就是“ aaa”

异步验证用户名是否存在

struts2+Hibernate整合异步验证用户名是否存在 我是新手 求大神指教 最好有完整的代码 万分感谢

struts2+json

<p>&lt;action name="IndexLogin" class="action.LoginAction" method="IndexLogin"&gt;<br>      &lt;result name="error" type="json"&gt;&lt;/result&gt;<br>      &lt;result name="query" &gt;/index.jsp&lt;/result&gt;<br>  &lt;/action&gt;</p> <p> </p> <p>页面jquery请求进入IndexLogin的方法,我想验证用户名和密码,如果错误就是ajax的弹出错误提示信息,如果正确是否能用struts2的&lt;result name="query" &gt;/index.jsp&lt;/result&gt;直接跳转连接或者其他什么办法能再struts2中直接跳转,而不需要回到页面再使用window.location = "./index.jsp";</p>

Struts2+Tomcat报404错误

今天在学Struts2时,测试一下登陆验证功能,部署到Tomcat上出现404 就是在访问http://localhost:8080/Struts2Pro/login.jsp时,出现404 ![图片说明](https://img-ask.csdn.net/upload/201507/26/1437880230_607940.png) web.xml ``` <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app> ``` struts.xml ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="struts2" extends="struts-default"> <action name="login" class="com.test.action.LoginAction"> <result name="input">login.jsp</result> <result>/result.jsp</result> <result name="failer">/login.jsp</result> </action> </package> </struts> ``` LoginAction.java ``` package com.test.action; import com.opensymphony.xwork2.ActionSupport; public class loginAction extends ActionSupport { 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; } @Override public void validate() { // TODO Auto-generated method stub System.out.println("进入validate方法进行校验"); if(null==this.getUsername()|| "".equals(this.getUsername().trim())) { this.addFieldError("username", "请输入用户名"); } if(null==this.getPassword()||"".equals(this.getPassword().trim())) { this.addFieldError("password", "请输入密码"); } } @Override public String execute() throws Exception { // TODO Auto-generated method stub if("zy".equals(this.getUsername().trim())&&"123".equals(this.getPassword().trim())) { return "success"; } else { this.addFieldError("username", "username or password error!!!!"); return "failer"; } } } ``` Tomcat的报错 ``` 严重: Exception starting filter struts2 Class: com.opensymphony.xwork2.spring.SpringObjectFactory File: SpringObjectFactory.java Method: getClassInstance Line: 230 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:230:-1 at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:502) at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57) at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4854) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5546) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.startup.HostConfig.reload(HostConfig.java:1533) at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1497) at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1695) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:333) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1374) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1546) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1556) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1524) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.NullPointerException at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:230) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyResultType(XmlConfigurationProvider.java:604) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addResultTypes(XmlConfigurationProvider.java:574) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:530) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:292) at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112) at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:250) at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67) at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:446) at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:490) ... 19 more 2015-7-26 15:56:09 org.apache.catalina.core.StandardContext startInternal 严重: One or more Filters failed to start. Full details will be found in the appropriate container log file 2015-7-26 15:56:09 org.apache.catalina.core.StandardContext startInternal 严重: Context [/Struts2New] startup failed due to previous errors ```

Struts 2 的验证跳转问题

刚学,表示不是很懂。比如说execute方法里面的 ActionContext ac = ActionContext.getContext; if("test".equals(userName) && "test".equals(password)){ msg = "登录成功,欢迎" + this.userName; returnthis.SUCCESS; }else{ msg = "登录失败,用户名或密码错"; returnthis.ERROR; } 难道不用获取用户的输入再进行判断的嘛? 这里表示很不懂

struts2表单验证 jsp页面显示不了错误信息

目前正在用struts2创建项目 为了减小代码的耦合度 使bean类更纯粹点 在表单验证这一块 我另外写了一个类 然后用模型驱动(ModelDriven) 再重写validate方法 [code="java"] package com.pp.action.login; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import com.pp.bean.Login; public class myvalidation extends ActionSupport implements ModelDriven<Login> { private Login login = new Login(); private String mailname; private String username; private String password; public Login getModel() { return login; } @Override public void validate() { // System.out.println("validate"); // mailname = login.getMailname().trim(); // username = login.getUsername().trim(); // password = login.getPassword().trim(); // System.out.println("mail"+mailname); // System.out.println("username---"+username); // System.out.println("password---"+password); if(login.getMailname().equals("")) { this.addFieldError("mailname","mail name should not be blank!"); System.out.println("mail validate"); //this.addActionError("mailname should not be blank!"); } if(login.getMailname().length()<1) { this.addFieldError("mailname","length error"); System.out.println("mail length validate"); //this.addActionError("length error"); } if(login.getUsername().equals("") || login.getUsername().length()<6 || login.getUsername().length()>12) { this.addFieldError("username","username should not be blank!"); System.out.println("username validate"); //this.addActionError("username should bot be blank"); } if(login.getPassword().equals("")) { this.addFieldError("password","fill your password"); System.out.println("password validate"); //this.addActionError("fill your password"); } } @Override public String execute() throws Exception { return SUCCESS; } } [/code] 后台都有显示mail validate username validate等输出信息 说明有进入判断条件 但是在JSP页面就是显示不出来错误信息 reg.jsp页面在form表单之前也有加FieldError的标签: [code="java"] <body> <s:fielderror></s:fielderror> <s:form action="login2"> <!-- <s:label name="label" value="输入你的常用邮箱,用于登录"></s:label> <s:label name="label" value="用户名只能由字母、下划线、数字组成"></s:label> <s:label name="label" value="密码6——12位组成"></s:label> --> <s:textfield name="mailname" label="邮箱"></s:textfield> <s:textfield name="username" label="用户名"></s:textfield> <s:textfield name="password" label="密码"/> <s:submit name="submit" ></s:submit> </s:form> <br> </body> [/code] acton如下,用的是login2来处理表单: [code="java"] <include file="struts-default.xml" /> <package name="tutorial" extends="struts-default"> <action name="login" class="com.pp.action.login.checklogin"> <result name="success">success.jsp</result> <result name="error">error.jsp</result> <result name="login">login.jsp</result> </action> <action name="login2" class="com.pp.action.login.myvalidation"> <result>success.jsp</result> <result name="input">reg.jsp</result> </action> </package> <!-- <action name="login2" class="com.pp.action.login.myvalidation"> <action name="login2" class="com.pp.bean.Login"> --> </struts> [/code] 到底是什么问题 希望各位帮忙看下 非常感谢。。。 [b]问题补充:[/b] Login类是另外写的 然后为用模型驱动ModelDriven<Login> 其中有个getModel()方法重载Login的javaBean类 首先我想说 struts2的表单验证是不是有两种:一是直接override validate方法;二是直接对Action处理类配置xml文件 不是吗 [b]问题补充:[/b] wocsok (中级程序员)说得不对 既然是使用ModelDriven,它的作用就像是在Myvalidation里面写了Login类的getXX和setXX方法作用是一样的。 我的问题是在原先的Login里面的validate()方法没注释掉,然后两个validate()方法冲突了,只要把Login里面的validate注释掉就OK了

MyEclipse中使用struts2标签开发的JSP页面,但是在浏览器中一直显示空白。。

<%taglib="/struts-tags" prefix="s">已经加上,可是JSP页面编程时没有错误。但是浏览器中显示struts2标签就是空白。。

基于SSH框架的AJAX,在struts标签下验证id是否存在,或者使用JQuery和JSON

我在做一个简单的例子,对输入表单进行验证,因为在JSP页面中使用了struts的标签,现在在action名-方法名-validation.xml里进行的验证可以正常工作,但是在尝试利用ajax方式进行异步服务器端验证的时候遇到了困难,查了一些资料,说是struts2.1以后的版本中,不能再用struts标签进行ajax验证,而是要通过struts-dojo标签,而我找了几个这个版本的例子,发现实现的方式是在struts表单中加入onblur属性触发js函数,这样的话还何必使用struts标签的form呢?于是又找了一些不使用<s:form>表单的例子,用到了Jquery.js和json插件,但现在还有一些疑问如下. 1.<s:form>表单中能嵌套使用普通的html标签么?我尝试在<s:form>内部的<s:textfield>后加入<scan id="xxx">这样的标签发现没用,放到<s:form>外面则可以正常显示,那么如果在<s:form>内部想要实现异步验证显示不同的提示应该怎么实现呢? 2.针对一个<s:textfield>提交的内容 比如用户名或者ID这样在数据库中不允许重复的字段,是否只能用onblur="xx"这样的方式来进行失去焦点时进入xx这个js函数进行验证?我看的struts书中对struts2.0中可以通过设置<s:form>中 theme="ajax"来实现,那么相对应的struts2.1版本应该如何实现呢? 3.我又找了不用<s:form>标签的例子,是用jquery.js和json插件,但例子使用的输入只有一个<input>样式的,没有包含在<form>里 那么如果<form>有了提交的action 单独一行的输入如何执行自己单独要执行的验证action呢? 字打的比较多也比较乱,因为我的基础比较差,见谅.

如何通过DWR框架调用struts2中action中的方法

RT ,谢谢各位了! 我用 <create creator="new" javascript="userManager"> <param name="class" value="com.squall.oa.action.UserAction" /> <include method="checkLogin"/> </create> 这样的话不行,报服务器端的错误, 调用service层和dao层的我会使用了,只想看一下一般在项目中如果调用action中的方法的话,应该如何写? [b]问题补充:[/b] 这个是我刚写的一个Class (已经脱离action) public class UserLogin { private String randomCode; private String tag; @Autowired @Qualifier("userService") private IUserService userService; public String checkLogin(User myUser){ if (randomCode.equals(getSession().getAttribute("randomCode").toString())){ if(userService.checkLogin(myUser)){ tag = "success"; } else{ tag = "failed"; } } else{ tag = "noRandNo"; } return tag; } private HttpSession getSession() { return ServletActionContext.getRequest().getSession(); } } 然后我去配置dwr.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd"> <dwr> <allow> <convert converter="bean" match="com.squall.oa.model.User" javascript="myUser"/> <create creator="new" javascript="userManager"> <param name="class" value="com.squall.oa.dwr.UserLogin"/> <include method="checkLogin"/> </create> </allow> </dwr> 下面是JSP页面的代码: function validateUser(){ var username,password,result; var myUser = {}; username = $("uname").value; password = $("upass").value; myUser.u_name = username; myUser.u_pass = password; userManager.checkLogin(myUser,callBackLogin) if ("success" == result){ alert('用户名密码正确!'); return true; }else if ("failed" == result){ alert('用户名密码错误!'); return false; }else { alert('验证码错误!'); return false; } } function callBackLogin(data){ alert(data); result = data; } 我其实就是为了多传到dwr中 验证码 字符串, 但是这样写 就报告了如下的错误: [b]a server error has Occured . More information may be available in the console[/b] 但是Console里 什么服务端的异常都没有~ [b]问题补充:[/b] 哦您说的对!~~ 那您看这个问题该如何解决为最佳呢? 我应该如何去设计这个验证码的字段? 把它传进service方法里么? [b]问题补充:[/b] 好的, 我刚才测试了一下 /** * @日期: Aug 21, 2009 * * @作者: 翟立虎 */ package com.squall.oa.dwr; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; import com.squall.oa.model.User; import com.squall.oa.service.IUserService; public class UserLogin { private String randomCode; private String tag; // @Autowired // @Qualifier("userService") // private IUserService userService; public String checkLogin(User myUser){ if (randomCode.equals(getSession().getAttribute("randomCode").toString())){ if(1==1){ tag = "success"; } else{ tag = "failed"; } } else{ tag = "noRandNo"; } return tag; } private HttpSession getSession() { return ServletActionContext.getRequest().getSession(); } } 我写了个测试类,如果不使用Session 那么就不会报告那个错误, 如果使用了, 还会出现那个错误 哎,我真是头疼,那我通过什么方法,得到Session,拿到验证码, 而且还不会报错呢? 非常感谢您!! 就差这点儿问题了!~~ [b]问题补充:[/b] 这样做的话,那么前台的JS怎么写传值呢? 我对回调也不是理解很深,谢谢了~~ userManager.checkLogin(myUser,<%=session%>,callBackLogin); 我这样写好像不行~ [b]问题补充:[/b] 我测试过了,还是不行,报刚才的错误~~ 哎,谢谢您了,不行的话 我就绕过这个验证码吧,传到service层里判断算了!~ [b]问题补充:[/b] 谢谢楼上两位详解了!

在登陆时输入用户名、密码输入3次错误后才显示验证码。

需要用cookie实现在登陆时输入用户名、密码输入3次错误后才显示验证码。 在struts2里面怎么实现?具体代码怎么写?谢谢

我要在原有的SSH项目中加入CAS实现单点登录,请问服务端(验证中心)那个项目里怎么依赖注入定制的验证类

来了的朋友请先看前提:一切部署已经就绪,现在要做的就是自定义验证用户的方法。注意是纯手写定义的,因为考虑到扩展和移植,不要发给我那些继承了CAS里用户名密码验证的类或者是JDBC传入语句的,那些我都知道。 我自定义了一个UserValidateHandler类,继承自CAS中的AbstractPreAndPostProcessingAuthenticationHandler。 在doAuthentication()方法中实现了验证方法。 现在请问如何将此类注入到整个体系中,我原项目是Spring Struts2 Hibernate的,现在加入了CAS 恳请了解的朋友指教:)

新手求助!在MyEclipse导入Struts框架搭建的项目出现404错误!

HTTP Status 404 - /16/WebRoot/admin_index.jsp -------------------------------------------------------------------------------- type Status report message /16/WebRoot/admin_index.jsp description The requested resource is not available. -------------------------------------------------------------------------------- Apache Tomcat/7.0.63 struts.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> <package name="wyLogistics" extends="struts-default"> <action name="admin_*" class="com.webtier.AdminAction" method="{1}"> <result name="success">/admin_{1}.jsp</result> <result name="input">/admin_{1}.jsp</result> </action> <action name="car_*" class="com.webtier.CarAction" method="{1}"> <result name="success">/car_{1}.jsp</result> <result name="input">/car_{1}.jsp</result> <result name="operationSuccess" type="redirect">car_queryCarList.action</result> </action> <action name="customer_*" class="com.webtier.CustomerAction" method="{1}"> <result name="success">/customer_{1}.jsp</result> <result name="input">customer_queryCustomerList.action</result> <result name="operationSuccess1" type="redirect">customer_queryCustomerList.action</result> </action> <action name="goods_*" class="com.webtier.GoodsAction" method="{1}"> <result name="success">/goods_{1}.jsp</result> <result name="deleteSuccess" type="redirect">goods_queryGoodsList.action</result> </action> </package> </struts> web.xml的配置文件: <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <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> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> 一部分AdminAction的代码: public class AdminAction extends AdminForm { private static AdminDao adminDao = null; static{ adminDao=new AdminDao(); } // 对登录用户的表单验证是否为空 public void validateIndex() { if (null == admin_user || admin_user.equals("")) { this.addFieldError("admin_user", "| 请您输入用户名"); } if (null == admin_password || admin_password.equals("")) { this.addFieldError("admin_password", "| 请您输入密码"); } } // 对登录用户的表单验证 public String index() { String query_password = adminDao.getAdminPassword(admin_user); if (query_password.equals("")) { this.addActionError("| 该用户名不存在"); return INPUT; } if (!query_password.equals(admin_password)) { this.addActionError("| 您输入的密码有误,请重新输入"); return INPUT; } session.put("admin_user", admin_user); return SUCCESS; } // 对修改管理员密码表单验证是否为空 public void validateUpdatePassword() { if (null == admin_password || admin_password.equals("")) { this.addFieldError("admin_password", "请输入原密码"); } if (null == admin_repassword1 || admin_repassword1.equals("")) { this.addFieldError("admin_repassword1", "请输入新密码"); } if (null == admin_repassword2 || admin_repassword2.equals("")) { this.addFieldError("admin_repassword2", "请输入密码确认"); } if (!admin_repassword1.equals(admin_repassword2)) { this.addActionError("您输入两次密码不相同,请重新输入!!!"); } } public String updatePassword() { String query_password = adminDao.getAdminPassword(admin_user); if (!admin_password.equals(query_password)) { this.addFieldError("admin_password", "您输入的原密码有误,请重新输入"); } String sql = "update tb_admin set admin_password='" + admin_repassword1 + "' where admin_user='" + admin_user + "'"; if (!adminDao.operationAdmin(sql)) { this.addActionError("修改密码失败!!!"); return INPUT; } else { request.setAttribute("editPassword", "您修改密码成功,请您重新登录!!!"); return SUCCESS; } } } 第一次提问,希望大神们多多指教!小弟也会虚心受教。

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

删库了,我们一定要跑路吗?

在工作中,我们误删数据或者数据库,我们一定需要跑路吗?我看未必,程序员一定要学会自救,神不知鬼不觉的将数据找回。 在 mysql 数据库中,我们知道 binlog 日志记录了我们对数据库的所有操作,所以 binlog 日志就是我们自救的利器。 接下来就来开启程序员自救之路。 想要自救成功,binlog 这把利器一定要好,在自己之前,我们一定要确定我们有 binlog 这把利器,以下就是确保有 bi...

再不跳槽,应届毕业生拿的都比我多了!

跳槽几乎是每个人职业生涯的一部分,很多HR说“三年两跳”已经是一个跳槽频繁与否的阈值了,可为什么市面上有很多程序员不到一年就跳槽呢?他们不担心影响履历吗? PayScale之前发布的**《员工最短任期公司排行榜》中,两家码农大厂Amazon和Google**,以1年和1.1年的员工任期中位数分列第二、第四名。 PayScale:员工最短任期公司排行榜 意外的是,任期中位数极小的这两家公司,薪资...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

华为初面+综合面试(Java技术面)附上面试题

华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前2题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的25%可能存在什么坑。 笔试部分太久远,我就不怎么回忆了。直接将面试。 面试 如果说腾讯的面试是挥金如土...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

现代的 “Hello, World”,可不仅仅是几行代码而已

作者 |Charles R. Martin译者 | 弯月,责编 | 夕颜头图 |付费下载自视觉中国出品 | CSDN(ID:CSDNnews)新手...

!大部分程序员只会写3年代码

如果世界上都是这种不思进取的软件公司,那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业。

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

HTTP与HTTPS的区别

面试官问HTTP与HTTPS的区别,我这样回答让他竖起大拇指!

程序员毕业去大公司好还是小公司好?

虽然大公司并不是人人都能进,但我仍建议还未毕业的同学,尽力地通过校招向大公司挤,但凡挤进去,你这一生会容易很多。 大公司哪里好?没能进大公司怎么办?答案都在这里了,记得帮我点赞哦。 目录: 技术氛围 内部晋升与跳槽 啥也没学会,公司倒闭了? 不同的人脉圈,注定会有不同的结果 没能去大厂怎么办? 一、技术氛围 纵观整个程序员技术领域,哪个在行业有所名气的大牛,不是在大厂? 而且众所...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年1月份最新版)

深入了解IT/互联网行业及岗位,请参阅通用IT/互联网岗位招聘计划(最新全岗版)。 深入了解职业晋升及学习路线,请参阅最优职业晋升路线和课程学习指南(最新全栈版)。 内容导航: 1、TIOBE排行榜 2、总榜(2020年1月份) 3、本月前三名 4、参考地址 1、TIOBE排行榜 TIOBE排行榜是根据全世界互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google

立即提问
相关内容推荐