javaweb项目完整案例
时间: 2023-10-13 19:05:17 浏览: 38
下面是一个简单的 JavaWeb 项目案例,包括用户登录、注册、注销、查看个人信息等功能:
1. 创建数据库表
首先创建一个 users 表,包含字段 id、username、password、email。
```sql
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
`email` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
2. 编写 JavaBean 类
创建一个 User 类,用于封装用户信息,并提供 getter 和 setter 方法。
```java
public class User {
private int id;
private String username;
private String password;
private String email;
// getter 和 setter 方法
}
```
3. 编写 DAO 层代码
创建一个 UserDao 接口,并提供增删改查等方法。
```java
public interface UserDao {
void addUser(User user);
void deleteUser(int id);
void updateUser(User user);
User getUserById(int id);
User getUserByUsername(String username);
List<User> getAllUsers();
}
```
实现 UserDao 接口,并使用 JDBC 连接数据库。
```java
public class UserDaoImpl implements UserDao {
// JDBC 连接相关代码
@Override
public void addUser(User user) {
// 插入用户信息到数据库
}
@Override
public void deleteUser(int id) {
// 根据 id 删除用户信息
}
@Override
public void updateUser(User user) {
// 更新用户信息
}
@Override
public User getUserById(int id) {
// 根据 id 查询用户信息
}
@Override
public User getUserByUsername(String username) {
// 根据用户名查询用户信息
}
@Override
public List<User> getAllUsers() {
// 查询所有用户信息
}
}
```
4. 编写 Service 层代码
创建一个 UserService 接口,并提供用户登录、注册、注销、获取个人信息等方法。
```java
public interface UserService {
boolean login(String username, String password);
boolean register(User user);
void logout();
User getUserInfo();
}
```
实现 UserService 接口,调用 UserDao 的方法操作数据库。
```java
public class UserServiceImpl implements UserService {
private UserDao userDao = new UserDaoImpl();
private User currentUser;
@Override
public boolean login(String username, String password) {
User user = userDao.getUserByUsername(username);
if (user != null && user.getPassword().equals(password)) {
currentUser = user;
return true;
}
return false;
}
@Override
public boolean register(User user) {
if (userDao.getUserByUsername(user.getUsername()) != null) {
return false;
}
userDao.addUser(user);
return true;
}
@Override
public void logout() {
currentUser = null;
}
@Override
public User getUserInfo() {
return currentUser;
}
}
```
5. 编写 Controller 层代码
创建一个 UserController 类,用于处理用户请求,并调用 UserService 的方法处理业务逻辑。
```java
@WebServlet("/user/*")
public class UserController extends HttpServlet {
private UserService userService = new UserServiceImpl();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uri = request.getRequestURI();
if (uri.endsWith("/login")) {
String username = request.getParameter("username");
String password = request.getParameter("password");
if (userService.login(username, password)) {
response.sendRedirect("/user/profile");
} else {
response.sendRedirect("/user/login.jsp?error=1");
}
} else if (uri.endsWith("/register")) {
// 处理注册请求
} else if (uri.endsWith("/logout")) {
userService.logout();
response.sendRedirect("/user/login.jsp");
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uri = request.getRequestURI();
if (uri.endsWith("/profile")) {
User user = userService.getUserInfo();
if (user != null) {
request.setAttribute("user", user);
request.getRequestDispatcher("/user/profile.jsp").forward(request, response);
} else {
response.sendRedirect("/user/login.jsp");
}
}
}
}
```
6. 编写 JSP 页面
创建 login.jsp、register.jsp、profile.jsp 等 JSP 页面,用于展示用户界面。
7. 部署和运行项目
将编写好的 JavaWeb 项目打包成 war 包,部署到 Tomcat 等 Web 容器中,启动容器,访问 http://localhost:8080/user/login.jsp 即可进入登录页面。
以上是一个简单的 JavaWeb 项目案例,实现了用户登录、注册、注销、查看个人信息等功能。