web.xml:<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
解决方案 »
- hibernate查询的过程疑问
- JSF的 <h:selectOneListbox 和 <h:selectManyListbox 怎么控制宽度
- struts1和ibatis2怎么整合
- List的问题
- struts 配置 filter好似不起作用..
- 谁有struts+ibatis的源码,新人学习急用不要添加了其他诸如spring或者JDO之类的
- 系统比较spring和aspectJ的优缺点
- [求助]请问给Tomcat配置虚拟目录????
- weblogic砍死了jbuilder
- JPA-HEBERNATE 插入数据时如何把id也加上
- 【高手请进】关于Apache2.x 和 Tomcat5.x 部署实现多WebServer负载平衡的问题。
- 一个初级的问题
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionServlet;
import bussness.UserInfoBo;
import entity.UserInfoForm;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;public final class LogonAction extends Action { public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
UserInfoForm userInfoForm = (UserInfoForm) form;
//从web层获得用户名和口令
String username = userInfoForm.getUsername().trim();
String password = userInfoForm.getPassword().trim();
//声明错误集对象
ActionErrors errors = new ActionErrors();
//声明数据源和连接对象
DataSource dataSource;
Connection cnn=null; //校验输入
if(username.equals("")){
ActionError error=new ActionError("error.missing.username");
errors.add(ActionErrors.GLOBAL_ERROR,error);
}
if(password.equals("")){
ActionError error=new ActionError("error.missing.password");
errors.add(ActionErrors.GLOBAL_ERROR,error);
} //调用业务逻辑
if(errors.size()==0){
String validated = "";
try{
//取得数据库连接
dataSource = getDataSource(request,"A");
cnn = dataSource.getConnection(); UserInfoBo userInfoBo=new UserInfoBo(cnn);
validated =userInfoBo.validatePwd(username,password);
if(validated.equals("match")){
//一切正常就保存用户信息并转向成功的页面
HttpSession session = request.getSession();
session.setAttribute("userInfoForm", form);
return mapping.findForward("success");
}
} catch(Throwable e){
//处理可能出现的错误
e.printStackTrace();
ActionError error=new ActionError(e.getMessage());
errors.add(ActionErrors.GLOBAL_ERROR,error);
}
}
//如出错就转向输入页面,并显示相应的错误信息
saveErrors(request, errors);
return new ActionForward(mapping.getInput());
}
}
import java.sql.Connection;
import java.sql.SQLException;
import java.lang.Exception;
import db.UserInfoDao;public class UserInfoBo {
private Connection cnn=null; public UserInfoBo(Connection cnn){
this.cnn=cnn;
} public String validatePwd(String username,String password){ String validateResult="";
try{
UserInfoDao userInfoDao = new UserInfoDao(cnn);
validateResult=userInfoDao.validatePwd(username,password);
if(validateResult.equals("error.logon.invalid")){
//如果用户名与口令不匹配则报此错
throw new RuntimeException("error.logon.invalid");
}
else if(validateResult.equals("error.removed.user")){
//如果找不到用户则报此错,这样用户看到的出错信息会更详细
throw new RuntimeException("error.removed.user");
}
}
catch(Exception e){
throw new RuntimeException(e.getMessage());
}
finally{
try{
if(cnn!=null){
cnn.close();
}
}
catch(SQLException sqle){
sqle.printStackTrace();
throw new RuntimeException("error.unexpected");
}
}
return validateResult;
}
}
是不是<form action="logAction.do"
错误提示是找不到action
<form action="logonAction.do">
是你设置的path里的值