从0开始创建第一个Spring MVC项目

开始第一个自己的Spring MVC项目


项目架构:Spring MVC+Mysql

一、提前操作

Spring是一个独立的框架,它不需要依赖任何web服务器或者容器。它既可以独立再java SE项目中,也可以再java Web中使用。

1. 下载和安装Spring框架

1-1 第一步

登录https://repo.spring.io/libs-release-local/站点,沿着org->springframework->spring路径进入,就可以看到Spring各个版本的压缩包。

这是直接进入的地址:https://repo.spring.io/libs-release-local/org/springframework/spring/

在这里插入图片描述

带有RELEASE是稳定版本。

1-2 第二步

下载最新稳定版,然后进行解压,我们可以看到一个名为spring-5.2.9.RELEASE-dist的包,进入spring-framework-5.2.9.RELEASE。进入之后看到如下文件夹:

在这里插入图片描述

而你需要文件在libs文件内,你需要重新创建一个lib文件,因为libs文件内部是有3个重复的。如果一起放进去,启动tomcate时会报错。

在这里插入图片描述

接下来就是将重复的文件删除即可。如下是lib文件:

在这里插入图片描述

1-3 第三步

Spring的核心容器需要依赖common-login的jar包,因此我们还是需要登录:http://commons.apache.org/,然后沿着Release->Logging的路径进入下载最新的common-login依赖包。

可以直接进入:http://commons.apache.org/proper/commons-logging/download_logging.cgi,下载commons-login-1.2-bin.zip压缩文件,然后解压之后就可以得到如下文件:

在这里插入图片描述

2. 数据库的创建

我们需要使用mysql来创建一个数据库(名为data),然后创建一个user表,包含username和passowrd即可。

2-1 创建数据库
create database data charset=utf8;
2-2 创建数据表
create table user(username varchar(60),password varchar(60));
2-3 添加数据
insert into user values("summer", "summer");

二、项目创建

1.创建

使用Eclipse新建一个Dynamic Web Poject,也就是新建一个Web动态项目,名字随你。(这里是LoginTest)

在这里插入图片描述

然后一直点击next,到最后,勾选web.xml,然后点击Finish结束。

在这里插入图片描述

当你全部创建好之后,你就可以看到左侧的导航资源树了。

在这里插入图片描述

2. 导入Spring包

我们只需要将spring包复制到WebConnent/WEB-INF/lib即可

在这里插入图片描述

接下来就是comment包的导入。同样的复制进去就行。

在这里插入图片描述

当然,后续要用到mysql8.0,你这个时候也可以提前导入进入。

3. 配置前端控制器

你需要单机WebContent/WEB-INF/web.xml,然后进入该文件之后,填写以下配置信息。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
	<!--  定义Spring MVC的前端控制器  -->
	<servlet>
        <!--  定义servlet的名称  -->
    	<servlet-name>LoginServlet</servlet-name>
        <!--  Servlet对应的java类  -->
    	<servlet-class>com.myservlet.LoginServlet</servlet-class>
	</servlet>
    <!--  servlet的映射声明  -->
	<servlet-mapping>
        <!--  请求对应的servlet名称  -->
	    <servlet-name>LoginServlet</servlet-name>
        <!--  监听当前域的所有请求  -->
	    <url-pattern>/loginServlet</url-pattern>
	</servlet-mapping>
</web-app>

4. 创建login.jsp页面

你需要在WebContent下创建一个login.jsp文件,创建一个表单来设计登录功能。

<%@ page language="java" contentType="text/html; charset=GB2312"
    pageEncoding="GB2312"%>
<!DOCTYPE html>
<html>
<head>
<title>登录页</title>
<style>
div{
	position:relative;
	width:300px;
	hight:400px;
	margin:200px auto 0px auto;
}
.submit{
	width: 50px;
    position: absolute;
    left: 50px;
    top: 130px;
    background: skyblue;
    border: 1px;
    height: 30px;
    border-radius: 10%;
}
.reset{
    width: 50px;
	position:absolute;
	left:160px;
	top:130px;
    background: skyblue;
    border: 1px;
    height: 30px;
    border-radius: 10%;
}
</style>
</head>
<body>
	<div>
		<h2>欢迎登录Dreamspy系统</h2>
		<p>
		<form action="loginServlet" method="post" name="form1">
	   		&nbsp;&nbsp;用户名: <input type="text" name="username"><br>
	   		<p>
	   		&nbsp;&nbsp;&ensp;&ensp;码: <input type="password" name="password"><br>
	   		<p>
	 		&nbsp;&nbsp;<input type="submit" value="提交" name="submit" class="submit">
	 		&nbsp;&nbsp;<input type="reset" value="重置" name="reset" class="reset">
		</form> 
	</div>
</body>
</html>

效果界面如图:

在这里插入图片描述

5. 创建登陆成功页面

在WebContent下创建一个success.jsp文件,用来写登陆成功页面。

<%@ page language="java" contentType="text/html; charset=GB2312"
    pageEncoding="GB2312"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="GB2312">
<title>登录成功</title>
</head>
<body>
<%
	// 获取session中的name值,放入页面
	String username=(String)session.getAttribute("name");
	if(username!=null){
%>
	欢迎登录:<%=username%>
<%}%>
</body>
</html>

6. 编写user.java文件

要知道,你如果想登录,那就必须输入用户名和密码,那保存这个就必须要使用一个类来存放。

在src中创建一个com.mymodel的包,然后在包里面创建user.java文件

package com.mymodel;

/*
 * 创建用户类
 */
public class User {
	// 设置私有变量:userName和passsWord
	private String userName;
	private String passWord;
	
	// 构造函数
	public User() {}
	
	// 下面十获取和修改变量的默认函数
	public String getPassWord() {
		return passWord;
	}

	public void setPassWord(String passWord) {
		this.passWord = passWord;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}
}

7. 编写DbConn.java文件

如果user.java是定义了用户,那么我们就需要一个类来操作这个用户,而操作用户类就必须要链接数据库,你可以新建一个com.dbc的包,然后再包下创建一个名为BdConn.java文件

package com.dbc;

import java.sql.*; 

/*
 * 创建连接类
 */
public class DbConn {
	// 获取驱动
	private final String driver = "com.mysql.cj.jdbc.Driver";
	// 设置路由
	private final String url= "jdbc:mysql://localhost:3306/data?serverTimezone=UTC&useSSL=false"; 
	// 设置用户名和密码
	private final String user="root";  

	private final String password ="summer";  
	
	// 创建一个Connection类
	private Connection conn = null ;  
	
	// 创建DbConn函数,用来连接本地数据库
	public DbConn(){  
		try{
			// 注册驱动
			Class.forName(driver) ;  
			conn = DriverManager.getConnection(url,user,password) ;    
		}  
		catch (Exception e){  
			System.out.println("连接数据库异常");  
		}  
	}  
	
	// 创建返回coonection类的函数
	public Connection getConnection() {
		return this.conn;
	} 
	
	// 创建关闭函数
	public void close(){  
		try{  
			conn.close() ;  
		}catch (Exception e){  
			System.out.println("关闭异常");  
		}         
	}  
}

8. 编写userOper.java文件

现在数据库可以链接了,那就可以来创建用户操作类了。

com.mymodel包下创建一个userPoer.java的文件

package com.mymodel;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.dbc.DbConn;

/*
 * 用户数据操作类
 */
public class UserOper {
	// 定义用来检查用户输入的用户名和密码是否正确的类
	public static boolean check(User user){
		
		boolean flag=false;  
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		String sql=null;
		DbConn dbc=new DbConn();                           
		sql="select * from user where username=? and password=?";
		
		try{
		 pstmt=dbc.getConnection().prepareStatement(sql);  // 执行sql操作
		 pstmt.setString(1,user.getUserName());  // 传入用户名和密码
		 pstmt.setString(2,user.getPassWord());
		 rs=pstmt.executeQuery();  // 获取结果集
		 if(rs.next()){  // 如果存在结果集
			 flag=true;
			 user.setUserName(rs.getString(1));//获取用户名的值
		  }
		  rs.close();
		  pstmt.close();
		  } 
		  catch(Exception e){
			  System.out.println("查询异常");
		  }
		  finally{
			  dbc.close();
		  }
		  return flag;
	}
}

9. 编写loginServlet.java文件

当上面全部创建好之后,我们就可以来编写最后一个文件,登录后台。

创建一个com.myservlet包,然后在包内创建一个loginServlet.java文件

package com.myservlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import com.mymodel.*;

public class LoginServlet extends HttpServlet {
	public void doGet(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {
		this.doPost(req, res);
	}
	public void doPost(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {
		// 设置响应的编码格式
		req.setCharacterEncoding("GB2312");
		res.setContentType("text/html;charset=gb2312");
		// 获取用户的输入信息
		String name = req.getParameter("username");
		String pass = req.getParameter("password");
		// 调用JavaBean
		User user = new User();
		user.setUserName(name);
		user.setPassWord(pass);
		HttpSession session = req.getSession();
		// 选择一个界面对用户进行响应
		if(UserOper.check(user)) {
			session.setAttribute("name", name);//将登录的用户名放入Session中
			RequestDispatcher rd = req.getRequestDispatcher("success.jsp");
			rd.forward(req, res);
		} else {
			res.sendRedirect("login.jsp");  // 如果不正确,则重定向到登录界面
		}
	}
}

10.下面是整个项目的文件树

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值