SSH环境搭建

来源:互联网 发布:动漫神作推荐知乎 编辑:程序博客网 时间:2024/05/19 14:15


  这篇博文主要目的: 搭建一个能运行的,最基本的ssh框架。

我会在最后提供一个项目的完整 war 包,这个才是干货!


  首先,需要准备的说明一下:

 jdk 我用的是1.7版本, 工具用的是eclipse的EE版本(eclipse-jee-luna-SR1-win32-x86_64),服务器tomcat7    去官网下吧。

数据库:mysql,下载地址:http://download.csdn.net/detail/iyinyue1/8069009,安装教程自己搜哦。

  

  以下三点是关于搭建ssh的核心内容。

  

1.创建工程,应用中添加struts2框架,主要是在web.xml文件中加入如下配置:


  <filter>  
    <filter-name>struts2</filter-name>  
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
</filter>  
<filter-mapping>  
    <filter-name>struts2</filter-name>  
    <url-pattern>/*</url-pattern>  
</filter-mapping>  

  之后,在src目录中加入struts.xml文件。

2.添加spring框架,我用的方式是同样在web.xml中添加如下配置:


  <context-param>  
    <param-name>contextConfigLocation</param-name>  
    <param-value>/WEB-INF/application.xml</param-value>  
</context-param> 
  
   <listener>  
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
</listener>  

监听器添加完毕,注意application的位置,我是放在了wen-inf文件下。


3.用spring管理hibernate,在application.xml配置中添加:

  <bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/mh</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>root</value>
</property>
</bean>
以上是配置数据库连接需要的信息。

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource">
</property>
<property name="mappingResources">
<list>
<value>com/mh/ssh/model/User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
用spring来管理hibernate的sessionFactory。

<bean id="userDao" class="com.mh.ssh.dao.impl.UserDaoHibernateImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

  这个类主要用来和数据层打交道,添加,修改,删除,查询数据库都是在这里完成。


  接下来,是以一个登录页面和注册页面作为演示的例子,来说明从前台一直到后台数据库的过程,整个过程很简单,就是

用户输入用户名密码,到数据库中查找,找到则成功,否则重新输入。


 1.login.jsp页面代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<html>
<head>
<title>登录页面</title>
</head>

<body>
<form action="login.action" method="post">
<table cellpadding="0" cellspacing="0" norder="0" align="center">
<caption>用户登录</caption>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>密&nbsp;&nbsp;码:</td>
<td><input type="text" name="password"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="登录"></td>
</tr>
</table>
<input type="button" value="注册" onclick="window.location.href='reg.jsp';"/>
</form>
</body>
</html>

用户可以登录,也可以点击注册按钮跳转到注册页面,注册页面收集用户名和密码,传给struts来处理。


2.struts.xml文件中需要配置哪个action处理这个请求(<form action="login.action" method="post">):

  <action name="login" class="loginAction">
<result name="input" type="redirect">/login.jsp</result>
<result name="success" type="redirect">/success.jsp</result>
</action>


如果成功则跳转到成功页面,如果失败则还回到登陆页面。


LoginAction代码:


public class LoginAction extends ActionSupport {

private String username;

private String password;



private LoginService loginService;

public LoginAction() {
// loginService = new LoginServiceImpl();
}


public String execute() throws Exception {
System.out.println("进入execute方法");
System.out.println((loginService==null)+"");
if (loginService != null && loginService.validate(username, password)) {
ActionContext.getContext().getSession().put("uname", this.getUsername());
return SUCCESS;
}
return INPUT;
}


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 LoginService getLoginService() {
return loginService;
}


public void setLoginService(LoginService loginService) {
this.loginService = loginService;
}
}

这里调用的服务类的验证方法,而服务类用会调用dao层的代码,返回结果。

  

UserDaoHibernateImpl 继承HibernateDaoSupport支持类,实现DAO接口,完成对数据库的访问。

public class UserDaoHibernateImpl extends HibernateDaoSupport implements
UserDao {


@Override
public boolean validate(String username, String password) {
List<User> users = getHibernateTemplate()
.find("from User where username=? and password=?", username,
password);
return users != null && !users.isEmpty();
}


@Override
public void saveUser(User user) {
getHibernateTemplate().save(user);
}


}

  基本的东西就是这些了,如果需要更加详细了解的可以查看项目源代码:

完整的项目war包下载地址:http://www.400gb.com/file/76656052


0 0
原创粉丝点击