实习也快一个月了,本以为做的是C++方面,机缘巧合,还是回到了JAVA,并且接触到了SSM,自我感觉还是挺好用的,但为了预防遗忘,还是打算写一篇完整的教程。废话不多说,接下来我们就开始吧。
一.首先说说环境的搭建:
1.JDK的安装:根据自己的系统选择64或者32位,安装后配置好环境变量,并且通过cmd命令测试一下是否成功。
2.myeclispe的安装:安装过程基本都是下一步,不熟悉的话可以百度,这里提供一个破解版的网盘地址
链接:http://pan.baidu.com/s/1nv5JlFV 密码:gkaa
3.myeclipse中配置JDK:windows--->preferences--->java--->installed JRES中直接add,找到自己jdk的安装路径,选择好OK就行。或者直接windows--->preferences,在上面的搜索框中直接搜索JDK,也可以立即找到。
4.tomcat7.0的安装:直接去apache官网下载就行
5.myeclipse中配置tomcat7.0:windows--->preferences,在上面的搜索框中直接搜索tomcat。找到下面出现的tomcat7.x,选择好自己的安装路径,并且将Disable改为enable,这样的话这个tomcat将会优先启动,比内置的tomcat效率高。
6.maven的安装:http://maven.apache.org/官网下载3.2.1版本,解压后就好。配置环境变量自行百度就好,怕敲起来少了点什么符号什么的就不好了,配置好后可以cmd命令mvn-version测试是否安装成功,出现版本信息则配置成功。
7.maven数据仓库的配置:首先找到maven安装包的路径,打开conf文件夹,打开settings.xml,找到localRepository去掉注释,并且修改成
8.myeclipse集成maven:windows--->preferences,搜索maven,installations中添加自己安装包路径,然后在user Settings中设置路径:user Settings(open file):C:\Users\11316\.m2\settings.xml(个人有不同,具体看你的.m2文件路径),Local Repository (from merged user and global settings):D:/Repository。到时候下载的jar包将会保存在这个地址中。新建工程的时候选择other能看到maven project 就说明配置成功了。
9.SVN的安装:下载一个SVN的客户端,然后在Myeclipse中安装相应的插件,以前的话是直接在market里面下载,感觉效率不高。直接百度下载SVN-site-1.8.22,解压后将features,plugins两个包复制到myeclipse安装路径下的dropins包中即可。
二.环境搭建好了,接下来就是使用maven创建web项目了:
File--->new--->Project--->Maven Project--->{Advanced--->Name template中选择[artifactId]}(这一步的作用就是防止生成的项目名中总是包含maven webapp字段,强迫症.)--->Next--->选择maven-archetype-webapp--->Next
接下来出现的界面中:GroupID 是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。 (建议:com.公司名.工程名)
ArtifactID是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。 (建议直接项目名)
填好后完成。
你以为项目建好了就OK了,但没想到报错了。
先设置UTF-8防止乱码:右键项目propreties,选择ReSource,编码格式改为UTF-8,应用完成。
接下来解决项目目录不全的问题:因为在构建maven项目的时候,其默认的JDK版本是1.5的,而我安装的是1.8的,所以就会出现很多目录出现红叉,并且没有出现在我们的工程目录中。解决方法很简单:右键项目--->java build path--->选中j2SE-1.5,点击edit,选择workspace default JRE,也就是我们安装的JDK版本,点击完成,点击OK。我们会发现项目目录全了,不再缺省。
还没完...我们的index.jsp还报错呢。只需要在pom文件中引入这样一段依赖就行
javax
javaee-api
7.0
当然,还有一种方法:
第一步:选中项目点击右键,选择“Build Path”,选择“configure build path”。
第二步:点击Libraries选项卡,点击Add Library按钮
第三步:选择Myeclispe Server Library,接着选择tomcat7.0
第四步:点击Finish,这时候也会看到项目没有报错信息了!
其中应该都是给项目加上了相关的JAR包,建议选择第一种,因为方便......
当然,这里还有一步需要我们完成,那就是选择版本问题,现在不做的话到时候弄pom.xml的时候容易出错。
右键项目--->Properties--->搜索project facets,将Dynamic Web Module版本改为3.0,java改为1.7,勾选上JSTL标签(如果你打算尝试一下JSP页面的话,这个还是挺棒的),确定。
三.SSM的整合
1.配置pom.xml,引入jar包,直接扔源码,复制就好。
4.0.2.RELEASE
3.2.6
1.7.7
1.2.17
junit
junit
4.11
test
org.springframework
spring-core
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-oxm
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-test
${spring.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
1.2.2
javax
javaee-api
7.0
mysql
mysql-connector-java
5.1.30
commons-dbcp
commons-dbcp
1.2.2
jstl
jstl
1.2
log4j
log4j
${log4j.version}
com.alibaba
fastjson
1.1.41
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
org.codehaus.jackson
jackson-mapper-asl
1.9.13
commons-fileupload
commons-fileupload
1.3.1
commons-io
commons-io
2.4
commons-codec
commons-codec
1.9
maven-compiler-plugin
2.3.2
1.7
maven-war-plugin
2.2
3.1
false
上面的源码均放置在pom.xml的project标签中。稍微解释一下,
对了,还有一点很重要的,那就是pom.xml配置好后,就开始下载jar包,但是由于一般这些访问的网址都是国外的,所以可能会特别慢。所以为了保持一个愉悦的心情,加快效率还是有必要的。因为maven是支持镜像的,所以我们可以在maven的conf文件夹下的setting.xml文件中找到
alimaven
central
aliyun maven
http://maven.aliyun.com/nexus/content/repositories/central/
2.pom.xml引入的jar包加载好了以后,在src/main/resources中新建jdbc.properties文件,配置如下:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/数据库名字(如果连接别人的数据库,只需要把localhost:3306换成别人的ip或者主机名应该就行,前提是别人允许你远程连接)
username=账号,一般都是root
password=密码
initialSize=0 #定义初始连接数
maxActive=20 #定义最大连接数
maxIdle=20 #定义最大空闲
minIdle=1 #定义最小空闲
maxWait=60000 #定义最长等待时间
算了,如何允许别人的连接自己数据库的方法也记录一下。假设B要连接A的数据库,首先B需要win+R,输入cmd,输入命令行ipconfig,找到其以太网适配器以太网的那个ip地址,复制发给A。A打开其navicat(用的是mysql数据库),接下来直接贴网址好了:http://blog.csdn.net/qq_32357509/article/details/53048053。
3.在src/main/resources中新建spring-mybatis.xml文件,配置如下:
4.在src/main/resources中新建log4j.properties文件,配置如下:
#定义LOG输出级别
log4j.rootLogger=INFO,Console,File
#定义日志输出目的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
#可以灵活地指定日志输出格式,下面一行是指定具体的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定输出目录
log4j.appender.File.File = logs/ssm.log
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB
# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
5.在src/main/resources中新建spring-mvc.xml文件,配置如下:
text/html;charset=UTF-8
Archetype Created Web Application
contextConfigLocation
classpath:spring-mybatis.xml
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
true
encoding
UTF-8
encodingFilter
/*
org.springframework.web.context.ContextLoaderListener
org.springframework.web.util.IntrospectorCleanupListener
SpringMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-mvc.xml
1
true
SpringMVC
/
/index.jsp
60
default
*.jpg
default
*.gif
default
*.css
default
*.js
default
*.html
default
*.ttf
default
*.woff
default
*.png
default
*.jpeg
四.接下来先来测试一下我们搭建的SSM框架是否有效
1.建数据库test,建数据表user,如图所示
2.建立项目结构如下图
3.User类
package com.company.project.entity;
public class User {
private String user_id;
private String user_name;
private String user_password;
private String user_info;
private String role;
public String getUser_id() {
return user_id;
}
public void setUser_id(String user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_password() {
return user_password;
}
public void setUser_password(String user_password) {
this.user_password = user_password;
}
public String getUser_info() {
return user_info;
}
public void setUser_info(String user_info) {
this.user_info = user_info;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public User() {
super();
}
public User(String user_id, String user_name, String user_password,
String user_info, String role) {
super();
this.user_id = user_id;
this.user_name = user_name;
this.user_password = user_password;
this.user_info = user_info;
this.role = role;
}
@Override
public String toString() {
return "User [user_id=" + user_id + ", user_name=" + user_name
+ ", user_password=" + user_password + ", user_info="
+ user_info + ", role=" + role + "]";
}
}
4.UserDao
package com.company.project.dao;
import org.apache.ibatis.annotations.Param;
import com.company.project.entity.User;
public interface UserDao {
//根据用户名,密码进行登录
public User login(@Param(value="user_name")String user_name,@Param(value="user_password")String user_password);
}
5.UserMapper
6.UserService
package com.company.project.service;
import com.company.project.entity.User;
public interface UserService {
//登陆
public User login(String user_name,String user_password);
}
7.UserServiceImp
package com.company.project.serviceImp;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.company.project.dao.UserDao;
import com.company.project.entity.User;
import com.company.project.service.UserService;
@Service("userService")
public class UserServiceImp implements UserService{
@Resource
private UserDao userDao;
@Override
public User login(String user_name, String user_password) {
return userDao.login(user_name, user_password);
}
}
8.UserController
package com.company.project.controller;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.company.project.service.UserService;
@Controller
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
//登录
@RequestMapping(value="/login",method = RequestMethod.POST)
@ResponseBody
public String login(String user_name, String user_password)
{
if(userService.login(user_name, user_password)!=null)
{
return "OK";
}
return "ERROR";
}
}
9.login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
My JSP 'login.jsp' starting page
*****使用$符必须先加载JQ文件,感觉自己应该好好学习一下相关知识了.
10.success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
My JSP 'success.jsp' starting page
SUCCESS page.
写好之后,直接运行程序,输入正确的用户名和密码登陆,如果正确跳转到成功页面,那么SSM框架也就意味着搭建好了。如果失败了,那就debug...
本来还想总结一下使用mybatis的一些知识点,感觉今天太晚了,明天再写,顺便加入SVN和shiro的安全控制...