普通项目——>maven项目——>SSM(一)
首先应该明白,SSM是什么?
SSM指的是Spring+SpringMVC+MyBatis
Spring
Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。
Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。
SpringMVC
SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。
mybatis
mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。
现在网上很多创建SSM项目的博客
但是很可惜,由于项目是整合三大框架,许多小白可能不懂为什么要这么做,配置文件为什么要这么写
甚至许多人,只是听说三大框架好,却不知道好在哪儿。。。
本文就是这样的背景下产生的,我将带你一步一步揭开三大框架的神秘面纱,以后可能会再写一篇使用SSM开发实战项目的博客
我们要创建一个java web项目
看一下目录结构
我们在src下创建一个package包,再创建一个servlet,创建完后,结构如下
但是你能很快发现,红色的下划线出现的,这是因为我们没有导入Tomcat的包
点击 FIle->Project Structure
这样,你的报错信息就会消失啦!
我们运行看一下
可以看到,运行成功啦
我们接下来修改一下index.jsp文件,写一个登录功能
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<form action="login" method="post">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" name="submit">
</form>
</body>
</html>
再修改myServlet.java里面的代码
package pack1; import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/login")
public class myServlet extends javax.servlet.http.HttpServlet {
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("passworrd");
if(username.equals("admin") && password.equals("admin"))
response.getWriter().append("Login Successfully!");
} protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
doPost(request, response);
}
}
运行一下
登录成功了
但是你能很明显看到,对于本项目而言,没有连接数据库,账号密码全部保存在代码里面
所以,接下来我们要使用java连接数据库
首先下载连接mysql的驱动包:http://static.runoob.com/download/mysql-connector-java-5.1.39-bin.jar
在网上看到有的人说需要在Project Structure中把驱动添加进依赖里
可是相信我,真的没有用!因为会报错:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
找不到驱动,而且这个报错很扯淡的地方是:Tomcat找不到驱动!
在普通java项目中,连接数据库,只需要导入jdbc的包即可,但是在java web项目中,这样会失败!
必须在tomcat目录下的lib文件夹中,把jdbc的包放入才可以!
感谢前辈https://blog.csdn.net/huangbiao86/article/details/6428608
下载完毕后,把它导入放入tomcat目录中
把myServlet.java里面的代码修改如下
package pack1; import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import java.sql.*; @WebServlet("/login")
public class myServlet extends javax.servlet.http.HttpServlet {
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//获取链接
String url = "jdbc:mysql://localhost:3306/test";
Connection conn = DriverManager.getConnection(url, "root", "root");
//创建对象
Statement st = conn.createStatement();
String sql = "select * from user";
ResultSet rs = st.executeQuery(sql);
while (rs.next()){
if(username.equals(rs.getString("username")) && password.equals(rs.getString("password"))){
response.getWriter().append("Login successfully!");
}
else{
System.out.println("Error password!");
}
} } catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
} protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
doPost(request, response);
}
}
这样即可实现仅数据库中存在的用户才可以登录!
那么问题来了,你认为缺点是什么呢?
在进行数据库连接时,需要下载驱动包,然后驱动包的加载还存在坑,必须放入tomcat的lib目录下,才能找到
所以基于改进的目的,我们引入了maven这个东西
它可以非常好地管理各种依赖,请看下一篇:普通项目——>maven项目——>SSM(二)
----------------------------------------------------------------------------
大家好,我是ABKing
金麟岂是池中物,一遇风云便化龙!
欢迎与我交流技术问题
普通项目——>maven项目——>SSM(一)的更多相关文章
- ssm项目 maven 项目pon.xml 配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- IDEA中web项目maven项目手动打war包的方式
手动打包 https://blog.csdn.net/ibigboy/article/details/90287963 tomcat部署web项目方法 https://www.cnblogs.com/ ...
- Github/Eclipse管理Maven项目
Eclipse和Git插件 (To-do: 直接从workspace导入也可以,弄明白这个repo管理的本质,查看sprigmvc是如何导入的) 最新版本的Eclipse都直接集成了Git插件 Ecl ...
- 如何将 Java 项目转换成 Maven 项目
本文内容 Java 项目 Maven 项目 Java 项目转换成 Maven 项目 本文主要介绍如何将 Java 项目转换成 Maven 项目.首先要明确的是,用 Maven 管理 Java 项目的确 ...
- java的maven项目(一)
Maven项目管理工具 Svn + eclipse 约等于 maven量级 1 Maven的简介 1.1 什么是maven 是apache下的一个开源项目,是纯java开发,并 ...
- 转:如何将 Java 项目转换成 Maven 项目
如何将 Java 项目转换成 Maven 项目 本文内容 Java 项目 Maven 项目 Java 项目转换成 Maven 项目 本文主要介绍如何将 Java 项目转换成 Maven 项目.首先要明 ...
- 基于SSM框架的简易的分页功能——包含maven项目的搭建
新人第一次发帖,有什么不对的地方请多多指教~~ 分页这个功能经常会被使用到,我之前学习的时候找了很多资源,可都看不懂(笨死算了),最后还是在朋友帮助下做出了这个分页.我现在把我所能想到的知识 做了一个 ...
- Maven构建SSM架构,并分离层次,使用Maven 组织多项目
参考http://www.cnblogs.com/quanyongan/archive/2013/05/28/3103243.html一步一步搭建,感谢QuantSeven 1.建好的目录结构 说明: ...
- Maven项目搭建(二):Maven搭建SSM框架
上一章给大家讲解了如何使用Maven搭建web项目. 这次给大家介绍一下怎么使用Maven搭建SSM框架项目. 首先我们来看一下pom.xml的属性介绍: project: pom的xml根元素. p ...
随机推荐
- Redhat 关闭防火墙和selinux
查看防火墙状态.systemctl status firewalld 临时关闭防火墙命令.重启电脑后,防火墙自动起来.systemctl stop firewalld 永久关闭防火墙命令.重启后,防火 ...
- springboot使用外部application.properties配置文件
一.背景介绍 springboot默认的application.properties文件只能在项目内部,如果打成docker镜像后配置文件也打进去了,这样每次需要改动配置(比如数据库的连接信息)就需要 ...
- C#.Net集成Bartender条码打印,VS调试运行可以打印,发布到IIS运行打印报错
C#.Net集成Bartender条码打印,VS调试运行可以打印,发布到IIS运行打印报错 问题原因: 问题出现在iis账户权限. 解决方法: iis默认是用network service这个账户去执 ...
- [转]CSS自动换行后缩进
原文 https://blog.csdn.net/u011974797/article/details/71439794 例如: ●这是第一行太长了超出 显示到第二行 想实现的效果: ●这是第一行太长 ...
- 模板引擎ejs
1.网站 https://ejs.co/ https://ejs.bootcss.com/ 2.app.js var http=require("http"); var ejs = ...
- BZOJ 2157: 旅游 (结构体存变量)
用结构体存变量好像确实能提高运行速度,以后就这么写数据结构了 Code: #include <cstdio> #include <algorithm> #include < ...
- Python稀疏矩阵运算
import numpy as np import scipy import time import scipy.sparse as sparse t = [1]+[0]*4999 a = scipy ...
- Elastic-Job介绍
1 什么是分布式任务调度 什么是分布式?当前软件的架构正在逐步转变为分布式架构,将单体结构分为若干服务,服务之间通过网络交互来完成用户的业务处理,如下图,电商系统为分布式架构,由订单服务.商品服务.用 ...
- Mongodb副本集集群搭建
一.环境准备 1.1.主机信息(机器配置要求见硬件及开发标准规范文档V1.0) 序号 主机名 IP 1 DB_01 10.202.105.52 2 DB_02 10.202.105.53 3 DB_0 ...
- postman抓包
三个问题: 如何安装? 基本了解? 如何使用? 一.安装方法: 包括离线端安装和chrome插件安装,我用chrome插件安装成功 postman安装及使用 打开Chrome,依次选择“选项”> ...