package com.struts.chaptertwo;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class LoginAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginActionForm loginActionForm=(LoginActionForm)form;
String username=loginActionForm.getUsername();
String password=loginActionForm.getPassword();
DataSource ds=getDataSource(request);
Connection conn=ds.getConnection();
Statement stmt=conn.createStatement();
String sqlStr="select * from loginuser where username='"+username+"' and password='"+password+"'";
ResultSet rs=stmt.executeQuery(sqlStr);
Boolean result=false;
if(rs.next()){
result =true;
}else{
result=false;
}
conn.close();
if(result){
return mapping.findForward("wellcome"); }else{
return mapping.findForward("wrong");
}
}
}
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class LoginAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginActionForm loginActionForm=(LoginActionForm)form;
String username=loginActionForm.getUsername();
String password=loginActionForm.getPassword();
DataSource ds=getDataSource(request);
Connection conn=ds.getConnection();
Statement stmt=conn.createStatement();
String sqlStr="select * from loginuser where username='"+username+"' and password='"+password+"'";
ResultSet rs=stmt.executeQuery(sqlStr);
Boolean result=false;
if(rs.next()){
result =true;
}else{
result=false;
}
conn.close();
if(result){
return mapping.findForward("wellcome"); }else{
return mapping.findForward("wrong");
}
}
}
数据池:
<data-sources>
<data-source type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="sun.jdbc.odbc.JdbcOdbcDriver" />
<set-property property="url" value="jdbc:odbc:driver={sql server};server=.;database=zzh;" />
<set-property property="username" value="" />
<set-property property="password" value="" />
</data-source>
</data-sources>
跟这个没关系
你根本没有getDataSource这个方法
我也碰到了这个问题。现在不知道有什么可以替代getDataSource的方法
较新的版本action中已经没有getDataSource这个方法了