按照李刚的struts讲义写的action 功能是输入用户名密码之后跳转到另外的jsp页面.但是每次都出来404页面.请问是哪边配置有问题? 如果另外ssh框架也没建好还请指正.以下是代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Archetype Created Web Application</display-name>
<!-- 以下3项参数与log4j的配置相关 -->
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<!-- 默认情况下,会加载WEB-INF/applicationContext.xml这个文件,我们可以通过配置
contextConfigLocation参数改变配置文件的路径 -->
<!-- Spring ApplicationContext配置文件的路径,可使用通配符,多个路径用,号分隔 此参数用于后面的Spring-Context
loader -->
<!-- 使容器启动时,自动加载applicationContext配置,因为它实现了ServletContextListener这个接口,容器启动时会自动执行它实现的方法。 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:*/ApplicationContext.xml,*/action-Servlet.xml</param-value>
</context-param>
<!-- 加载spring容器 -->
<!-- 整合struts 加入中心拦截器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<init-param>
<param-name>struts.action.extendion</param-name>
<param-value>action</param-value>
</init-param>
</filter>
<!--
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>-->
<!-- Struts -->
<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.xml</param-value></init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- session超时定义,单位为分钟 -->
<session-config>
<session-timeout>120</session-timeout>
</session-config>
<!-- 默认首页定义 -->
<welcome-file-list>
<welcome-file>login2.jsp</welcome-file>
</welcome-file-list>
<!-- Error Page定义 -->
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/commons/error.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/commons/error.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/commons/404.jsp</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/commons/403.jsp</location>
</error-page>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true"/>
<constant name="struts.objectFactory" value="spring" ></constant>
<package name="calvin" extends="struts-default">
<action name="login" class="/loginAction">
<result name="error">index.jsp</result>
<result name="success">/pages/index.jsp</result>
</action>
</package>
</struts>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- Spring容器配置文件 -->
<!-- 告诉spring hibernate文件的位置 然后加载 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/policemanagement?autoReconnect=true&useUnicode=true&characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="rooot"/>
<property name="maxActive" value="100"/>
<property name="maxIdle" value="30"/>
<property name="maxWait" value="1000"/>
<property name="defaultAutoCommit" value="true"/>
<property name="removeAbandoned" value="true"/>
<property name="removeAbandonedTimeout" value="60"/>
<property name="logAbandoned" value="true"/>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mappingResources" >
<list>
<value>calvin/po/pojo/hbm/arrestedPerson.hbm.xml</value>
<value>calvin/po/pojo/hbm/caseRegisted.hbm.xml</value>
<value>calvin/po/pojo/hbm/caseThread.hbm.xml</value>
<value>calvin/po/pojo/hbm/caseVictim.hbm.xml</value>
<value>calvin/po/pojo/hbm/policeOfficer.hbm.xml</value>
<value>calvin/po/pojo/hbm/victimOffice.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hbm2ddl.auto">create</prop>
</props>
</property>
</bean>
<!-- 为hibernte配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- daoContext 配置原因 所以放在这边 -->
<bean id="dao" class="calvin.dao.imp.BaseDAOHibernate">
<property name="sessionFactory" ref="sessionFactory" /></bean>
<bean id="policeOfficerDAO" class="calvin.dao.imp.PoliceOfficerImp">
<property name="sessionFactory" ref="sessionFactory" /></bean>
<bean id="arrestedPersonDAO" class="calvin.dao.imp.ArrestedPersonImp">
<property name="sessionFactory" ref="sessionFactory" /></bean>
<bean id="caseRegisteredDAO" class="calvin.dao.imp.CaseRegisteredImp">
<property name="sessionFactory" ref="sessionFactory" /></bean>
<bean id="caseThreadDAO" class="calvin.dao.imp.CaseThreadImp">
<property name="sessionFactory" ref="sessionFactory" /></bean>
<bean id="caseVictimDAO" class="calvin.dao.imp.CaseVictimImp">
<property name="sessionFactory" ref="sessionFactory" /></bean>
<bean id="victimOfficeDAO" class="calvin.dao.imp.VictimOfficeImp">
<property name="sessionFactory" ref="sessionFactory" /></bean>
<!-- ENd -->
<!-- IOC 注入机制 -->
<!-- 定义事务模板类 -->
<bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<!-- 注入事务管理器 -->
<property name="transactionManager" ref="transactionManager"/>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property></bean>
<!-- 配置具体业务逻辑层组件的事物代理 -->
<bean id="manager" parent="txProxyTemplate">
<property name="target">
<bean class="calvin.service.BaseManager">
<property name="dao" ref="dao"/>
</bean>
</property>
</bean>
<!-- 配置具体的业务逻辑组件额事务代理 -->
<!-- 配置业务逻辑组件的事务代理,使用了bean 的继承 -->
<!-- 配置所需要的dao组件!!!即这里用的是dao的名字 -->
<bean id="facadeManager" parent="txProxyTemplate">
<!-- 配置事务代理时,指定代理的目标,此处的目标是嵌套bean-->
<property name="target">
<!-- 嵌套bean无须使用 id属性-->
<bean class="calvin.service.imp.FacadeManagerImp">
<!-- 为业务逻辑组件注入DAO组件 -->
<property name="victimOfficeDAO" ref="victimOfficeDAO"/>
<property name="policeOfficerDAO" ref="policeOfficerDAO"/>
<property name="caseVictimDAO" ref="caseVictimDAO"/>
<property name="caseThreadDAO" ref="caseThreadDAO"/>
<property name="caseRegisteredDAO" ref="caseRegisteredDAO"/>
<property name="arrestedPersonDAO" ref="arrestedPersonDAO"/>
</bean></property>
</bean>
<!-- action -->
<bean id="myService" class="calvin.action.test.MyServiceImp"/>
<bean name="/loginAction" class="calvin.action.LoginAction" scope="prototype">
<property name="ms" ref="myService"/>
</bean>
</beans>
package calvin.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.junit.Test;
import calvin.action.baseAction.BaseAction;
import calvin.action.test.MyService;
import calvin.po.pojo.PoliceOfficer;
public class LoginAction extends BaseAction{
private String username;
private String password;
private MyService ms;
public MyService getMs() {
return ms;
}
public void setMs(MyService ms) {
this.ms = ms;
}
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;
}
@Override
public String execute() throws Exception{
System.out.println("AAA");
if(ms.valid(getUsername(),getPassword())){
return new String("success");
}else{
return "error";}
}
}
package calvin.action.test;
public class MyServiceImp implements MyService{
public boolean valid(String username,String pass){
return true;
}
}
首页配置就是一个很简单的登陆页面.
相关推荐
在这个“ssh搭建案例 spring2.5 hibernate3.1 struts1.2”中,我们将深入探讨这三个组件如何协同工作来实现一个转账案例,并通过Spring管理事务。 首先,Spring作为核心的框架,负责整个应用的依赖注入(DI)和面向...
SSH框架是Java开发中的经典组合,由Struts2、Spring和Hibernate三个开源框架组成,用于构建高效、可扩展的企业级Web应用。这个压缩包提供的是一个已经配置好的SSH框架,可以直接用于开发,极大地节省了开发者设置...
3. 配置struts.xml:创建Struts2的配置文件,定义Action类和结果页面的映射,以及全局配置如拦截器。 4. 配置spring.xml:设置Spring的配置文件,定义Bean的实例化、依赖注入以及事务管理等。 5. 配置Hibernate:...
SSH框架是Java开发中常用的三大框架集成,包括Spring、Struts和Hibernate。这些框架的组合为开发者提供了模型-视图-控制器(MVC)架构的支持,使得开发企业级应用程序更为高效和灵活。以下是对SSH框架及其组件的详细...
以上就是SSH框架搭建的基本步骤,涉及到的主要知识点包括Maven项目管理、Struts2的配置与Action、Spring的IoC和AOP、Hibernate的ORM机制以及分页查询。理解并掌握这些内容,你就能自如地构建基于SSH的Java Web应用。
在视频中,你将学习如何创建Action类,配置struts.xml文件,以及如何将结果重定向到相应的JSP页面。 2. **Spring**:Spring框架是一个全面的企业应用开发框架,提供了依赖注入(DI)和面向切面编程(AOP)等核心...
4. **控制器编写**:创建Struts的Action类,通过ActionForm接收前端请求,调用Service层方法,返回结果到视图。 5. **视图设计**:编写JSP页面,使用Struts标签库显示数据。 在项目经验的总结中,可能会遇到的问题...
8. **视图渲染**:登录成功或失败后,Struts2会根据配置的结果转发或重定向到相应的JSP页面进行显示。 通过这个SSHdemo,你可以一步步学习如何配置和集成这三个框架,理解它们之间的协作方式,为实际的项目开发打下...
这个“SSH视频演示SSH搭建”很可能是为了教学或自学目的,提供了一套详尽的步骤来指导用户如何将这三个框架整合在一起创建一个完整的Java Web项目。 1. **Struts**:这是一个MVC(模型-视图-控制器)架构的框架,...
在ssh2_test目录下,通常会包含以下组件:配置文件(如struts.xml、spring-context.xml、hibernate.cfg.xml)、Action类、Service接口及实现、DAO接口及实现、实体类(对应数据库表的模型)、JSP页面等。每个组件都...
Struts2是SSH(Spring、Struts、Hibernate)框架中的核心部分,是一个强大的MVC(Model-View-Controller)框架,用于构建企业级Java Web应用程序。SSH框架的整合旨在提供一个高效、灵活且可扩展的开发环境,使开发者...
SSH框架,全称为Spring、Struts和Hibernate的首字母缩写,是Java开发中的一个经典组合,用于构建企业级Web应用程序。Spring提供了依赖注入(DI)和面向切面编程(AOP),Struts则处理MVC(模型-视图-控制器)架构,...
本教程将通过高清视频的形式,详细讲解SSH的配置、搭建以及测试全过程,旨在帮助初学者快速掌握这一技术。 首先,我们来了解一下SSH的每个组件: 1. **Struts**:这是一个基于MVC设计模式的Java web应用框架,用于...
在本实例中,你可以看到Struts2的核心配置文件`struts.xml`,它定义了各个Action和结果的映射,以及如何将请求路由到对应的业务处理方法。 其次,Spring框架则是一个全面的后端解决方案,涵盖了依赖注入(DI)、...
SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架,它整合了三大开源框架,为开发者提供了高效、稳定且灵活的开发环境。在这个Java案例中,我们将深入探讨SSH框架下实现的各种功能,以及如何将它们...
下面将详细讲解如何在MyEclipse 10环境下搭建SSH框架,包括Struts2.1、Spring3.0和Hibernate3.3。 1. **配置Tomcat** - 首先,确保你的MyEclipse已经配置了Tomcat服务器,设置Tomcat的安装路径,并指定其使用的JDK...
【JavaWeb_SSH框架入门,IntelliJ IDEA搭建Struts2的HelloWorld】是一个适合初学者的教程,主要讲解如何在IntelliJ IDEA这个强大的Java集成开发环境中搭建一个基于Struts2框架的简单Web应用。SSH框架是Struts2、...
2. **Struts配置**:Action配置、拦截器设置、结果转发规则等,确保请求能正确路由到对应的业务逻辑。 3. **Hibernate配置**:数据库连接池的设置、实体类的映射文件、SessionFactory的配置等,使得数据访问层能顺利...
Eclipse 搭建 SSH 架构(Struts + Spring + Hibernate) Eclipse 是一个功能强大且功能丰富的集成开发环境(IDE), SSH 架构(Struts + Spring + Hibernate)是 Java Web 开发中常用的架构模式。下面将详细介绍...
SSH框架整合是Java Web开发中常见的一种技术组合,由Struts、Spring和Hibernate三个开源框架组成,它们分别负责表现层、业务逻辑层和数据访问层的管理。本资料旨在指导开发者如何有效地将这三个框架整合起来,构建出...