Javaweb后端初次接触学习总结(一)——用户注册案例

学习之路

  • 前言
  • 学习过程
    • 工具使用
    • 主要代码
      • JavaBean+UserDao+Controller编写方式
      • 数据层(JavaBean)
      • 数据库操作(UserDao)
      • Servlet容器代码(Controller)
        • 什么是servlet
        • 写一个servlet的步骤
  • 后话

前言

最近完成了一个最基本的Javaweb用户注册案例的编写(从网络上看了很多教学视频,也参考了很多他人的代码),在学习中也有一些收获,于是将自己的学习收获在这里作一个总结。作为一个初次接触Javaweb也从来没有写过博客的学习者,写的这篇博客一定存在着许多漏洞,请您谅解。

学习过程

工具使用

写代码需要一个强力的工具,本次使用了IntelliJ IDEA。这个编译器可真是磨人的小妖精,只是学习怎么使用这个工具就用了一段时间。
在新建一个Javaweb项目的工程中有两个比较重要的步骤:
1、导入本次项目所需的jar包
在工程中新建一个叫libs的文件夹,把从网络上找到本次项目需要的jar包粘贴到文件夹中。而后在File->Project Structure->Modules中,Javaweb后端初次接触学习总结(一)——用户注册案例_第1张图片
选择"+",把刚刚导入的jar全部打勾,然后点下方的Apply和OK就行了。
2、Tomcat的在项目中的配置
在工程右上的小框框点一下,弹出框选Edit Configurations,选择"+",找到Tomcat Server,按照步骤把Tomcat配置到项目中。

主要代码

JavaBean+UserDao+Controller编写方式

工作流程如下图:

描述
描述
描述
控制
控制
控制
调用
User1
User1的数据库
User2
User2的数据库
...
...的数据库
UserDao
Controller

个人认为在学习Javaweb后端之初,就应该养成一个优秀的模块划分意识,不要把数据层,数据库控制层,控制层混乱地写在一起。或许在前期学习的过程中把这三部分割裂显得多余,但代码量增大后我们就可以看出这种编写方式在后期维护上的好处。

数据层(JavaBean)

根据我们的业务要求,建立一个或多个User类(这需要与数据表中的数据对应,建议分析好需求后新建此类,不然后期修改很麻烦),这个类就相当于是一个个搬运工,它搬运着或是从前台获取到的数据而存入到后端的数据库中,或是从后端数据库获取到的数据而显示到前端页面。

数据库操作(UserDao)

这次只学习了怎样向数据库内添加数据,于是我们要先在xampp的Mysql中新建一个数据库和数据表(数据表根据自己的需求建,各个版本的数据库管理软件操作不同,不再赘述)。
然后在src文件夹下新建一个User类储存我们需要的数据(需要与数据表中建立的数据一一对应),然后学习写数据库连接所需要的代码。
由于数据库连接代码很繁琐,而且数据库连接的资源很宝贵,在使用之后要及时把它释放掉(而一旦代码量变大,我们就会容易忽略掉释放数据库连接资源,造成资源的浪费),所以我们可以考虑把数据库连接封装成一个工具类。参考其他文章我总结了一个JDBCUtils工具类。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class JDBCUtils {
    private static String driver;//驱动
    private static String url;//访问数据库的url
    private static String username;//用户名
    private static String password;//密码

    static {
        driver="com.mysql.jdbc.Driver";//需要的数据库驱动
        url="jdbc:mysql://localhost:3306/test";//数据库名路径
        username="root";
        password="";
    }
    public static Connection open()
    {
        try {
            Class.forName(driver);
            return  DriverManager.getConnection(url,username, password);
        } catch (Exception e) {
            System.out.println("数据库连接失败!");
            // TODO Auto-generated catch block
            e.printStackTrace();
        }//加载驱动

        return null;
    }

    /*
     * 关闭数据库
     */
    public static void close(Connection conn)
    {
        if(conn!=null)
        {
            try {
                conn.close();//每一个数据库对象资源很宝贵,要及时关闭
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

}

只需在UserDao中引用这个类即可。
然后编写UserDao类管理数据表,UserDao类中使用的插入数据库数据的操作语言是insert into test(name,sex,college,stuID,QQ,PhoneNum,password,meto) values(?,?,?,?,?,?,?,?)

Servlet容器代码(Controller)

什么是servlet

百度百科是这么说的:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
通俗来讲,servlet就是运行在服务器上的一个小程序,用来处理服务器请求的。

写一个servlet的步骤

1、编写一个java类,继承HttpServlet类

在本次用户注册案例中我们新建一个类叫做RegisterServlet,它继承了HttpServlet这个类,我们可以在自建的这个类中复写doGet和doPost方法。
当然在HttpServlet这个类中也有其他方法,我们重点在doGet和doPost方法,其他的方法感兴趣的可以了解一下,HttpServlet的具体方法如下:Javaweb后端初次接触学习总结(一)——用户注册案例_第2张图片
2、重写HttpServlet类的doGet方法和doPost方法
doGet和doPost存在一些区别,具体区别可以参考doget和dopost的区别
我们可以选择把方法写在doGet()方法中,在doPost()方法中调用执行,这样,无论你提交的是post还是get方法都可以执行。实例代码如下:

public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String xxx = request.getParameter("xxx"); //
        /*
		此为获得前端数据的标准形式,括号内的文字要和前端提供给后端接口的名字
		*/
        User user = new User();
        user.setxxx(xxx);
       /*在这里new一个User对象,把从前端获得数据暂时存到User对象中
      */ 
        UserService us = new UserServiceImpl();
        try {
            boolean flag = us.registerUser(user);
            if(flag){

                response.setCharacterEncoding("utf-8");
                response.getWriter().write("注册成功");
             }
            else {

                response.setCharacterEncoding("utf-8");
                response.getWriter().write("注册失败");
            }
        } catch (Exception e) {
            e.printStackTrace();

3、配置web.xml文件,或者使用注解对servlet进行配置
Javaweb后端初次接触学习总结(一)——用户注册案例_第3张图片

后话

本次完成了一个简单的用户注册案例的后端代码部分,初学者可以使用一个比较简单的jsp网页验证一下。同时我们形成了一个良好架构意识,在这次代码的基础上,我们可以在JavaBean中新建更多不同的类存储不同种的对象的数据,在UserDao 中增加更多的方法实现类似用户登录,用户删除,新建不同类型账户存储表等操作,在Controller中实现向前端输出用户所要的数据等······总而言之,在已编写的代码的基础上,我们可以自己增添新的功能,而且代码大多是大同小异的。

你可能感兴趣的:(初学者)