- 浏览: 751344 次
- 性别:
- 来自: 深圳
-
文章分类
最新评论
-
lengzl:
请问,那个Node 是哪个包里面的类?
JAVA 二叉树的递归和非递归遍历 -
gongchuangsu:
总结的很好,感谢感谢
JAVA 二叉树的递归和非递归遍历 -
Caelebs:
666666666 居然是10年发的,难怪截屏自动保存的名字是 ...
截图工具 -
jijiqw:
是注解不是注释。。。
Spring @Transactional (一) -
letueo:
[b][b][b][b][b][b][b][b][b][b][ ...
Spring @Transactional (一)
一.加载所有的sshjar包
二..ssh的所有配制文件:
1.spring文件的配制:
applicationContext-actions.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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean name="/user" class="com.hbin.homepage.web.action.UserAction" scope="prototype">
<property name="userManager" ref="userManager"/>
</bean>
<bean name="/cource" class="com.hbin.homepage.web.action.CourceAction" scope="prototype">
<property name="userManager" ref="userManager"/>
<property name="courceManager" ref="courceManager"/>
</bean>
</beans>
applicationContext-beans.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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean id="userManager" class="com.hbin.homepage.manager.impl.UserManagerImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="courceManager" class="com.hbin.homepage.manager.impl.CourceManagerImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
</beans>
applicationContext-common.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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<!-- 配置sessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<!-- 配置事务特性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<!-- 配置那些类的方法进行事务管理 -->
<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution (* com.hbin.homepage.manager.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod"/>
</aop:config>
</beans>
2.hibernate文件的配制:
hibernate.cfg.xml文件中的内容:
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1/homepage</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<!--实体对象配制-->
<mapping resource="com/hbin/homepage/model/User.hbm.xml"/>
<mapping resource="com/hbin/homepage/model/Cource.hbm.xml"/>
</session-factory>
</hibernate-configuration>
User.hbm.xml映射文件的内容:
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class table="t_user" name="com.hbin.homepage.model.User">
<id name="id">
<generator class="native"/>
</id>
<property name="name" not-null="true" unique="true"/>
<property name="realName"/>
<property name="pd"/>
<property name="url"/>
<property name="rdate" update="false"/>
<!-- 先保存User再保存Cource -->
<!-- 这里order-by是指把得到的集合元素按id升序排列,也可以order-by="id desc"是降序.只有排序好了
在前台展现的时候才不会出现数据的顺序乱变的情况-->
<set inverse="true" name="cources" lazy="false" order-by="id">
<key column="userId" on-delete="cascade"/>
<one-to-many class="com.hbin.homepage.model.Cource"/>
</set>
<set inverse="true" name="gdesigns" lazy="false" order-by="id">
<key column="userId" on-delete="cascade"/>
<one-to-many class="com.hbin.homepage.model.GDesign"/>
</set>
</class>
</hibernate-mapping>
3.Struts文件的配制
web.xml文件配制内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<welcome-file-list>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
<!-- Standard Action Servlet Configuration (with debugging) -->
<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>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- 加载spring的配制文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 配制Spring对hibernate session开关的过滤器的支持(其实它的实现和我们以前用的那种在web.xml文件中
配制property name="current_session_context_class">thread</property再在调用getCurrentSession()
这个方法,一样的效果) -->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring对页面编码字符集过滤器的支持 -->
<filter>
<filter-name>Spring character encoding filter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 这个servlet是自动加载的,所以没有映射的url -->
<servlet>
<servlet-name>utilDateConverter</servlet-name>
<servlet-class>com.hbin.homepage.servlet.UtilDateConverterInitServlet</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<!-- dwr框架配制 -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<!-- 分页处理的过滤器 -->
<filter>
<filter-name>pagerFilter</filter-name>
<filter-class>com.hbin.homepage.servlet.PagerFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>pagerFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 访问权限控制,注意这里配制了两个mapping,如果有需要的话可以配制多个.这里第二个mapping就是不能
打开http://localhost:8080/THomePageService2.4/index.jsp这个连接,因为那样前台的首页就没有用户对象
展现的时候就没有数据了.所以限制用户用http://localhost:8080/THomePageService2.4/user.do?method=allUsersInfo&target=front
这个连接来访问这个这个前台的index.jsp页面.当然在filter的Java文件我们还需要判断处理.-->
<filter>
<filter-name>AuthFilter</filter-name>
<filter-class>com.hbin.homepage.servlet.AuthFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AuthFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>AuthFilter</filter-name>
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>
</web-app>
struts-config.xml文件的配制内容:
<?xml version="1.0" encoding="GBK" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<form-beans>
<form-bean name="userActionForm" type="com.hbin.homepage.web.form.UserActionForm"></form-bean>
<form-bean name="courceActionForm" type="com.hbin.homepage.web.form.CourceActionForm"></form-bean>
<form-bean name="gdesignActionForm" type="com.hbin.homepage.web.form.GDesignActionForm"></form-bean>
</form-beans>
<!-- 全局标签的配制要放在action-mappings前面 -->
<!-- 这里的scope="request"就是把这个异常信息放到request中.这里的key值没用的,真正的key是
在hander类中读出来的.这里的path没有写的话就会用input的值作为路经.这里的key的值是当我们在抛出的
异常中没有key的话它就会用这个默认的key来处理,这个key的值在资源文件中也是有配制的. -->
<global-exceptions>
<exception
key="allerrors.default"
type="java.lang.Exception"
path="/common/exception.jsp"
scope="request"
handler="com.hbin.homepage.util.SystemExceptionHandler"
></exception>
</global-exceptions>
<!--
<global-forwards>
<forward name="pub_add_success" path="/common/pub_add_success.jsp"></forward>
<forward name="pub_update_success" path="/common/pub_update_success.jsp"></forward>
<forward name="pub_del_success" path="/common/pub_del_success.jsp"></forward>
</global-forwards>
-->
<action-mappings>
<action
path="/user"
type="org.springframework.web.struts.DelegatingActionProxy"
name="userActionForm"
scope="request"
parameter="method"
>
<forward name="register" path="/register.htm"/>
<forward name="index" path="/index.jsp"/>
<forward name="login" path="/login.htm"/>
<forward name="admin" path="/admin/index.jsp" redirect="true"/>
</action>
</action-mappings>
<message-resources parameter="MessageResources" />
</struts-config>
struts中action和form的编写:
package com.hbin.homepage.web.action;
import java.io.FileOutputStream;
import java.util.Date;
import java.util.List;
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.apache.struts.actions.DispatchAction;
import org.apache.struts.upload.FormFile;
import org.apache.commons.beanutils.BeanUtils;//注意这个类不是spring中的那个类
import com.hbin.homepage.manager.UserManager;
import com.hbin.homepage.model.User;
import com.hbin.homepage.util.PagerModel;
import com.hbin.homepage.util.SystemException;
import com.hbin.homepage.web.form.UserActionForm;
public class UserAction extends DispatchAction {
private UserManager userManager;
@Override
protected ActionForward unspecified(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return super.unspecified(mapping, form, request, response);
}
//添加用户输入
public ActionForward addUserInput(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
return mapping.findForward("register");
}
//添加用户(用户注册)
public ActionForward addUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
UserActionForm uaf = (UserActionForm)form;
User user = new User();
BeanUtils.copyProperties(user,uaf);
user.setRdate(new Date());
int id = userManager.addUser(user);//保存了这个user,有了这个user的id才好设置url
//不是这个地址:http://localhost:8080/THomePageService1.1/homepage.jsp
//http://localhost:8080/THomePageService1.9/enterhomepage.do?method=enterUserHomePage&id=34
String url = request.getScheme()+"://"+request.getServerName()+":"
+request.getServerPort()+request.getContextPath()
+"/enterhomepage.do?method=enterUserHomePage&userId="+id;
user.setUrl(url);
//System.out.println("--" + user.getId());//这里也可以得到才保存的那个用户的id
userManager.updateUser(user);
return mapping.findForward("index");
}
//-------------------------------------------------------------------------------------------
public void setUserManager(UserManager userManager) {
this.userManager = userManager;
}
}
struts中的form的编写:
package com.hbin.homepage.web.form;
import java.util.Date;
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
public class UserActionForm extends ActionForm {
private int id;
private String name;
private String realName;
private String pd;
//是不是管理员
private String isAdmin;
//头像图片上传
private FormFile file;
private String target;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPd() {
return pd;
}
public void setPd(String pd) {
this.pd = pd;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public void setTarget(String target) {
this.target = target;
}
}
二..ssh的所有配制文件:
1.spring文件的配制:
applicationContext-actions.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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean name="/user" class="com.hbin.homepage.web.action.UserAction" scope="prototype">
<property name="userManager" ref="userManager"/>
</bean>
<bean name="/cource" class="com.hbin.homepage.web.action.CourceAction" scope="prototype">
<property name="userManager" ref="userManager"/>
<property name="courceManager" ref="courceManager"/>
</bean>
</beans>
applicationContext-beans.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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean id="userManager" class="com.hbin.homepage.manager.impl.UserManagerImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="courceManager" class="com.hbin.homepage.manager.impl.CourceManagerImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
</beans>
applicationContext-common.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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<!-- 配置sessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<!-- 配置事务特性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<!-- 配置那些类的方法进行事务管理 -->
<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution (* com.hbin.homepage.manager.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod"/>
</aop:config>
</beans>
2.hibernate文件的配制:
hibernate.cfg.xml文件中的内容:
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1/homepage</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<!--实体对象配制-->
<mapping resource="com/hbin/homepage/model/User.hbm.xml"/>
<mapping resource="com/hbin/homepage/model/Cource.hbm.xml"/>
</session-factory>
</hibernate-configuration>
User.hbm.xml映射文件的内容:
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class table="t_user" name="com.hbin.homepage.model.User">
<id name="id">
<generator class="native"/>
</id>
<property name="name" not-null="true" unique="true"/>
<property name="realName"/>
<property name="pd"/>
<property name="url"/>
<property name="rdate" update="false"/>
<!-- 先保存User再保存Cource -->
<!-- 这里order-by是指把得到的集合元素按id升序排列,也可以order-by="id desc"是降序.只有排序好了
在前台展现的时候才不会出现数据的顺序乱变的情况-->
<set inverse="true" name="cources" lazy="false" order-by="id">
<key column="userId" on-delete="cascade"/>
<one-to-many class="com.hbin.homepage.model.Cource"/>
</set>
<set inverse="true" name="gdesigns" lazy="false" order-by="id">
<key column="userId" on-delete="cascade"/>
<one-to-many class="com.hbin.homepage.model.GDesign"/>
</set>
</class>
</hibernate-mapping>
3.Struts文件的配制
web.xml文件配制内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<welcome-file-list>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
<!-- Standard Action Servlet Configuration (with debugging) -->
<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>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- 加载spring的配制文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 配制Spring对hibernate session开关的过滤器的支持(其实它的实现和我们以前用的那种在web.xml文件中
配制property name="current_session_context_class">thread</property再在调用getCurrentSession()
这个方法,一样的效果) -->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring对页面编码字符集过滤器的支持 -->
<filter>
<filter-name>Spring character encoding filter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 这个servlet是自动加载的,所以没有映射的url -->
<servlet>
<servlet-name>utilDateConverter</servlet-name>
<servlet-class>com.hbin.homepage.servlet.UtilDateConverterInitServlet</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<!-- dwr框架配制 -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<!-- 分页处理的过滤器 -->
<filter>
<filter-name>pagerFilter</filter-name>
<filter-class>com.hbin.homepage.servlet.PagerFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>pagerFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 访问权限控制,注意这里配制了两个mapping,如果有需要的话可以配制多个.这里第二个mapping就是不能
打开http://localhost:8080/THomePageService2.4/index.jsp这个连接,因为那样前台的首页就没有用户对象
展现的时候就没有数据了.所以限制用户用http://localhost:8080/THomePageService2.4/user.do?method=allUsersInfo&target=front
这个连接来访问这个这个前台的index.jsp页面.当然在filter的Java文件我们还需要判断处理.-->
<filter>
<filter-name>AuthFilter</filter-name>
<filter-class>com.hbin.homepage.servlet.AuthFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AuthFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>AuthFilter</filter-name>
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>
</web-app>
struts-config.xml文件的配制内容:
<?xml version="1.0" encoding="GBK" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<form-beans>
<form-bean name="userActionForm" type="com.hbin.homepage.web.form.UserActionForm"></form-bean>
<form-bean name="courceActionForm" type="com.hbin.homepage.web.form.CourceActionForm"></form-bean>
<form-bean name="gdesignActionForm" type="com.hbin.homepage.web.form.GDesignActionForm"></form-bean>
</form-beans>
<!-- 全局标签的配制要放在action-mappings前面 -->
<!-- 这里的scope="request"就是把这个异常信息放到request中.这里的key值没用的,真正的key是
在hander类中读出来的.这里的path没有写的话就会用input的值作为路经.这里的key的值是当我们在抛出的
异常中没有key的话它就会用这个默认的key来处理,这个key的值在资源文件中也是有配制的. -->
<global-exceptions>
<exception
key="allerrors.default"
type="java.lang.Exception"
path="/common/exception.jsp"
scope="request"
handler="com.hbin.homepage.util.SystemExceptionHandler"
></exception>
</global-exceptions>
<!--
<global-forwards>
<forward name="pub_add_success" path="/common/pub_add_success.jsp"></forward>
<forward name="pub_update_success" path="/common/pub_update_success.jsp"></forward>
<forward name="pub_del_success" path="/common/pub_del_success.jsp"></forward>
</global-forwards>
-->
<action-mappings>
<action
path="/user"
type="org.springframework.web.struts.DelegatingActionProxy"
name="userActionForm"
scope="request"
parameter="method"
>
<forward name="register" path="/register.htm"/>
<forward name="index" path="/index.jsp"/>
<forward name="login" path="/login.htm"/>
<forward name="admin" path="/admin/index.jsp" redirect="true"/>
</action>
</action-mappings>
<message-resources parameter="MessageResources" />
</struts-config>
struts中action和form的编写:
package com.hbin.homepage.web.action;
import java.io.FileOutputStream;
import java.util.Date;
import java.util.List;
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.apache.struts.actions.DispatchAction;
import org.apache.struts.upload.FormFile;
import org.apache.commons.beanutils.BeanUtils;//注意这个类不是spring中的那个类
import com.hbin.homepage.manager.UserManager;
import com.hbin.homepage.model.User;
import com.hbin.homepage.util.PagerModel;
import com.hbin.homepage.util.SystemException;
import com.hbin.homepage.web.form.UserActionForm;
public class UserAction extends DispatchAction {
private UserManager userManager;
@Override
protected ActionForward unspecified(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return super.unspecified(mapping, form, request, response);
}
//添加用户输入
public ActionForward addUserInput(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
return mapping.findForward("register");
}
//添加用户(用户注册)
public ActionForward addUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
UserActionForm uaf = (UserActionForm)form;
User user = new User();
BeanUtils.copyProperties(user,uaf);
user.setRdate(new Date());
int id = userManager.addUser(user);//保存了这个user,有了这个user的id才好设置url
//不是这个地址:http://localhost:8080/THomePageService1.1/homepage.jsp
//http://localhost:8080/THomePageService1.9/enterhomepage.do?method=enterUserHomePage&id=34
String url = request.getScheme()+"://"+request.getServerName()+":"
+request.getServerPort()+request.getContextPath()
+"/enterhomepage.do?method=enterUserHomePage&userId="+id;
user.setUrl(url);
//System.out.println("--" + user.getId());//这里也可以得到才保存的那个用户的id
userManager.updateUser(user);
return mapping.findForward("index");
}
//-------------------------------------------------------------------------------------------
public void setUserManager(UserManager userManager) {
this.userManager = userManager;
}
}
struts中的form的编写:
package com.hbin.homepage.web.form;
import java.util.Date;
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
public class UserActionForm extends ActionForm {
private int id;
private String name;
private String realName;
private String pd;
//是不是管理员
private String isAdmin;
//头像图片上传
private FormFile file;
private String target;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPd() {
return pd;
}
public void setPd(String pd) {
this.pd = pd;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public void setTarget(String target) {
this.target = target;
}
}
发表评论
-
Struts2 xwork中ActionContext和ServletActionContext介绍
2011-03-21 11:26 1452ActionContext(Action上下文) ... -
Struts,Hibernate,Spring经典面试题收藏
2010-12-06 08:44 1344Struts,Hibernate,Spring经 ... -
struts1.2中ActionForm的理解
2010-12-03 14:43 1756初学struts的人我认为首 ... -
struts-config.xml 详解
2010-12-03 12:04 975弄清楚struts-config.xml中各项元素的作用,对于 ... -
struts global-exceptions用法
2010-12-03 11:56 1593在用struts框架写web程序时,有可能会遇到很多异常,如u ... -
<servlet-mapping>元素及其子元素
2010-12-03 11:04 1409<servlet-mapping>元素 ... -
servlet mapping 规则
2010-12-03 10:43 1441servlet mapping有三种<url-patte ... -
常用log4j配置
2010-12-03 09:48 929常用log4j配置 常用log4j配置,一般可以采用两种方 ... -
Log4j简介
2010-12-03 09:47 807在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用 ... -
log4j配置祥解
2010-12-03 09:46 1000第一步:加入log4j-1.2.8.j ... -
数据库连接池DBCP
2010-12-02 14:54 1070概念:数据库连接池负责分配、管理和释放数据库连接,它允许应用程 ... -
Hibernate持久化对象三种状态的区分,以及save,update,saveOrUpdate,merge,persist等的使用
2010-11-12 20:22 1580Hibernate的对象有3种状态,分别为:瞬时态(Trans ... -
Hibernate持久化对象
2010-11-12 20:20 1229一,持久化对象: 1,置于session管理下的对象叫做持久化 ... -
hibernate核心类简介
2010-11-12 20:16 1170Hibernate Hibernate是一 ... -
J2EE是什么语言
2010-11-11 12:42 6001****** 版权声明 ******** * 在完整保留 ... -
Hibernate最基础的示例
2010-11-04 15:06 1488有关Spring的知识大部分都已经温习完毕,今天开始转向H ... -
struts+spring+hibernate是怎样的架构?
2010-11-01 17:21 1100struts+spring+hibernate是怎 ... -
快速整合struts+spring+hibernate
2010-11-01 17:17 980说明: 使用平台:Eclipse3.2、MyEclipse5 ... -
Spring整合Hibernate
2010-11-01 15:34 1200Spring整合Hibernate的价值在于Spring为Hi ... -
一些有用的网址
2010-11-01 15:10 1010http://wenku.baidu.com/view/7ab ...
相关推荐
这个压缩包文件的标题"SSH环境搭建"表明它包含与设置和配置这三个框架相关的资源,以便在开发环境中运行。让我们逐一深入探讨SSH框架的核心概念、作用以及如何进行环境搭建。 **Struts 2** Struts 2 是一个基于MVC...
SSH(Struts2、Spring、Hibernate...总的来说,SSH环境搭建涉及众多组件和配置,但是一旦完成,可以提供强大的功能和良好的可维护性。理解每个部分的工作原理和它们之间的协同,是成为一名熟练的Java Web开发者的关键。
以上是SSH环境搭建的基本过程,通过这个过程,你可以建立一个安全的远程访问通道,保护你的数据不受网络威胁。在实际操作中,根据具体需求和安全策略调整配置是至关重要的。在 Rico-Cai 的博客中可能有更具体的实践...
### MyEclips集成SSH环境搭建详解 #### 一、为什么要进行SSH整合? 在软件开发领域,特别是Java Web开发中,Struts2、Hibernate、Spring(简称SSH)这三大框架各自独立时,都能完成一定的任务。然而,在实际项目中...
然而,这里的"ssh环境搭建需要的jar包2"可能是指与SSH协议相关的Java库,用于实现远程管理和自动化任务。 首先,我们来了解一下SSH协议的核心组件。OpenSSH是广泛使用的SSH实现,它包含了ssh客户端和服务端程序,...
在进行SSH环境搭建前,我们需要先添加JUnit作为测试框架。在工程名上右击,选择`Build Path`,然后点击`Add Libraries...`,按照向导步骤引入JUnit库,以便在项目中进行单元测试。 **一、配置Struts2** 1. 添加...
SSH环境搭建步骤** - **安装JDK**:首先确保系统中已经安装了Java开发环境,并设置好环境变量。 - **下载框架**:分别下载Struts2、Spring和Hibernate的最新稳定版本。 - **创建项目**:在IDE(如Eclipse或IntelliJ...
以下是对SSH环境搭建项目的详细解析: 1. **Struts2**:Struts2是一个基于MVC设计模式的Web应用框架,它继承了Struts1的优点,并引入了更多功能和改进。在本项目中,Struts2主要负责控制层的工作,处理HTTP请求,...
在“ssh环境搭建”过程中,主要包括以下几个步骤: 1. **安装SSH服务器**:首先,你需要在目标服务器上安装SSH服务器软件,如OpenSSH。在Ubuntu或Debian系统中,可以使用`sudo apt-get install openssh-server`命令...
本压缩包提供了搭建SSH环境所需的核心jar包,让我们来详细探讨一下这些框架及其在构建Java Web应用中的作用。 1. Struts2:Struts2是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,主要负责控制层。...
### jBPM4.3与SSH环境搭建详解 #### 一、引言 jBPM (JBoss Business Process Management) 是一个开源的工作流管理系统,它提供了用于定义业务流程的工具和APIs。本文将详细介绍如何在开发环境中安装并配置jBPM4.3...
在IT领域,SSH环境的搭建与配置是系统管理员和开发者必备的技能之一,尤其在进行远程服务器管理时。本示例将详细介绍如何在Linux环境中设置SSH服务,并进行基本的配置。 首先,我们需要确保系统已经安装了OpenSSH...
在Eclipse开发环境中,我们可以利用这些注解来构建SSH2应用。首先,需要导入SSH2相关的库,然后创建项目,并在项目中添加相应的注解到类和方法上。例如,创建一个简单的"CreateDemo"应用,可以创建一个`@Controller`...
网络上好多Myeclipse8.5+flex4.5+Blazeds+SSH环境搭建及实例,个人实验过程中出现了不少问题,通过从网络上搜索各种资源,最后成功整合,以供大家学习。当然,还有部分内容没有修改完,但至少能够成功运行
如果Tomcat能正常启动且示例页面能正确显示,那么SSH环境搭建就成功了。 在实际开发过程中,你可能还需要配置其他相关组件,如数据库驱动,以及根据具体业务需求对Spring和Hibernate进行更详细的配置。SSH框架的...