手把手搭建一个完整的SSH项目(适合新手)

手把手搭建一个完整的SSH项目(适合新手)

为了方便大家,同时也为了加深自己的记忆,这里小落自己搭建一个ssh项目

我把项目搭建步骤都先写出来,使大家在编写代码上更明确 项目源码下载

1.新建一个项目 导入必须的jar包 2.创建db.properties文件并配置

db.properties

jdbc.user=root

jdbc.pwd=root

jdbc.driver=com.mysql.jdbc.Driver

jdbc.jdbcurl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8

jdbc.initPoolSize=5

jdbc.maxPoolSize=103.创建hibernate.cfg.xml并配置

hibernate.cfg.xml

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

org.hibernate.dialect.MySQLDialect

false

false

org.springframework.orm.hibernate4.SpringSessionContext

update

4.创建applicationContext.xml引入资源文件并配置c3p0数据源

applicationContext.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">

5.在applicationContext.xml中配置sessionfactory

com.jsx.pojo

6.在applicationContext.xml中配置spring声明事务

1.配置hibernate事务管理器

2.配置事务属性

3.配置事务切入点, 再把事务属性和事务切入点关联起来

7.配置applicationContext.xml开启自动扫描指定包上类的注解

(附完整的applicationContext.xml)

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">

com.jsx.pojo

8.在web.xml 中配置 spring 监听 和 struts核心过滤器

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_3_0.xsd">

contextConfigLocation

classpath:applicationContext*.xml

org.springframework.web.context.ContextLoaderListener

struts

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

struts

/*

index.jsp

9.创建包层结构

com.jsx.pojo

com.jsx.dao

com.jsx.service

com.jsx.action

10.在pojo层创建User实体 以及对应的User.hbm.xml映射文件

User.java

package com.jsx.pojo;

public class User {

private int id;

private String username;

private String password;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

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;

}

}

User.hbm.xml

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

11.在dao层创建UserDao接口 以及对应的接口实现类 UserDaoImpl 实现类添加关于sessionfactory set注入

UserDao.java

package com.jsx.dao;

import com.jsx.pojo.User;

public interface UserDao {

public boolean register(User user);

public User login(User user);

}

UserDaoImpl.java

package com.jsx.dao;

import org.hibernate.HibernateException;

import org.hibernate.SessionFactory;

import com.jsx.pojo.User;

public class UserDaoImpl implements UserDao{

private SessionFactory sessionFactory;

public SessionFactory getSessionFactory() {

return sessionFactory;

}

public void setSessionFactory(SessionFactory sessionFactory) {

this.sessionFactory = sessionFactory;

}

public boolean register(User user) {

try {

sessionFactory.getCurrentSession().save(user);

return true;

} catch (HibernateException e) {

return false;

}

}

public User login(User user) {

User u = null;

u = (User)sessionFactory.getCurrentSession().createQuery("from User where username=:username and password=:password")

.setString("username", user.getUsername())

.setString("password", user.getPassword()).uniqueResult();

return u;

}

}

12.在service层创建UserService接口以及对应的接口实现类UserServiceImpl 实现类添加关于UserDao的set注入

UserService.java

package com.jsx.service;

import com.jsx.pojo.User;

public interface UserService {

public boolean register(User user);

public User login(User user);

}

UserServiceImpl.java

package com.jsx.service;

import com.jsx.dao.UserDao;

import com.jsx.pojo.User;

public class UserServiceImpl implements UserService{

private UserDao userDao;

public UserDao getUserDao() {

return userDao;

}

public void setUserDao(UserDao userDao) {

this.userDao = userDao;

}

public boolean register(User user) {

return userDao.register(user);

}

public User login(User user) {

return userDao.login(user);

}

}

13.在action层创建UserAction

1.继承ActionSuport(需要用到里边的常量)

2.实现ModelDriven接口(new 一个User对象接收)

3.添加UserService的set注入

4.实现UserAction的对应方法

UserAction.java

package com.jsx.action;

import com.jsx.pojo.User;

import com.jsx.service.UserService;

import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionSupport;

import com.opensymphony.xwork2.ModelDriven;

public class UserAction extends ActionSupport implements ModelDriven{

private User user = new User();

public User getModel() {

return user;

}

private UserService userService;

public UserService getUserService() {

return userService;

}

public void setUserService(UserService userService) {

this.userService = userService;

}

public String register(){

boolean register = userService.register(user);

if(register){

return SUCCESS;

}else{

return ERROR;

}

}

public String login(){

User u = null;

u = userService.login(user);

if(u!=null){

ActionContext.getContext().getSession().put("LoginUser", u.getUsername());

return SUCCESS;

}else{

return ERROR;

}

}

}

14.在struts.xml中配置UserAction

struts.xml

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

struts-user.xml

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

/success.jsp

/error.jsp

15.创建applicationContext-beans.xml并配置bean

applicationContext-beans.xml

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-4.0.xsd">

16.编写jsp文件

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@ taglib prefix="s" uri="/struts-tags"%>

My JSP 'index.jsp' starting page

用户登录

用户注册

success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@ taglib prefix="s" uri="/struts-tags"%>

My JSP 'index.jsp' starting page

成功 ---${LoginUser}

error.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@ taglib prefix="s" uri="/struts-tags"%>

My JSP 'index.jsp' starting page

失败

项目结构

更多尼泊尔内容

设备台账有哪些?
365体育亚洲官方登录

设备台账有哪些?

🗓️ 09-07 👁️ 6914
历史上的今天5月9日
365体育推荐

历史上的今天5月9日

🗓️ 09-02 👁️ 114
什么软件刷赞 探讨现今主流刷赞软件的优缺点
365体育推荐

什么软件刷赞 探讨现今主流刷赞软件的优缺点

🗓️ 08-19 👁️ 5930
楚留香手游脸谱攻略大全_楚留香手游全脸谱性情达成条件
新盟XM-M322入手测评,怎么样?
365体育亚洲官方登录

新盟XM-M322入手测评,怎么样?

🗓️ 07-04 👁️ 5537
国产屏幕崛起:成本降低,体验却在飞跃!
365体育亚洲官方登录

国产屏幕崛起:成本降低,体验却在飞跃!

🗓️ 08-20 👁️ 9444
微博如何删除浏览记录 微博删除浏览记录方法【教程】
38365365.com打不开

微博如何删除浏览记录 微博删除浏览记录方法【教程】

🗓️ 07-18 👁️ 9429
医院特殊人群是指哪些人群
38365365.com打不开

医院特殊人群是指哪些人群

🗓️ 08-10 👁️ 7707
rifle 是什么意思?
365体育推荐

rifle 是什么意思?

🗓️ 07-22 👁️ 1263