java中SSM环境搭建
SSM环境搭建过程
mybatis,spring,SpringMVC三大框架整合(idea工具)
1、引入依赖
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jcl</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>aopalliance</groupId><artifactId>aopalliance</artifactId><version>1.0</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.2</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.6</version></dependency><dependency><groupId>asm</groupId><artifactId>asm</artifactId><version>3.3.1</version></dependency><dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version>2.2.2</version></dependency><dependency><groupId>org.javassist</groupId><artifactId>javassist</artifactId><version>3.17.1-GA</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.7</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.5</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.5</version><scope>test</scope></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.12</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.1.1</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.1</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.8</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.8</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.8</version></dependency><!--文件上传依赖--><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version></dependency></dependencies>
<!--绑定资源目录--></pluginManagement><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include><include>**/*.properties</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>**/*.xml</include><include>**/*.properties</include></includes></resource></resources></build>
</project>
数据库建立
数据库:
SET FOREIGN_KEY_CHECKS=0;
-- ------------------------------ Table structure for employee-- ----------------------------DROP TABLE IF EXISTS `employee`;CREATE TABLE `employee` (`empid` int(11) NOT NULL AUTO_INCREMENT,`empName` varchar(50) DEFAULT NULL,`partment` varchar(50) DEFAULT NULL,`picture` varchar(50) DEFAULT NULL,`state` varchar(50) DEFAULT NULL,PRIMARY KEY (`empid`)) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;-- ------------------------------ Records of employee-- ----------------------------INSERT INTO `employee` VALUES ('1', '张三', '1', 'logo.jpg', '离职');INSERT INTO `employee` VALUES ('2', '李四', '2', 'bieshu.png', '离职');INSERT INTO `employee` VALUES ('6', '王五', '2', 'zs.png', '在职');INSERT INTO `employee` VALUES ('10', 'cc', '1', 'cc.jpg', '在职');INSERT INTO `employee` VALUES ('11', '', '1', '308f94e3-8aa7-4c44-889a-e206e7f48550_c#.txt', '在职');
2、 配置文件目录
3、建立配置文件
3.1 建立jdbc.properties
jdbc.dr=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///test?autoReconnect=true&useUnicode=true&characterEncoding=utf8
jdbc.username=root(自己数据库账户)
jdbc.password=自己数据库密码
3.2 新建mybatis.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--为实体类指定别名 自己指定自己包名--><typeAliases><package name="com.xxx.entity"/></typeAliases><!--注册映射文件 自己指定自己的dao层映射文件--><mappers><package name="com.xxx.**.dao"/></mappers>
</configuration>
3.3 新建spring-ds.xml
<!--注入db.properties--><context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${jdbc.dr}"></property><property name="url" value="${jdbc.url}"></property><property name="username" value="${jdbc.username}"></property><property name="password" value="${jdbc.password}"></property></bean>
3.4新建spring-mvc.xml
<!--注册组件扫描器,扫描@Controller--><context:component-scan base-package="com.aynu.**.controller"/><!--MVC注解驱动--><mvc:annotation-driven/><!--配置登录拦截器--><mvc:interceptors><mvc:interceptor><mvc:mapping path="/**"/><bean class="com.hrm.filter.LoginInterceptor"/></mvc:interceptor></mvc:interceptors><!--文件解析器--><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="maxUploadSize" value="104857600" /><property name="maxInMemorySize" value="4096" /></bean>
3.5 spring-mybatis.xml,spring整合mybatis
<!--生成sqlSessionFactory--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="configLocation" value="classpath:mybatis.xml"/></bean><!--生成dao接口的动态代理--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.aynu.**.dao"/><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/></bean>
3.6 把service注入到spring,新建spring-service.xml
<!--注册组件扫描器,扫描@Service--><context:component-scan base-package="com.aynu.**.service"/>
3.7 注册事务管理器,新建spring-tx.xml
<!--注册平台事务管理器--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!--事务通知--><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="find*" isolation="DEFAULT" propagation="REQUIRED"/><tx:method name="add*" isolation="DEFAULT" propagation="REQUIRED"/><tx:method name="modify*" isolation="DEFAULT" propagation="REQUIRED"/><tx:method name="remove*" isolation="DEFAULT" propagation="REQUIRED"/></tx:attributes></tx:advice><!--AOP切面配置--><aop:config><aop:pointcut id="myPC" expression="execution(* *..service.*.*(..))"/><aop:advisor advice-ref="txAdvice" pointcut-ref="myPC"/></aop:config>
4、web.xml配置
<!--注册中央调度器--><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-*.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><!--编码过滤器--><filter><filter-name>encodinFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</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>encodinFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--登录验证过滤器--><!--<filter><filter-name>loginFilter</filter-name><filter-class>com.hrm.filter.LoginFilter</filter-class></filter><filter-mapping><filter-name>loginFilter</filter-name><url-pattern>*.jsp</url-pattern><url-pattern>*.do</url-pattern></filter-mapping>-->
5、过滤器(拦截器过滤器任选其一,我首选过滤器)
目的和作用:
防止用户越过登陆验证,直接输入地址进行操作。要想使用该网站,必须拦截登陆请求
/*
* 采用过滤器拦截越域用户
* 方法:通过获取session域中是否存在对象
* */
public class MyLoginFilter implements Filter {//此处应该放掉登陆界面和登陆的处理器private String[] need_uri = {"/index.jsp","/loginForm.jsp","/login.do"};@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {//index.jsp,loginForm.jsp,login.do放掉这三个HttpServletRequest request = (HttpServletRequest) servletRequest;HttpServletResponse response = (HttpServletResponse) servletResponse;//获取每次的请求路径String strURI = request.getRequestURI();//循环查看请求地址是否包含上三个boolean flag = false;for (String str : need_uri) {//如果包含,即已经登陆;防止空指针异常if (strURI.contains(str)) {//放行flag = true;filterChain.doFilter(request, response);break;}}if (!flag) {//不包含 拦截User login_user = (User) request.getSession().getAttribute("loginUser");if (login_user != null) {filterChain.doFilter(request, response);} else {request.setAttribute("login_error", "你还未登陆请登陆");//请求转发request.getRequestDispatcher("/index.jsp").forward(request, response);}}}
}
6.拦截器
public class LoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String requestURI = request.getRequestURI();if (requestURI.endsWith("/login.do")){return true;}User login_user = (User) request.getSession().getAttribute("login_user");if (login_user != null){return true;}else {request.setAttribute("login_error","您还未登录,请登录后访问!");request.getRequestDispatcher("/index.jsp").forward(request,response);return false;}}
}
7、用户登陆和注销操作
@RequestMapping("/login.do")public String login(User user, HttpSession session, Model model){//System.out.println(user);User login_user = userService.findUserByLoginnameAndPassword(user);//System.out.println(login_user);if (login_user != null){session.setAttribute("login_user",login_user);return "/jsp/main.jsp";}else {model.addAttribute("login_error","用户名或密码不正确,请重新输入!");return "/index.jsp";}}@RequestMapping("/logout.do")public String logout(HttpSession session,Model model){session.removeAttribute("login_user");model.addAttribute("login_error","退出成功,请重新登录!");return "/index.jsp";}
8、代码层建立
三层架构环境搭建: entity实体类:实体类:@Datapublic class Employee {private Integer empid;private String empName;private Integer partment;private String picture;private String state;}dao包:dao接口:public interface EmployeeDao {List<Employee> selectAllEmployees();}dao.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.xja.ssm.dao.EmployeeDao"><select id="selectAllEmployees" resultType="Employee">select * from employee</select></mapper>service层:servicepublic interface EmployeeService {List<Employee> findAllEmployees();}serviceImpl:@Servicepublic class EmployeeServiceImpl implements EmployeeService {@Resourceprivate EmployeeDao employeeDao;@Overridepublic List<Employee> findAllEmployees() {return employeeDao.selectAllEmployees();}}controller层:@Controllerpublic class EmployeeController {@Autowiredprivate EmployeeService employeeService;@RequestMapping("/findAllEmp.do")public String findAllEmp(Model model){List<Employee> employeeList = employeeService.findAllEmployees();model.addAttribute("emps",employeeList);for(Employee emp:employeeList) {System.out.println(emp);}return "index.jsp";}}index.jsp:<a href="/findAllEmp.do">查看所有的员工</a><br>${emps}
java中SSM环境搭建相关推荐
- ssm实训报告心得_Java开发学习心得(一):SSM环境搭建
Java开发学习心得(一):SSM环境搭建 有一点.NET的开发基础,在学校学过基础语法,对JAVA有点兴趣,就简单学习了一下,记录一下从哪些方面入手的,暂时不打算深入到原理方面,先简单搭下环境看看, ...
- SSM : 环境搭建
SSM 环境搭建 目录创建 pom.xml SSM 逐层配置 一.目录 1.1 src/main/java 目录下的包(以下包要放在项目包下,如:com.imooc.项目名) entity: 存放实体 ...
- Groovy 和 Java 联合开发环境搭建
Groovy 和 Java 联合开发环境搭建 1. 在主 pom 的 properties 中加上 <groovy.version>2.5.2</groovy.version> ...
- Java从入门到实战总结-1.1、Java基础之环境搭建和eclipse安装
Java从入门到实战总结-1.1.Java基础之环境搭建和eclipse安装 文章目录 Java从入门到实战总结-1.1.Java基础之环境搭建和eclipse安装 1.Hello Java 1.1. ...
- 0、Java项目开发环境搭建
Java项目开发环境搭建详解 工欲善其事,必先利其器. 一.环境搭建 1.JDK安装及环境变量配置 点击查看 2.Maven安装及环境变量配置 点击查看 Maven配置远程仓库地址: 打开ma ...
- 【Java全栈学习笔记:第一阶段:JavaSE】:Java入门及环境搭建
Java全栈课程网站: KuangStudy JavaSE课程地址: 狂神说Java 参考书籍:Java大学实用教程(第四版) 目录 Java入门及环境搭建 Java帝国的诞生 Java发展 Java ...
- mac pro java后端开发环境搭建
mac pro java后端开发环境搭建 前言 一.jdk 安装步骤 参考图片 二.maven 安装步骤 参考图片 三.git 安装步骤 参考图片 四.tomcat 安装步骤 参考图片 五.mysql ...
- Java入门与环境搭建
Java入门与环境搭建 软件 ...
- java+eclipse+selenium环境搭建
这几天在学selenium,大头虾的我.安装环境还是遇到了挺多问题,赶紧来记录下.不然下次又...(参考虫师的<Selenium2 Java自动化测试实战>),就随便写写加深下自己的印象. ...
最新文章
- Java基础之多线程详细分析
- 关于Class.forName()
- 华硕老毛子(Padavan)——校园网电信宽带闪讯(NetKeeper)L2TP学校认证解决方案
- 为什么要Zipkin
- 深度学习基础(四)优化函数(梯度下降函数)
- nginx file not found 错误处理小记
- 笔记本电脑处理器_高通提示低成本5G芯片更强大的笔记本电脑处理器
- HTTP Error 500.19 – Internal Server Error – 0x80070021 (IIS 8.5)
- IT 日语学习 2012 06
- react 设置背景图片 (等比例显示,不拉伸)
- 【任务分配】基于matlab蚁群算法无人机任务分配【含Matlab源码 1265期】
- 群星服务器id不显示,群星代码([群星]求助,领袖特性代号怎么查看啊 NGA玩家社区)...
- Qt5.14.2 VS2019创建Qt项目并使用QSS美化界面(附QSS资源下载)
- 【Linux】一步一步学Linux——hostid命令(246)
- 技术图文:如何利用C#寻找免费的IP代理服务器?
- android item弹出popupwindow recycleview_PopupWindow+RecyclerView实现上下滑动框功能
- [HttpServlet] Error occured when handling uri: /cat/s/router
- ios10 上下黑边问题
- 广播(BroadcastReceiver)---安卓中的四大天王之一
- win7或win2008系统中,出现【已停止工作,联机检查解决方案并关闭该程序,关闭程序】解决方法!
热门文章
- RSS Can:将网站信息流转换为 RSS 订阅源(三)
- httpPost.setHeader,httpPost.addHeader 区别
- gettimeofday() 和 clock_gettime()函数 分析小结
- Aprioriall算法
- windows服务与计划任务
- Unexpected exception parsing XML document from class path resource
- Redis主从连接失败 connected_slaves:0
- WRT之Crosswalk简介
- PAT A1129 重载小于号快速解答
- [SV]SystemVerilog学习笔记之struct union