SSH2实现注册功能,点击注册按钮之后,一直处于正在连接状态

我的register.jsp代码为:


<form id="register" method="post" action="register">
<table>
<tr>
<td>Username</td>
<td> <input  id="username" style="width: 250px;"  name="username" maxlength="30" placeholder="Only letters, numbers, dashes or dots" value="<s:property value="username"/>" /></td>
</tr>
<tr>
<td >&nbsp;</td>
<td><div><span><s:fielderror ><s:param>username</s:param></s:fielderror></span></div></td>
</tr>
<tr>
<td>Psaaword</td>
<td> <input  id="password" name="password" style="width: 250px;" maxlength="30" type="password" placeholder="Minimum of 6 chars" value=""/></td>
</tr>
<tr>
<td >&nbsp;</td>
<td><div><span><s:fielderror ><s:param>password</s:param></s:fielderror></span></div></td>
</tr>
<tr>
<td>Confirm PSW.</td>
<td> <input  id="password2"  name="repeat_password" style="width: 250px;" type="password" maxlength="30" placeholder="Enter password again"  value=""/></td>
</tr>
<tr>
<td >&nbsp;</td>
<td><div><span><s:fielderror ><s:param>repeat_password</s:param></s:fielderror></span></div></td>
</tr>
<tr>
<td>Email</td>
<td > <input  id="email" name="email" style="width: 250px;" placeholder="Your e-mail address" value="<s:property value="email"/>"/></td>
</tr>
<tr>
<td >&nbsp;</td>
<td align="left" ><div><span><s:fielderror ><s:param>email</s:param></s:fielderror></span></div> </td>
</tr>
<!--
<tr>
<td colspan="2">
<div>
<table>
<tr>
<td>motto</td>
<td > <textarea  id="motto" name="motto" rows="5" style="width: 250px;" placeholder="Your motto(格言)" ><s:property value="motto"/></textarea></td>
</tr>
<tr>
<td>Birthday</td>
<td >
</td>
</tr>
</table>

</div>
</td>
</tr>
-->
<tr>
<td>&nbsp;</td>
<td align="center" ><input id="sub" type="Submit" value="<s:text name="register"/>"/> </td>
</tr>

</table>
</form>

RegisterAction.java

public class RegisterAction extends ActionSupport{

private IUserService userService;

private String username;
private String password;
private String repeat_password;
private String nickname;
private String email;

//print the log to debug.
private static Logger log = Logger.getLogger(RegisterAction.class);

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 getRepeat_password() {
return repeat_password;
}
public void setRepeat_password(String repeatPassword) {
repeat_password = repeatPassword;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}

public IUserService getUserService() {
return userService;
}
public void setUserService(IUserService userService) {
this.userService = userService;
}

public String execute()throws Exception {
log.info("Register");
System.out.println(username+" " + password+" " +email);
try {

if(true==userService.isUsernameExist(username)){
//System.out.println(username+"用户名已被使用");
this.addFieldError("username", "用户名已被使用");
return INPUT;
}

Users user_ = new Users();

user_.setUserId(username);
user_.setPassword(password);
user_.setEmail(email);
//Date dt = new Date();
//user_.setBirthday(dt);
//user_.setRegdate(dt);
userService.save(user_);
System.out.println("success");
ActionContext.getContext().getSession().put("session_username",username);
//OnlineUserList.addUser(username);

return SUCCESS;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return ERROR;
}
}
}

applicationContext.xml

<bean name="registerBean" class="cn.edu.shzu.oj.action.RegisterUserAction"  scope="prototype">
<property name="userService" ref="userService" />
</bean>

struts.xml

<action name="register" class="registerBean">
<result name="input">/register.jsp</result>
<result name="success"  type="redirect">/settings</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="isEnter"></interceptor-ref>
</action>

点击注册之后,

浏览器一直出现“正在连接....”

这种问题很蛋疼啊,没有任何错误提示。

在RegisterAction.java中打了log,但是没有显示信息。我推测RegisterAction没有执行。不知道该怎么办,求救啊。

通过tomcat目录下的logs日志,发现没有register请求啊。下面应该怎么办啊?求大神指点。

解决过程:

接下来经过一系列的调试。因为我的登录功能是没有问题的,所以我将register.jsp中的action换成了login,结果请求是可以发出的,然后我把Login.jsp中的action换成了register,结果是有问题的,就像上面的图片一样,一直处于连接状态。因此可以判定,是我的register的相关配置有问题,而register.jsp前端是没有问题的。

同理,我在struts.xml中,将<action name="register">    中的register换成了login,结果是没有问题的。把applicationContext.xml中的<bean name="registerBean" scope="prototype">的registerBean换成loginBean仍然是没有问题的。最后我直接将cn.edu.shzu.oj.action.RegisterUserAction这个RegisterUserAction换成了LoginAction,结果惊奇地发现,一切运行正常。于是我重新写了一个TestAction,将RegisterUserAction的所有代码拷贝到TestAction里面,结果发现运行正常。很奇怪是吧。我也很奇怪。

在这里很抱歉的是,我忘记说一个东西,那就是validators,在RegisterUserActiont同目录下有一个RegisterUserAction-validation.xml,我查看了一下这个文件。这个文件是从网上找的,我怀疑是里面的某些配置有问题,于是我去官方网站查看struts2的Validators,结果发现它的头部是:

<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">

而我现在的文件是:

<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.2//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">

将此改正,运行正常。灰常欢喜。

总结:遇到这个原因就是这个struts2验证的地方出现的问题,我用的是struts 2.3.1.2,而我之前拷贝的那个代码可能是struts2之前的版本,没有任何异常提示的错误就此解决。看来struts2的路还有很长时间要走啊。如果有提示,不是很快就把问题解决了吗?????

转载于:https://my.oschina.net/jerikc/blog/76237

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值