配置文件:
1.struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <constant name="struts.Factory" value="spring"></constant> <package name="com.taoge.action" extends="struts-default" namespace="/taoge"> <action name="findall" class="testBean"> <result>/success.jsp</result> </action> <action name="save" class="testBean" method="save"> <result name="SUCCESS">/success.jsp</result> <result name="save">/error.jsp</result> </action> </package> <package name="ajax_action" extends="json-default" namespace="/"> <action name="ajax_*" class="testBean" method="{1}"> <result type="json" ></result> </action> </package> </struts>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name></display-name> <context-param> <param-name></param-name> <param-value></param-value> </context-param> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext*.xml</param-value> </context-param> <!-- 管理session --> <filter> <filter-name>lazyLoadingFilter</filter-name> <filter-class> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter </filter-class> <init-param> <!-- 指定org.springframework.orm.hibernate3.LocalSessionFactoryBean 在spring配置文件中的名称,默认值为sessionFactory. 如果LocalSessionFactoryBean在spring中的名称不是sessionFactory, 该参数一定要指定,否则会出现找不到sessionFactory的例外 --> <param-name>sessionFactory</param-name> <param-value>sessionFactory</param-value> </init-param> </filter> <!-- Spring Listener --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <!-- Log4j Config --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/classes/log4j.properties</param-value> </context-param> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>lazyLoadingFilter</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class> com.taoge.filter.FilterEncoding </filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
3.applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver"> </property> <property name="jdbcUrl" value="jdbc:mysql://116.255.144.155:58586/360_dflq_accounts"></property> <property name="user" value="rylq_admin"></property> <property name="password" value="rylq_210621047"></property> <!-- 连接池中保留的最小连接数.--> <property name="minPoolSize"> <value>5</value> </property> <!-- 连接池中保留的最大连接数。Default: 15 --> <property name="maxPoolSize"> <value>30</value> </property> <!-- 初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 --> <property name="initialPoolSize"> <value>10</value> </property> <!-- 最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --> <property name="maxIdleTime"> <value>60</value> </property> <!-- 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --> <property name="acquireIncrement"> <value>5</value> </property> <!-- JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements 属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。 如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0 --> <property name="maxStatements"> <value>0</value> </property> <!-- 每60秒检查所有连接池中的空闲连接。Default: 0 --> <property name="idleConnectionTestPeriod"> <value>60</value> </property> <!-- 定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 --> <property name="acquireRetryAttempts"> <value>30</value> </property> <!-- 获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效 保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试 获取连接失败后该数据源将申明已断开并永久关闭。Default: false--> <property name="breakAfterAcquireFailure"> <value>true</value> </property> <!-- 因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的 时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable 等方法来提升连接测试的性能。Default: false --> <property name="testConnectionOnCheckout"> <value>false</value> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="mappingResources"> <list> <value>com/taoge/model/Account.hbm.xml</value> <value>com/taoge/model/Notice.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.generate_statistics">true</prop> <prop key="hibernate.connection.release_mode">auto</prop> <prop key="hibernate.autoReconnect">true</prop> </props> </property> </bean> <bean id="stuDao" class="com.taoge.dao.hibernate3.stuHibernate"> <property name="sessionFactory"> <ref bean="sessionFactory"/> </property> </bean> <bean id="stuManager" class="com.taoge.service.Imp.stuManagerImpl"> <property name="stuDao"> <ref bean="stuDao"/> </property> </bean> <bean id="testBean" class="com.taoge.action.stuAction" scope="prototype"> <property name="stuManager"> <ref bean="stuManager"/> </property> <property name="noticeDAO"> <ref bean="noticeDAO"/> </property> </bean> <bean id="noticeDAO" class="com.taoge.model.NoticeDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean></beans>
4.action类:
package com.taoge.action; import java.util.List; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.ManyToOne; import net.sf.json.JSONObject; import com.opensymphony.xwork2.ActionSupport; import com.taoge.model.Account; import com.taoge.model.Notice; import com.taoge.model.NoticeDAO; import com.taoge.service.stuManager; @Entity public class stuAction extends ActionSupport { /** * */ @Id @GeneratedValue private static final long serialVersionUID = 1L; @ManyToOne private stuManager stuManager; private NoticeDAO noticeDAO; public void setNoticeDAO(NoticeDAO noticeDAO) { this.noticeDAO = noticeDAO; } private List list; private String str="haha"; private String result; private Notice noticeBean; private String haha; private String command; private String username; private String password; private Account user = null; private Account users; public String add(Object obj){ stuManager.add(obj); return SUCCESS; } public String login2(){ System.out.println(user.getUsername()+":"+user.getPassword()+"哈哈:"+this.getHaha()); String rslt=this.getResult(); noticeBean = (Notice)JSONObject.toBean(JSONObject.fromObject(rslt), Notice.class); // Account account=new Account(); // // account.setUsername(user.getUsername()); // account.setPassword(user.getPassword()); this.setUsers(user); list = noticeDAO.findAll(); this.setCommand("success123"); // return "login2"; return SUCCESS; } /* * 流的形式返回 */ // public String login(){ // // System.out.println(user.getUsername()+":"+user.getPassword()); // // Map<String, String> map = new HashMap<String, String>(); // // map.put("name", user.getUsername()); // // map.put("password",user.getPassword()); // // list = stuManager.getList(); // // //// JSONObject obj = JSONObject.fromObject(map); //// result = obj.toString(); // // JSONArray jsonarray = JSONArray.fromObject(list); //// //// result = jsonarray.toString(); // // ActionContext context = ActionContext.getContext(); //// HttpServletRequest request=(HttpServletRequest)context.get(ServletActionContext.HTTP_REQUEST); // // HttpServletResponse rspon = (HttpServletResponse) context.get(ServletActionContext.HTTP_RESPONSE); // // System.out.println("result:"+result); // // rspon.setCharacterEncoding("utf-8"); // rspon.setCharacterEncoding("utf-8"); // rspon.setContentType("text/html"); // // PrintWriter out = null; // try { // out = rspon.getWriter(); // } catch (IOException e) { // // e.printStackTrace(); // } // // // out.print(jsonarray); // // out.flush(); // out.close(); // // return SUCCESS; // } public String save(){ // System.out.println("haha"+username); System.out.println(user.getUsername()+":"+user.getPassword()); list = stuManager.getList(); return SUCCESS; } 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; } public String getHaha() { return haha; } public void setHaha(String haha) { this.haha = haha; } public String getCommand() { return command; } public void setCommand(String command) { this.command = command; } public String getResult() { return result; } public void setResult(String result) { this.result = result; } public Account getUsers() { return users; } public void setUsers(Account users) { this.users = users; } public Account getUser() { return user; } public void setUser(Account user) { this.user = user; } public String getStr() { return str; } public void setStr(String str) { this.str = str; } public void setStuManager(stuManager stuManager) { this.stuManager = stuManager; } public List getList() { return list; } public void setList(List list) { this.list = list; } public Notice getNoticeBean() { return noticeBean; } public void setNoticeBean(Notice noticeBean) { this.noticeBean = noticeBean; } }
附上整个工程的源码,如有需要可以下载,由于时间原因,程序中难免有不足,忘大家指点出来,共同进步!thank you!
相关推荐
本教程适用于初学者,旨在提供一个简易的操作步骤,帮助理解 SSH 框架如何协同工作。 首先,SSH 框架的组成部分: 1. **Spring**:Spring 是一个全面的后端应用框架,提供了依赖注入(DI)、面向切面编程(AOP)...
根据个人对框架的理解,写了一个简易的框架,基本的功能模块都可以实现,目前还有一些小小的bug没有修复,欢迎各位大佬提出建议! 开发环境: 系统:Windows 7 IDE:eclipse JDK:1.8 Tomcat:8.5 功能实现: 1.dao...
1. **环境配置**:安装JDK、设置环境变量,下载并配置Maven或Gradle等构建工具,搭建Tomcat等应用服务器,安装数据库(如MySQL),配置SSH框架的依赖库。 2. **项目结构**:理解Maven或Gradle的目录结构,包括src/...
通过SSH框架,我们可以快速搭建出一个稳定、高效的博客系统,不仅满足基本的博客功能,还能通过扩展实现更多个性化需求。在实践中,开发者还需要考虑安全性、性能优化、用户体验等方面的问题,以打造更高质量的应用...
该项目为SSH+DWR框架搭建的简易网上书城设计源码,共计935个文件,涵盖208个JavaScript脚本、200个GIF图像、73个HTML页面、69个Java类库、66个JSP文件、37个JPG图片、37个Java类文件、29个XML配置文件、24个CSS样式...
综上所述,这个“纯SSH写的简易考研论坛”项目是一个基于SSH框架的初级Web应用示例,展示了如何利用这些技术来搭建一个基础的在线社区平台。对于学习SSH框架和Web开发的初学者来说,这是一个很好的实践项目,可以...
1. **类库准备**:在搭建SSH架构前,首先需准备好必要的类库。这包括Hibernate、Spring、Struts的核心库以及它们各自的依赖库。例如,Hibernate需要的antlr、asm、cglib等库,Spring的spring.jar,以及Struts的...
【SSH框架详解】 SSH,全称为Struts2、Spring和Hibernate,是Java Web开发中常用的一个集成框架。这个框架组合了三个强大的开源组件,用于构建高效、可维护且易扩展的Web应用程序。在这个"课程设计云笔记系统SSH"中...
SSH2+easuUI+tomcat+MySQL 简易模板是一个初学者友好的开发环境配置,用于快速搭建Web应用程序。这个模板集成了几个关键的技术组件,包括SSH2(Struts2、Spring、Hibernate)、easuUI(一个前端界面框架)、Tomcat...
综上所述,简易销售管理系统利用SSH框架搭建了后端基础架构,结合MySQL数据库存储数据,通过Tomcat服务器提供Web服务,同时利用LigerUI的jQuery组件实现美观易用的前端界面。这套系统具备完整的销售管理功能,适合中...
通过使用SSM或SSH框架,可以实现代码的模块化和解耦,提高开发效率和代码质量。MySQL数据库作为数据存储,可以提供稳定的数据存储和快速的数据查询。而JSP作为页面开发技术,可以方便地生成动态的网页内容。 在项目...
【简易的微博】是一个使用SSH框架(Struts2、Spring、Hibernate)和MySQL数据库构建的微型社交媒体应用。这个项目展示了如何将这三个核心技术整合在一起,实现一个功能基础的微博平台。SSH框架是Java企业级开发中...
在IT行业中,SSH框架指的是Struts、Spring和Hibernate三大组件的集成,它们是Java Web开发中的常用工具。本文将详细讲解如何使用Hibernate框架,特别是针对初学者,通过一个简易的有声视频教程来帮助理解并搭建...
### SSH集成示例详解 #### 一、概述 本文档旨在提供一个关于...该示例虽然简单,但涵盖了SSH框架的核心组成部分,对于初学者来说是非常好的入门教程。未来还可以进一步扩展功能,比如增加用户管理、权限控制等模块。
【描述】:“用myeclipse 2013 做的一个非常简单的 SSH框架源代码,用来入门学习或者项目模板都可以。对了,没有写底层hibernate对数据库查询” 描述中提到的关键点是项目的简易性和学习用途。SSH框架结合使用,...