1.需要你建立的我在下图已经全部展开,格外注意一下需要三个jar包,我会发给大家
链接:https://pan.baidu.com/s/1877WF7AcQD8lK1lzByK7Bg
提取码:c7s1
复制这段内容后打开百度网盘手机App,操作更方便哦
对了,图中朱丽是我最近看的《都挺好》中的一个女演员,甚是喜欢啊
1.先进行 jsp/login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
登录
<%
String name="";
//从cookie中获取名字name
Cookie[] cookies = request.getCookies();
System.out.println(cookies);
if(cookies!=null) {
for (Cookie cookie : cookies) {
if ("name".equals(cookie.getName())) {
name = cookie.getValue();
System.out.println("name="+name);
}
}
}
%>
${requestScope.info}
2. 提交表单到Servlet配置文件中 WEB-INF/web.xml
1
userServlet
servlet.UserServlet
userServlet
/userServlet
3.通过映射找到Servlet的路径,进而到Servlet文件
package servlet;
import DAO.UserDao;
import pojo.User;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;
public class UserServlet extends HttpServlet {
UserDao userDao=new UserDao();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//解决post方式下乱码问题
request.setCharacterEncoding("utf-8");
//派发 操作类型type
String type = request.getParameter("type");
if ("login".equals(type)) {
login(request,response);
}else if("add".equals(type)){
add(request,response);
}else if("queryall".equals(type)){
queryAll(request,response);
}else if("delete".equals(type)){
delete(request,response);
}else if("querybyid".equals(type)){
queryById(request,response);
}else if("edit".equals(type)){
edit(request,response);
}
}
private void edit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
//从表单接收各个参数
int id=Integer.parseInt(request.getParameter("id"));
String username = request.getParameter("username");
String password = request.getParameter("password");
String gender = request.getParameter("gender");
int age = Integer.parseInt(request.getParameter("age"));
//封装成user
User user = new User(id,username,gender,age,password);
//调用dao中的添加方法
// UserDao userDao=new UserDao();
int i=userDao.update(user);
//跳转到user_list.jsp,展示所有用户
if(i>0){
request.setAttribute("info","修改成功!");
queryAll(request,response);
}else{
request.setAttribute("info","修改失败!");
queryAll(request,response);
}
}
private void queryById(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
User user=userDao.queryById(id);
request.setAttribute("user",user);
request.getRequestDispatcher("jsp/edit_user.jsp").forward(request,response);
}
private void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
int i=userDao.delete(id);
//跳转到user_list.jsp,展示所有用户
if(i>0){
request.setAttribute("info","删除成功!");
queryAll(request,response);
}else{
request.setAttribute("info","删除失败!");
queryAll(request,response);
}
}
private void queryAll(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
// UserDao userDao=new UserDao();
List list = userDao.queryAll();
request.setAttribute("list",list);
request.getRequestDispatcher("jsp/user_list.jsp").forward(request,response);
}
private void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//从表单接收各个参数
String username = request.getParameter("username");
String password = request.getParameter("password");
String gender = request.getParameter("gender");
int age = Integer.parseInt(request.getParameter("age"));
//封装成user
User user = new User(username,gender, age,password);
//调用dao中的添加方法
// UserDao userDao=new UserDao();
int i=userDao.add(user);
//跳转到user_list.jsp,展示所有用户
if(i>0){
request.setAttribute("info","添加成功!");
queryAll(request,response);
}else{
request.setAttribute("info","添加失败!");
queryAll(request,response);
}
}
private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
//验证
boolean flag = userDao.login(username, password);
//根据验证结果跳转页面
if(flag){
HttpSession session = request.getSession();//获取session对象
session.setAttribute("username",username);//设置属性值
// session.setMaxInactiveInterval(60);//设置失效时间
request.getRequestDispatcher("jsp/success.jsp").forward(request,response);//转发
//绝对路径
/* String path=request.getContextPath();//获取项目的根路径
response.sendRedirect(path+"/jsp/succcess.jsp");*/
}else{
request.setAttribute("info","用户名或密码错误!");
request.getRequestDispatcher("jsp/login.jsp").forward(request,response);
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request,response);
}
}
4.数据库的连接以及增删改查方法
package DAO;
import pojo.User;
import utils.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class UserDao {
DBHelper dbHelper=new DBHelper();
public boolean login(String username,String password){
boolean flag=false;
//获取数据库连接
Connection conn = dbHelper.getConnection();
//sql
String sql="select name,password from user where name=? and password=?";
try {
//创建PreparedStatement对象
PreparedStatement pstmt = conn.prepareStatement(sql);
//设置参数
pstmt.setObject(1,username);
pstmt.setObject(2,password);
//执行
ResultSet result = pstmt.executeQuery();
if(result.next()){
System.out.println("可以登录");
flag=true;
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
dbHelper.close();
}
return flag;
}
public User queryById(int id1){
User user=null;
Connection conn = dbHelper.getConnection();
String sql="select id,name,age,gender,password from user where id=?";
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setObject(1,id1);
ResultSet resultSet = pstmt.executeQuery();
if(resultSet.next()){
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String gender = resultSet.getString("gender");
int age = resultSet.getInt("age");
String password = resultSet.getString("password");
user=new User(id,name,gender,age,password);
}
} catch (SQLException e) {
e.printStackTrace();
}
return user;
}
public List queryAll(){
List list=new ArrayList();
Connection conn = dbHelper.getConnection();
String sql="select id,name,gender,age from user";
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet resultSet = pstmt.executeQuery();
//遍历结果集
while(resultSet.next()){
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String gender = resultSet.getString("gender");
int age = resultSet.getInt("age");
User user=new User(id,name,gender,age);
list.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
dbHelper.close();
}
return list;
}
public int add(User user){
String sql="insert into user(id,name,gender,age,password) values(?,?,?,?,?)";
Object[] param={user.getId(),user.getName(),user.getGender(),user.getAge(),user.getPassword()};
return dbHelper.execute(sql,param);
}
public int delete(int id){
String sql="delete from user where id=?";
Object[] param={id};
return dbHelper.execute(sql,param);
}
public int update(User user){
List list=new ArrayList();
String sql="update user set ";
if(user.getName()!=null){
sql+=" name=?,";
list.add(user.getName());
}
if(user.getAge()!=0){
sql+="age=?,";
list.add(user.getAge());
}
if(user.getGender()!=null){
sql+="gender=?,";
list.add(user.getGender());
}
if(user.getPassword()!=null){
sql+="password=? ";
list.add(user.getPassword());
}
sql+=" where id=?";
System.out.println(sql);
list.add(user.getId());
//Object [] param={user.getName(),user.getGender(),user.getAge(),user.getPassword(),user.getId()};
Object[] param=list.toArray();
return dbHelper.execute(sql,param);
}
}
5.JAVABEAN
package pojo;
public class User {
private int id;
private String name;
private String gender;
private int age;
private String password;
public User() {
}
public User(String name, String gender, int age, String password) {
this.name = name;
this.gender = gender;
this.age = age;
this.password = password;
}
public User(int id, String name, String gender, int age) {
this.id = id;
this.name = name;
this.gender = gender;
this.age = age;
}
public User(int id, String name, String gender, int age, String password) {
this.id = id;
this.name = name;
this.gender = gender;
this.age = age;
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", gender='" + gender + '\'' +
", age=" + age +
", password='" + password + '\'' +
'}';
}
}
6.数据库连接以及CRUD的辅助类
package utils;
import java.sql.*;
/**
* 数据库帮助类
*/
public class DBHelper {
Connection conn;//声明连接对象
PreparedStatement pstmt;//声明PreparedStatement对象
ResultSet result;//声明ResultSet对象
public Connection getConnection(){
// Connection conn =null;
//1.注册驱动, ctrl+alt+t
try {
Class.forName("com.mysql.jdbc.Driver");
//2.获取连接
String url="jdbc:mysql://localhost:3306/db0225?useUnicode=true&characterEncoding=utf8";
String username="root";
String password="1234";
conn = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
* 通用的增加、删除、更新
*/
public int execute(String sql,Object[] param){
int count=0;
Connection conn = this.getConnection();
try {
pstmt = conn.prepareStatement(sql);
//给参数赋值
for(int i=0;i
以上是SRC源文件代码
1.jsp/add_user.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
添加页面
2.jsp/edit_user.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
中转页面
3.jsp/success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
成功页面
登录成功!欢迎${sessionScope.username}
显示所有用户
4.jsp/user_list.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="DAO.UserDao" %>
<%@ page import="pojo.User" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
用户列表
${requestScope.info}
用户表
id
name
gender
age
操作
${user.id}
${user.name}
${user.gender}
${user.age}
删除
修改
添加
1.登录界面
2.成功页面
3.显示所有用户即查询命令
4.删除命令,删除第一个
4.修改命令
1.修改前
2.修改后
3.添加命令
基本框架都已经出来了,还有很多欠缺的地方,喜欢美感可以多加一些CSS;关于数据库的连接除了JDCP还有DBCP和C3P0连接池,博主都做了担心大家看迷糊了就没有贴出来,需要的可以联系我。精力有限,实在不能追求完美了,读者可以在这篇文章基础上拓展,共同探讨。