项目介绍:商品浏览和商品管理。
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>密   码:<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>
网友评论