这学期刚刚学JSP ,期末作业是做个项目交上去,现在遇到点困难,需要大虾帮帮忙。
使用jsp+struts2+mysql做的,web.xml配置好了,struts.xml也配置好了,但是每次在页面输入正确的用户名和密码上提交的时候总是转到出错页面,提示信息是没有用户名和密码。我感觉问题出在程序不能正确读取数据库中的信息所以附上源代码,希望大家帮帮我的忙,在此感激不尽。UsrLoginAction.java
package edu.ldu.news.action;
import java.util.ArrayList;
import java.util.List;
import edu.ldu.news.db.UsrDAO;
import edu.ldu.news.po.Usr;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;@SuppressWarnings("serial")
public class UsrLoginAction extends ActionSupport {
private String u_name;
private String u_pass;
private String tip;
private ArrayList dataList;
public String getU_name() {
return u_name;
}
public void setU_name(String u_name) {
this.u_name = u_name;
}
public String getU_pass() {
return u_pass;
}
public void setU_pass(String u_pass) {
this.u_pass = u_pass;
}
public String getTip() {
return tip;
}
public void setTip(String tip) {
this.tip = tip;
}
public ArrayList getDataList() {
return dataList;
}
public void setDataList(ArrayList dataList) {
this.dataList = dataList;
}
@SuppressWarnings("unchecked")
public String execute() throws Exception{
UsrDAO dao=new UsrDAO();
Usr u =dao.checkUsr(u_name, u_pass);
if(u==null){
return "noregist";
}else{
ActionContext.getContext().getSession().put("usr", u);
String u_kind=u.getU_kind();
if(u_kind.equals("0")){
return "admin";

}else if(u_kind.equals("1")){
return "guest";
}else{
return "error";
}

}
}


}
DBConn.java
package edu.ldu.news.db;import java.sql.*;public class DBConn { public static Connection getConn(){
Connection con=null;
try{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/ldunews";
String user="root";
String password="123456";
con=DriverManager.getConnection(url,user,password);
}catch(ClassNotFoundException e){
System.out.println("驱动找不到!");

}catch(SQLException e){
System.out.println("获得数据库连接失败!");
}

return con;
}
public static void dbclose(Connection con,Statement st,ResultSet rs){
try{
if(rs!=null){
rs.close();
rs=null;
}
if(st!=null){
st.close();
st=null;
}
if(con!=null){
con.close();
con=null;
}
}catch(SQLException e){
e.printStackTrace();
}
}
}
UsrDAO.java
package edu.ldu.news.db;
import java.sql.*;
import edu.ldu.news.po.Usr;public class UsrDAO {
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
public Usr checkUsr(String u_name,String u_pass){
Usr u=null;
String sql="select * from user u where u.u_name=? and u.u_pass=? and u.u_softdelete='1'";
try{
con=DBConn.getConn();
ps=con.prepareStatement(sql);
ps.setString(1, u_name);
ps.setString(2, u_pass);
rs=ps.executeQuery();
if(rs.next()){
u=new Usr();
u.setU_id(rs.getInt("u_id"));
u.setU_name(rs.getString("u_name"));
u.setU_name(rs.getString("u_pass"));
u.setU_name(rs.getString("u_kind"));
}
}catch(SQLException e){
e.printStackTrace();
}finally{
DBConn.dbclose(con, ps, rs);
}
return u;
}}
Usr.java
package edu.ldu.news.po;public class Usr implements java.io.Serializable {
private Integer u_id;
private String u_name;
private String u_pass;
private String u_question;
private String u_answer;
private String u_kind;
private String u_email;
private Integer u_softdelete;
public Usr(){

}
public Usr(String u_name, String u_pass, String u_question,
String u_answer, String u_kind, String u_email, Integer u_softdelete) {
super();
this.u_name = u_name;
this.u_pass = u_pass;
this.u_question = u_question;
this.u_answer = u_answer;
this.u_kind = u_kind;
this.u_email = u_email;
this.u_softdelete = u_softdelete;
}
public Integer getU_id() {
return u_id;
}
public void setU_id(Integer u_id) {
this.u_id = u_id;
}
public String getU_name() {
return u_name;
}
public void setU_name(String u_name) {
this.u_name = u_name;
}
public String getU_pass() {
return u_pass;
}
public void setU_pass(String u_pass) {
this.u_pass = u_pass;
}
public String getU_question() {
return u_question;
}
public void setU_question(String u_question) {
this.u_question = u_question;
}
public String getU_answer() {
return u_answer;
}
public void setU_answer(String u_answer) {
this.u_answer = u_answer;
}
public String getU_kind() {
return u_kind;
}
public void setU_kind(String u_kind) {
this.u_kind = u_kind;
}
public String getU_email() {
return u_email;
}
public void setU_email(String u_email) {
this.u_email = u_email;
}
public Integer getU_softdelete() {
return u_softdelete;
}
public void setU_softdelete(Integer u_softdelete) {
this.u_softdelete = u_softdelete;
}


}数据库中的user表结构:
+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| u_id         | int(11)     | NO   | PRI | NULL    | auto_increment |
| u_name       | varchar(32) | YES  |     | NULL    |                |
| u_pass       | varchar(32) | YES  |     | NULL    |                |
| u_question   | varchar(32) | YES  |     | NULL    |                |
| u_answer     | varchar(32) | YES  |     | NULL    |                |
| u_kind       | varchar(2)  | YES  |     | NULL    |                |
| u_email      | varchar(32) | YES  |     | NULL    |                |
| u_softdelete | int(2)      | YES  |     | 1       |                |
+--------------+-------------+------+-----+---------+----------------+

解决方案 »

  1.   

    提交页面的代码:
    <form action="usrLoginAction.action" method="post">
    <s:text name="u_name"/>:<input type="text" name="u_name" class="userpass" /><br />
    <br> <s:text name="userpass"/><input type="password"
    name="u_pass" class="userpass" /><br /> <br /><s:text name="checkcode"/><input
    type="text" name="checkcode" class="userpass1" /> <br /> <br>
    <input type="submit" value="<s:text name="submit"/>" class="userbutton" />&nbsp&nbsp
    <input type="reset" value=" <s:text name="reset"/>" class="userbutton" />&nbsp&nbsp&nbsp<input
    type="button" class="userbutton" value="<s:text name="regist1"/>"
    onclick="window.open('regist1.jsp')">
    </form>
    使用了struts2的国际化标签。struts2.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd" >
    <struts>
    <constant value="properties/languageResource" name="struts.custom.i18n.resources" />
    <package name="ldunews" extends="struts-default">
    <action name="usrLoginAction" class="edu.ldu.news.action.UsrLoginAction">
    <result name="admin">/login_admin.jsp</result>
    <result name="guest">/login_guest.jsp</result>
    <result name="noregist">/login_error.jsp</result>
    <result name="error">/about.jsp</result>
    </action>
    </package></struts>