美文网首页
第十七讲 web入门案例

第十七讲 web入门案例

作者: w_yong | 来源:发表于2020-07-20 14:57 被阅读0次
项目介绍:商品浏览和商品管理。

1、用户登录功能,使用用户名和密码进行登录。
2、登录完成后可以管理商品:添加、删除、修改。
3、非登录用户可以浏览商品,查看详情。

代码参考地址:https://gitee.com/wychina/java-web1.git

idea创建普通java web项目(实际项目中有各种框架,不用这么麻烦)

参考https://www.jianshu.com/p/bb30f53f2eae

下载mysql jar包

https://dev.mysql.com/get/archives/mysql-connector-java-8.0/mysql-connector-java-8.0.11.zip
将下载的jar包放入工程的WEB-INF/lib目录下,并在文件上右键选择add as Library

源码src目录下创建包名:com.jd.mall

1、mall目录下再创建4个包:bean、dao、servlet、util
2、bean下创建User类

package com.jd.mall.bean;

import java.io.Serializable;

public class User implements Serializable {
    private int id;
    private String username;
    private String password;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

3、util下创建数据库连接工具类

package com.jd.mall.util;

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

/**
 * 数据库连接工具
 */
public class DBUtil {

    public static String db_url = "jdbc:mysql://114.67.242.84:3306/shop";
    public static String db_user = "jd";
    public static String db_pass = "wangyong@0805";

    public static Connection getConn () {
        Connection conn = null;

        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            conn = DriverManager.getConnection(db_url, db_user, db_pass);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return conn;
    }

    /**
     * 关闭连接
     * @param state
     * @param conn
     */
    public static void close (Statement state, Connection conn) {
        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static void close (ResultSet rs, Statement state, Connection conn) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

4、dao下创建UserDao,对数据库进行操作

package com.jd.mall.dao;

import com.jd.mall.bean.User;
import com.jd.mall.util.DBUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class UserDao {

    public User select(String username) {
        Connection connection = DBUtil.getConn();
        String sql = "select * from user where username = '"+ username + "'";
        User user =null;
        try {
            PreparedStatement pst = connection.prepareStatement(sql);
            ResultSet resultSet = pst.executeQuery();
            while (resultSet.next()) {
                user = new User();
                user.setId(resultSet.getInt("id"));
                user.setUsername(resultSet.getString("username"));
                user.setPassword(resultSet.getString("password"));
            }
            resultSet.close();
            pst.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return  user;
    }
}

5、servlet包下编写实际业务操作接口

package com.jd.mall.servlet;

import com.jd.mall.bean.User;
import com.jd.mall.dao.UserDao;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        service(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        service(request,response);
    }

    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        UserDao userDao = new UserDao();
        User user = userDao.select(username);
        if (user != null) {
            if (user.getPassword().equals(password)){
                //登录成功
                response.sendRedirect("list.jsp");
            } else {
                request.getRequestDispatcher("index.jsp").forward(request, response);
            }
        } else {
            request.getRequestDispatcher("index.jsp").forward(request, response);
        }
    }
}

6、配置login接口
web.xml中注册loginservlet接口

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>

    <!-- 声明servlet -->
    <servlet>
        <servlet-name>login</servlet-name>
        <servlet-class>com.jd.mall.servlet.LoginServlet</servlet-class>
    </servlet>
    <!-- 将servlet与url绑定 -->
    <servlet-mapping>
        <servlet-name>login</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>

</web-app>

7、登录页面编写,这里将index.jsp作为登录页面
点击登录按钮,调用login接口(用户名:wy,密码:123123)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>登录</title>
  </head>
  <body>
  <form action="login" method="post">
    <div>用户名:<input type="text" name="username"/></div>
    <div>密&nbsp&nbsp&nbsp码:<input type="password" name="password"/></div>
    <input type="submit" value="登录"/>
  </form>
  </body>
</html>

8、web目录下,新建list.jsp(登录成功后跳转到list.jsp)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>商品列表</title>
  </head>
  <body>
  商品列表
  </body>
</html>

相关文章

网友评论

      本文标题:第十七讲 web入门案例

      本文链接:https://www.haomeiwen.com/subject/xceekktx.html