struts2做了个简单的登录注册,jdbc链接数据库

[size=small][color=red]这个登录注册做了能有3天吧,遇到了几个问题,耽误了些时间。现在把问题记下来,防止以后忘掉。也希望对大家有所帮助吧。代码如下:[/color][/size]


[color=brown][size=large]struts.xml[/size][/color]

        "http://struts.apache.org/dtds/struts-2.0.dtd">




/result.jsp
/result.jsp





[color=brown][size=large]web.xml[/size][/color]


xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter


struts2
/*




[color=brown][size=large]login.jsp[/size][/color]

<%@ page language="java" contentType="text/html; charset=GB2312" pageEncoding="GB2312" %>
<%@ taglib uri="/struts-tags" prefix="s" %>




My JSP 'index.jsp' starting page















[color=brown][size=large]result.jsp[/size][/color]

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>



提交结果


${result}






[color=brown][size=large]LoginAction.java[/size][/color]

package com.struts.action;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionSupport;
import com.struts.service.LoginService;

@SuppressWarnings("serial")
public class LoginAction extends ActionSupport implements ServletRequestAware {

// 用户名
private String userName;

// 用户密码
private String password;

// Service
private LoginService service = new LoginService();

// 获得HttpServletRequest对象
private javax.servlet.http.HttpServletRequest request;

public void setServletRequest(HttpServletRequest request) {
this.request = request;
}

/**
* 登录
* @return
*/
public String login() throws Exception {

// 登录用户check
boolean flg = service.userLogin(userName, password);

if (flg) {

request.setAttribute("result", "成功保存[" + "登录成功" + "]");

return "login";
}

request.setAttribute("result", "成功保存[" + "登录失败" + "]");

return "login";
}

/**
* 注册
* @return
*/
public String regist() throws Exception {

// 用户注册
boolean flg = service.userRegist(userName, password);

if (flg) {

request.setAttribute("result", "成功保存[" + "注册成功" + "]");

return "regist";
}

request.setAttribute("result", "成功保存[" + "注册失败" + "]");

return "regist";

}

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;
}

}



[color=brown][size=large]LoginService.java[/size][/color]

package com.struts.service;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class LoginService {

Connection con = null;

Statement stat = null;

ResultSet rs = null;

public LoginService() {

try {

Class.forName("com.mysql.jdbc.Driver");

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","");

stat = con.createStatement();

} catch (Exception e) {

con = null;

}
}

/**
* 登录用户check
*
* @param userName
* @param passWord
*/
public boolean userLogin(String userName, String passWord) {

String sql = "select * from tb_user where username='" + userName+"' and password ='"+passWord+"'";

try {

rs = executeQuery(sql);

if (rs.next()) {

return true;
}

} catch (SQLException e) {

e.printStackTrace();
}
return false;
}

/**
* 数据库查询
*
* @param userName
* @param passWord
*/
public ResultSet executeQuery(String sql) {

try {

rs = stat.executeQuery(sql);

} catch (Exception e) {

rs = null;

}

return rs;
}

public boolean userRegist(String userName, String passWord) {

String sql = "insert into tb_user(username,password) values('"+userName+"','"+passWord+"')";

try {

stat.executeUpdate(sql);

return true;

} catch (Exception e) {
e.printStackTrace();
}

return false;
}


}


[size=medium][color=red]大致能跑的,就是跑数据库的时候有点问题,没那么多时间去研究了~
其实一直困扰的我的问题就是一个form里面有多个submit按钮时要怎么跳转到同一个action里面的不同的方法。

网上这种例子有很多,但大多数都实现不了。后来不经意看到一个论坛上一个帖子的一个神回复。于是试了一下果然成功了。
主要就是在struts.xml中加一句话,在上述代码中已经写出来了

就是这句话。

value必须是true,否则就不能动态的分配了。

就总结到这里了。希望大家相互指正,相互学习~[/color][/size]

你可能感兴趣的:(Java)