Servlet后端实现过程

前言:Spring+SpringMVC+MyBatis实现过程展示

演示

包结构如下:

注:配置文件包含数据库账号密码等~

dao包(用于连接数据库+操作sql语句+获取结果+关闭连接)大概结构

UserDao代码如下:

package com.zsx.dao;

import java.util.List;

import com.zsx.model.User;

public interface UserDao {
	// 用户登录
	public User userLogin(User user);

	// 获取用户总数
	public int count(String name, String depart, String role, String state);

	// 分页查询用户
	public List<User> getUser(String begin, String end, String name, String depart, String role, String state);

	// 禁用/启用用户
	public boolean BanUser(int userId, int userState);

	// 删除用户
	public boolean DeleteUser(int userId);

	// 清空密码
	public boolean ClearUser(int userId);

	// 注册用户
	public boolean addUser(String name, String pwd, String depart, String role, String state);

	// 修改用户
	public boolean modUser(int userId, String name, String depart, String role);

	// 名字查id
	public int findIdByName(String name);

	// Id查密码
	public String findPwdById(int userId);

	// 修改密码
	public boolean modPwd(int userId, String pwd);

	// 查看用户姓名
	public List<String> findName();

	// id查名字
	public String findNameById(int userId);

}

UserDaoImpl代码如下:

package com.zsx.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.zsx.db.DbUtil;
import com.zsx.model.User;

public class UserDaoImpl implements UserDao {

	@Override
	public User userLogin(User user) {
		Connection conn = DbUtil.getDbUtil().getConn();
		PreparedStatement p = null;
		ResultSet set = null;
		String sql = "SELECT USER_ID,USER_NAME,USER_PWD,USER_AGE,DEPARTMENT_ID,USER_SEX,USER_CTIME,USER_MTIME,ROLE_ID,USER_STATE FROM USER_INF WHERE USER_NAME=? AND USER_PWD=? AND USER_STATE=1";
		try {
			p = conn.prepareStatement(sql);
			p.setString(1, user.getUserName());
			p.setString(2, user.getUserPwd());
			set = p.executeQuery();
			if (set.next()) {
				int userId = set.getInt("USER_ID");
				String userName = set.getString("USER_NAME");
				String userPwd = set.getString("USER_PWD");
				int userAge = set.getInt("USER_AGE");
				int departmentId = set.getInt("DEPARTMENT_ID");
				int userSex = set.getInt("USER_SEX");
				Date userCtime = set.getDate("USER_CTIME");
				Date userMtime = set.getDate("USER_MTIME");
				int roleId = set.getInt("ROLE_ID");
				int userState = set.getInt("USER_STATE");
				User u = new User(userId, userName, userPwd, userAge, departmentId, userSex, userCtime, userMtime,
						roleId, userState);
				return u;

			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			DbUtil.getDbUtil().close(conn, p, set);
		}

		return null;
	}

	@Override
	public int count(String name, String depart, String role, String state) {
		String sql = "SELECT COUNT(*) AS CT FROM USER_INF A WHERE 1=1 ";
		List<String> list = new ArrayList<String>();
		if (!name.equals("") || name == null) {
			sql += "AND A.USER_NAME LIKE ?";
			list.add("%" + name + "%");
		}
		if (!depart.equals("") || depart == null) {
			sql += "AND A.DEPARTMENT_ID=?";
			if (depart.equals("内科")) {
				depart = "1";
			}
			if (depart.equals("外科")) {
				depart = "2";
			}
			if (depart.equals("五官科")) {
				depart = "3";
			}
			list.add(depart);
		}
		if (!role.equals("") || role == null) {
			sql += "AND A.ROLE_ID= ?";
			if (role.equals("管理员")) {
				role = "1";
			} else if (role.equals("销售人员")) {
				role = "2";
			} else {
				role = "3";
			}
			list.add(role);
		}
		if (!state.equals("") || state == null) {
			sql += "AND A.USER_STATE=?";
			if (state.equals("禁用")) {
				state = "0";
			} else {
				state = "1";
			}
			list.add(state);
		}
		Connection conn = DbUtil.getDbUtil().getConn();
		PreparedStatement p = null;
		ResultSet set = null;
		int count = 0;
		try {
			p = conn.prepareStatement(sql);
			for (int i = 0; i < list.size(); i++) {
				p.setString(i + 1, list.get(i));
			}
			set = p.executeQuery();
			if (set.next()) {
				count = set.getInt("CT");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			DbUtil.getDbUtil().close(conn, p, null);
		}
		return count;
	}

	@Override
	public List<User> getUser(String begin, String end, String name, String depart, String role, String state) {
		String sql = "SELECT * FROM (SELECT A.USER_ID,A.USER_NAME,A.USER_PWD,A.USER_AGE,B.DEPARTMENT_NAME,A.USER_SEX,A.USER_CTIME, A.USER_MTIME,A.ROLE_ID,A.USER_STATE,ROWNUM AS RN FROM USER_INF A"
				+ " LEFT JOIN DEPARTMENT_INF B ON A.DEPARTMENT_ID=B.DEPARTMENT_ID WHERE 1=1 ";
		List<String> list = new ArrayList<String>();
		List<User> u = new ArrayList<User>();

		if (!name.equals("") || name == null) {
			sql += "AND A.USER_NAME LIKE ?";
			list.add("%" + name + "%");
		}
		if (!depart.equals("") || depart == null) {
			sql += "AND A.DEPARTMENT_ID=?";
			if (depart.equals("内科")) {
				depart = "1";
			}
			if (depart.equals("外科")) {
				depart = "2";
			}
			if (depart.equals("五官科")) {
				depart = "3";
			}
			list.add(depart);
		}
		if (!role.equals("") || role == null) {
			sql += "AND A.ROLE_ID= ?";
			if (role.equals("管理员")) {
				role = "1";
			} else if (role.equals("销售人员")) {
				role = "2";
			} else {
				role = "3";
			}
			list.add(role);
		}
		if (!state.equals("") || state == null) {
			sql += "AND A.USER_STATE=?";
			if (state.equals("禁用")) {
				state = "0";
			} else {
				state = "1";
			}
			list.add(state);
		}
		sql += " )TMP WHERE TMP.RN>? AND TMP.RN<=?";
		list.add(begin);
		list.add(end);
		Connection conn = DbUtil.getDbUtil().getConn();
		PreparedStatement p = null;
		ResultSet set = null;
		try {
			p = conn.prepareStatement(sql);
			for (int i = 0; i < list.size(); i++) {
				p.setString(i + 1, list.get(i));
			}
			set = p.executeQuery();
			while (set.next()) {
				User user = new User(set.getInt("USER_ID"), set.getString("USER_NAME"), set.getString("USER_PWD"),
						set.getInt("USER_AGE"), set.getString("DEPARTMENT_NAME"), set.getInt("USER_SEX"),
						set.getDate("USER_CTIME"), set.getDate("USER_MTIME"), set.getInt("ROLE_ID"),
						set.getInt("USER_STATE"));
				u.add(user);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			DbUtil.getDbUtil().close(conn, p, null);
		}
		return u;
	}

	@Override
	public boolean BanUser(int userId, int userState) {
		Connection conn = DbUtil.getDbUtil().getConn();
		PreparedStatement p = null;
		String sql = "UPDATE USER_INF SET USER_STATE =? WHERE USER_ID=?";
		try {
			p = conn.prepareStatement(sql);
			p.setInt(1, userState);
			p.setInt(2, userId);
			int set = p.executeUpdate();
			if (set > 0) {
				return true;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			DbUtil.getDbUtil().close(conn, p, null);
		}

		return false;
	}

	@Override
	public boolean DeleteUser(int userId) {
		Connection conn = DbUtil.getDbUtil().getConn();
		PreparedStatement p = null;
		String sql = "DELETE FROM USER_INF WHERE USER_ID=?";
		try {
			p = conn.prepareStatement(sql);
			p.setInt(1, userId);
			int set = p.executeUpdate();
			if (set > 0) {
				return true;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			DbUtil.getDbUtil().close(conn, p, null);
		}

		return false;
	}

	@Override
	public boolean ClearUser(int userId) {
		Connection conn = DbUtil.getDbUtil().getConn();
		PreparedStatement p = null;
		String sql = "UPDATE USER_INF SET USER_PWD =? WHERE USER_ID=?";
		try {
			p = conn.prepareStatement(sql);
			p.setString(1, "123456");
			p.setInt(2, userId);
			int set = p.executeUpdate();
			if (set > 0) {
				return true;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			DbUtil.getDbUtil().close(conn, p, null);
		}

		return false;
	}

	@Override
	public boolean addUser(String name, String pwd, String depart, String role, String state) {
		Connection conn = DbUtil.getDbUtil().getConn();
		PreparedStatement p = null;
		int departId = 0;
		int roleId = 0;
		int stateId = 0;
		String sql = "INSERT INTO USER_INF VALUES(SEQ_USER_INF.NEXTVAL,?,?,20,?,1,SYSDATE,SYSDATE,?,?)";
		if (depart.equals("内科")) {
			departId = 1;
		}
		if (depart.equals("外科")) {
			departId = 2;
		}
		if (depart.equals("五官科")) {
			departId = 3;
		}
		if (role.equals("管理员")) {
			roleId = 1;
		}
		if (role.equals("销售人员")) {
			roleId = 2;
		}
		if (role.equals("医生")) {
			roleId = 3;
		}
		if (state.equals("启用")) {
			stateId = 1;
		}
		if (state.equals("禁用")) {
			stateId = 0;
		}
		try {
			p = conn.prepareStatement(sql);
			p.setString(1, name);
			p.setString(2, pwd);
			p.setInt(3, departId);
			p.setInt(4, roleId);
			p.setInt(5, stateId);
			int set = p.executeUpdate();
			if (set > 0) {
				return true;
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			DbUtil.getDbUtil().close(conn, p, null);
		}

		return false;
	}

	@Override
	public boolean modUser(int userId, String name, String depart, String role) {
		Connection conn = DbUtil.getDbUtil().getConn();
		PreparedStatement p = null;
		int departId = 0;
		int roleId = 0;
		String sql = "UPDATE USER_INF SET USER_NAME =? ,DEPARTMENT_ID=?, ROLE_ID=? WHERE USER_ID=?";
		try {
			p = conn.prepareStatement(sql);

			if (depart.equals("内科")) {
				departId = 1;
			}
			if (depart.equals("外科")) {
				departId = 2;
			}
			if (depart.equals("五官科")) {
				departId = 3;
			}
			if (role.equals("管理员")) {
				roleId = 1;
			}
			if (role.equals("销售人员")) {
				roleId = 2;
			}
			if (role.equals("医生")) {
				roleId = 3;
			}

			p.setString(1, name);
			p.setInt(2, departId);
			p.setInt(3, roleId);
			p.setInt(4, userId);
			int set = p.executeUpdate();
			if (set > 0) {
				return true;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			DbUtil.getDbUtil().close(conn, p, null);
		}

		return false;
	}

	@Override
	public int findIdByName(String name) {
		Connection conn = DbUtil.getDbUtil().getConn();
		PreparedStatement p = null;
		ResultSet set = null;
		String sql = "SELECT USER_ID FROM USER_INF WHERE USER_NAME=?";
		try {
			p = conn.prepareStatement(sql);
			p.setString(1, name);
			set = p.executeQuery();
			if (set.next()) {

				return set.getInt("USER_ID");

			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			DbUtil.getDbUtil().close(conn, p, set);
		}

		return 0;
	}

	@Override
	public String findPwdById(int user_id) {
		Connection conn = DbUtil.getDbUtil().getConn();
		PreparedStatement p = null;
		ResultSet set = null;
		String sql = "SELECT USER_PWD FROM USER_INF WHERE USER_ID=?";
		try {
			p = conn.prepareStatement(sql);
			p.setInt(1, user_id);
			set = p.executeQuery();
			if (set.next()) {
				return set.getString("USER_PWD");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			DbUtil.getDbUtil().close(conn, p, set);
		}

		return null;
	}

	@Override
	public boolean modPwd(int userId, String pwd) {
		Connection conn = DbUtil.getDbUtil().getConn();
		PreparedStatement p = null;
		String sql = "UPDATE USER_INF SET USER_PWD=? WHERE USER_ID=?";
		try {
			p = conn.prepareStatement(sql);
			p.setString(1, pwd);
			p.setInt(2, userId);
			int set = p.executeUpdate();
			if (set > 0) {
				return true;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			DbUtil.getDbUtil().close(conn, p, null);
		}

		return false;
	}

	@Override
	public List<String> findName() {
		String sql = "SELECT USER_NAME FROM USER_INF WHERE USER_STATE=1 ";
		List<String> list = new ArrayList<String>();

		Connection conn = DbUtil.getDbUtil().getConn();
		PreparedStatement p = null;
		ResultSet set = null;
		try {
			p = conn.prepareStatement(sql);
			set = p.executeQuery();
			while (set.next()) {
				list.add(set.getString("USER_NAME"));
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			DbUtil.getDbUtil().close(conn, p, null);
		}
		return list;
	}

	@Override
	public String findNameById(int userId) {
		String sql = "SELECT USER_NAME FROM USER_INF WHERE USER_ID=? ";
		List<String> list = new ArrayList<String>();

		Connection conn = DbUtil.getDbUtil().getConn();
		PreparedStatement p = null;
		ResultSet set = null;
		try {
			p = conn.prepareStatement(sql);
			p.setInt(1, userId);
			set = p.executeQuery();
			if (set.next()) {
				return (set.getString("USER_NAME"));
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			DbUtil.getDbUtil().close(conn, p, null);
		}
		return null;
	}

}

db包:
在这里插入图片描述
DbUtil(数据库连接工具类)代码如下:

package com.zsx.db;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class DbUtil {
	private static DbUtil dbUtil;
	private String driver;
	private String url;
	private String user;
	private String password;

	//
	public static DbUtil getDbUtil() {
		if (dbUtil == null) {
			dbUtil = new DbUtil();
		}
		return dbUtil;
	}

	private DbUtil() {
		Properties p = new Properties();
		try {
			p.load(DbUtil.class.getClassLoader().getResourceAsStream("db.properties"));
			driver = p.getProperty("driver");
			url = p.getProperty("url");
			user = p.getProperty("user");
			password = p.getProperty("password");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public void close(Connection conn, PreparedStatement p, ResultSet set) {
		if (set != null) {
			try {
				set.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if (p != null) {
			try {
				p.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	public Connection getConn() {
		Connection conn = null;
		try {
			Class.forName(driver);
			conn = DriverManager.getConnection(url, user, password);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}

}

filter包:
在这里插入图片描述
LoginFilter(文字编码拦截器)代码如下:

package com.zsx.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginFilter implements Filter {

	@Override
	public void destroy() {
		// TODO Auto-generated method stub

	}

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
			throws IOException, ServletException {
		HttpServletRequest req = (HttpServletRequest) arg0;
		HttpServletResponse resp = (HttpServletResponse) arg1;
		req.setCharacterEncoding("UTF-8");// 发上来的信息设置成UTF-8
		resp.setCharacterEncoding("UTF-8");// 发下去的信息设置成UTF-8
		resp.setContentType("text/html;charset=UTF-8");// 发下去的信息设置成UTF-8
		arg2.doFilter(req, resp);
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub

	}

}

model包:
在这里插入图片描述
User代码如下:

package com.zsx.model;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class User {
	private int userId;
	private String userName;
	private String userPwd;
	private int userAge;
	private int departmentId;
	private String departmentName;
	private int userSex;
	private Date userCtime;
	private Date userMtime;
	private int roleId;
	private int userState;
	private Map<String, Object> map = new HashMap<String, Object>();

	public User() {
		// TODO Auto-generated constructor stub
	}

	public User(String userName, String userPwd) {
		super();
		this.userName = userName;
		this.userPwd = userPwd;
	}

	public User(int userId, String userName, String userPwd, int userAge, int departmentId, int userSex, Date userCtime,
			Date userMtime, int roleId, int userState) {
		super();
		this.userId = userId;
		this.userName = userName;
		this.userPwd = userPwd;
		this.userAge = userAge;
		this.departmentId = departmentId;
		this.userSex = userSex;
		this.userCtime = userCtime;
		this.userMtime = userMtime;
		this.roleId = roleId;
		this.userState = userState;
	}

	public User(int userId, String userName, String userPwd, int userAge, String departmentName, int userSex,
			Date userCtime, Date userMtime, int roleId, int userState) {
		super();
		this.userId = userId;
		this.userName = userName;
		this.userPwd = userPwd;
		this.userAge = userAge;
		this.departmentName = departmentName;
		this.userSex = userSex;
		this.userCtime = userCtime;
		this.userMtime = userMtime;
		this.roleId = roleId;
		this.userState = userState;
	}

	public int getUserId() {
		return userId;
	}

	public String getDepartmentName() {
		return departmentName;
	}

	public void setDepartmentName(String departmentName) {
		this.departmentName = departmentName;
	}

	public void setUserId(int userId) {
		this.userId = userId;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getUserPwd() {
		return userPwd;
	}

	public void setUserPwd(String userPwd) {
		this.userPwd = userPwd;
	}

	public int getUserAge() {
		return userAge;
	}

	public void setUserAge(int userAge) {
		this.userAge = userAge;
	}

	public int getDepartmentId() {
		return departmentId;
	}

	public void setDepartmentId(int departmentId) {
		this.departmentId = departmentId;
	}

	public int getUserSex() {
		return userSex;
	}

	public void setUserSex(int userSex) {
		this.userSex = userSex;
	}

	public Date getUserCtime() {
		return userCtime;
	}

	public void setUserCtime(Date userCtime) {
		this.userCtime = userCtime;
	}

	public Date getUserMtime() {
		return userMtime;
	}

	public void setUserMtime(Date userMtime) {
		this.userMtime = userMtime;
	}

	public int getRoleId() {
		return roleId;
	}

	public void setRoleId(int roleId) {
		this.roleId = roleId;
	}

	public int getUserState() {
		return userState;
	}

	public void setUserState(int userState) {
		this.userState = userState;
	}

	public Map<String, Object> getMap() {
		return map;
	}

	public void setMap(Map<String, Object> map) {
		this.map = map;
	}

}

service包:
在这里插入图片描述
UserService代码如下:

package com.zsx.service;

import java.util.List;

import com.zsx.model.User;

public interface UserService {
	// 用户登录
	public User userLogin(User user);

	// 获取用户总数
	public int count(String name, String depart, String role, String state);

	// 分页查询用户
	public List<User> getUser(String begin, String end, String name, String depart, String role, String state);

	// 禁用/启用用户
	public boolean BanUser(int userId, int userState);

	// 删除用户
	public boolean DeleteUser(int userId);

	// 清空密码
	public boolean ClearUser(int userId);

	// 注册用户
	public boolean addUser(String name, String pwd, String depart, String role, String state);

	// 修改用户
	public boolean modUser(int userId, String name, String depart, String role);

	// 名字查id
	public int findIdByName(String name);

	// Id查密码
	public String findPwdById(int user_id);

	// 修改密码
	public boolean modPwd(int userId, String pwd);

	// 查看用户姓名
	public List<String> findName();
	// id查名字
	public String findNameById(int userId);
}

UserServiceimpl代码如下:

package com.zsx.service;

import java.util.List;

import com.zsx.dao.UserDao;
import com.zsx.dao.UserDaoImpl;
import com.zsx.model.User;

public class UserServiceImpl implements UserService {

	@Override
	public User userLogin(User user) {
		UserDao u = new UserDaoImpl();
		return u.userLogin(user);
	}

	@Override
	public int count(String name, String depart, String role, String state) {
		UserDao u = new UserDaoImpl();
		return u.count(name, depart, role, state);
	}

	@Override
	public List<User> getUser(String begin, String end, String name, String depart, String role, String state) {
		UserDao u = new UserDaoImpl();
		return u.getUser(begin, end, name, depart, role, state);
	}

	@Override
	public boolean BanUser(int userId, int userState) {
		UserDao u = new UserDaoImpl();
		return u.BanUser(userId, userState);
	}

	@Override
	public boolean DeleteUser(int userId) {
		UserDao u = new UserDaoImpl();
		return u.DeleteUser(userId);
	}

	@Override
	public boolean ClearUser(int userId) {
		UserDao u = new UserDaoImpl();
		return u.ClearUser(userId);
	}

	@Override
	public boolean modUser(int userId, String name, String depart, String role) {
		UserDao u = new UserDaoImpl();
		return u.modUser(userId, name, depart, role);
	}

	@Override
	public int findIdByName(String name) {
		UserDao u = new UserDaoImpl();
		return u.findIdByName(name);
	}

	@Override
	public boolean addUser(String name, String pwd, String depart, String role, String state) {
		UserDao u = new UserDaoImpl();
		return u.addUser(name, pwd, depart, role, state);
	}

	@Override
	public String findPwdById(int user_id) {
		UserDao u = new UserDaoImpl();
		return u.findPwdById(user_id);
	}

	@Override
	public boolean modPwd(int userId, String pwd) {
		UserDao u = new UserDaoImpl();
		return u.modPwd(userId, pwd);
	}

	@Override
	public List<String> findName() {
		UserDao u = new UserDaoImpl();
		return u.findName();
	}

	@Override
	public String findNameById(int userId) {
		UserDao u = new UserDaoImpl();
		return u.findNameById(userId);
	}

}

servlet包:(注:由于每个连接都相对应的servlet,所以这边的servlet会比较多。这个问题在引入特定框架后得以改善)
在这里插入图片描述
类过多。这里以用户登录、注册servlet为例。

UserLoginServlet.java(登录):

package com.zsx.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.codehaus.jackson.map.ObjectMapper;

import com.zsx.model.Message;
import com.zsx.model.User;
import com.zsx.service.LogService;
import com.zsx.service.LogServiceImpl;
import com.zsx.service.UserServiceImpl;

public class UserLoginServlet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// 验证码
		HttpSession hs = req.getSession();
		String v = String.valueOf(hs.getAttribute("code"));

		// 网页的数据
		String userName = req.getParameter("name");
		String userPwd = req.getParameter("pwd");
		String validate = req.getParameter("validate");
		User user = new User(userName, userPwd);
		User u = new UserServiceImpl().userLogin(user);
		String id = "";
		String msg = "";
		String url = "main.jsp";
		if (u != null) {
			id = "1";
			msg = "登陆成功";
			// 添加日志
			LogService log = new LogServiceImpl();
			log.addLog(userName, "登陆系统");
		} else {
			id = "0";
			msg = "登陆失败";
		}
		if (!v.equals(validate)) {
			id = "0";
			msg = "验证码无效";
		}
		ObjectMapper om = new ObjectMapper();

		Message m = new Message(id, url, msg);
		String json = om.writeValueAsString(m);
		resp.getWriter().println(json);

		hs.setAttribute("user", u);
	}
}

AddUserServlet.java(注册):

package com.zsx.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.codehaus.jackson.map.ObjectMapper;

import com.zsx.model.Message;
import com.zsx.service.LogService;
import com.zsx.service.LogServiceImpl;
import com.zsx.service.UserServiceImpl;

public class AddUserServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		int userId = Integer.valueOf(req.getParameter("userId"));
		String na = new UserServiceImpl().findNameById(userId);
		String name = req.getParameter("name");
		String pwd = req.getParameter("pwd");
		String depart = req.getParameter("depart");
		String role = req.getParameter("role");
		String state = req.getParameter("state");

		boolean key = new UserServiceImpl().addUser(name, pwd, depart, role, state);

		String id = "0";
		String msg = "注册失败。已存在该账号";
		if (key) {
			id = "1";
			msg = "注册成功!";
			// 添加日志
			LogService log = new LogServiceImpl();
			log.addLog(na, "注册新用户。用户名:" + name);
		}
		ObjectMapper om = new ObjectMapper();
		Message m = new Message(id, null, msg);
		String json = om.writeValueAsString(m);
		resp.getWriter().println(json);
	}
}

db.properties配置数据库文件:

driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:orcl
user=*******
password=******

web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name>cardAdmin</display-name>
	<welcome-file-list>
		<welcome-file>userLogin.jsp</welcome-file>
	</welcome-file-list>
	<!-- 文字过滤器 -->
	<filter>
		<filter-name>loginFilter</filter-name>
		<filter-class>com.zsx.filter.LoginFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>loginFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<!-- 管理人员登录 -->
	<!-- 验证码 -->
	<servlet>
		<servlet-name>vaildateServlet</servlet-name>
		<servlet-class>com.zsx.servlet.VaildateServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>vaildateServlet</servlet-name>
		<url-pattern>/vaildate</url-pattern>
	</servlet-mapping>
	<!-- 用户登录 -->
	<servlet>
		<servlet-name>userLoginServlet</servlet-name>
		<servlet-class>com.zsx.servlet.UserLoginServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>userLoginServlet</servlet-name>
		<url-pattern>/userLogin</url-pattern>
	</servlet-mapping>
	<!-- 用户注销 -->
	<servlet>
		<servlet-name>userLogoutServlet</servlet-name>
		<servlet-class>com.zsx.servlet.UserLogoutServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>userLogoutServlet</servlet-name>
		<url-pattern>/logout</url-pattern>
	</servlet-mapping>
	<!-- 管理端的侧边栏获取 -->
	<servlet>
		<servlet-name>userGetMenu</servlet-name>
		<servlet-class>com.zsx.servlet.UserGetMenu</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>userGetMenu</servlet-name>
		<url-pattern>/userGetMenu</url-pattern>
	</servlet-mapping>
	<!-- 人员获取 -->
	<servlet>
		<servlet-name>getUserServlet</servlet-name>
		<servlet-class>com.zsx.servlet.GetUserServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>getUserServlet</servlet-name>
		<url-pattern>/getUser</url-pattern>
	</servlet-mapping>
	<!-- 人员禁用/启用 -->
	<servlet>
		<servlet-name>banUserServlet</servlet-name>
		<servlet-class>com.zsx.servlet.BanUserServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>banUserServlet</servlet-name>
		<url-pattern>/banUser</url-pattern>
	</servlet-mapping>
	<!-- 人员删除 -->
	<servlet>
		<servlet-name>deleteUserServlet</servlet-name>
		<servlet-class>com.zsx.servlet.DeleteUserServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>deleteUserServlet</servlet-name>
		<url-pattern>/deleteUser</url-pattern>
	</servlet-mapping>
	<!-- 人员清空密码 -->
	<servlet>
		<servlet-name>clearUserServlet</servlet-name>
		<servlet-class>com.zsx.servlet.ClearUserServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>clearUserServlet</servlet-name>
		<url-pattern>/clearUser</url-pattern>
	</servlet-mapping>
	<!-- 人员注册 -->
	<servlet>
		<servlet-name>addUserServlet</servlet-name>
		<servlet-class>com.zsx.servlet.AddUserServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>addUserServlet</servlet-name>
		<url-pattern>/addUser</url-pattern>
	</servlet-mapping>
	<!-- 人员修改 -->
	<servlet>
		<servlet-name>modUserServlet</servlet-name>
		<servlet-class>com.zsx.servlet.ModUserServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>modUserServlet</servlet-name>
		<url-pattern>/modUser</url-pattern>
	</servlet-mapping>
	<!-- 卡片添加 -->
	<servlet>
		<servlet-name>addCardServlet</servlet-name>
		<servlet-class>com.zsx.servlet.AddCardServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>addCardServlet</servlet-name>
		<url-pattern>/addCard</url-pattern>
	</servlet-mapping>
	<!-- 卡片查詢 -->
	<servlet>
		<servlet-name>getCardServlet</servlet-name>
		<servlet-class>com.zsx.servlet.GetCardServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>getCardServlet</servlet-name>
		<url-pattern>/getCard</url-pattern>
	</servlet-mapping>
	<!-- 卡片删除 -->
	<servlet>
		<servlet-name>deleteCardServlet</servlet-name>
		<servlet-class>com.zsx.servlet.DeleteCardServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>deleteCardServlet</servlet-name>
		<url-pattern>/deleteCard</url-pattern>
	</servlet-mapping>
	<!-- 领卡申请显示 -->
	<servlet>
		<servlet-name>getRecvCardServlet</servlet-name>
		<servlet-class>com.zsx.servlet.GetRecvCardServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>getRecvCardServlet</servlet-name>
		<url-pattern>/getRecvCard</url-pattern>
	</servlet-mapping>
	<!-- 领卡申请添加 -->
	<servlet>
		<servlet-name>addRecvCardServlet</servlet-name>
		<servlet-class>com.zsx.servlet.AddRecvCardServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>addRecvCardServlet</servlet-name>
		<url-pattern>/addRecvCard</url-pattern>
	</servlet-mapping>
	<!-- 领卡申请修改 -->
	<servlet>
		<servlet-name>modRecvCardServlet</servlet-name>
		<servlet-class>com.zsx.servlet.ModRecvCardServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>modRecvCardServlet</servlet-name>
		<url-pattern>/modRecvCard</url-pattern>
	</servlet-mapping>
	<!-- 领卡申请显示管理端 -->
	<servlet>
		<servlet-name>getRecvCardApprServlet</servlet-name>
		<servlet-class>com.zsx.servlet.GetRecvCardApprServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>getRecvCardApprServlet</servlet-name>
		<url-pattern>/getRecvCardAppr</url-pattern>
	</servlet-mapping>
	<!-- 领卡申请通过管理端 -->
	<servlet>
		<servlet-name>apprRecvCardServlet</servlet-name>
		<servlet-class>com.zsx.servlet.ApprRecvCardServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>apprRecvCardServlet</servlet-name>
		<url-pattern>/ApprRecvCard</url-pattern>
	</servlet-mapping>
	<!-- 获取名字 -->
	<servlet>
		<servlet-name>getCardNameServlet</servlet-name>
		<servlet-class>com.zsx.servlet.GetCardNameServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>getCardNameServlet</servlet-name>
		<url-pattern>/getCardName</url-pattern>
	</servlet-mapping>
	<!-- 售卡 -->
	<servlet>
		<servlet-name>saleCardServlet</servlet-name>
		<servlet-class>com.zsx.servlet.SaleCardServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>saleCardServlet</servlet-name>
		<url-pattern>/saleCard</url-pattern>
	</servlet-mapping>
	<!-- 读卡 -->
	<servlet>
		<servlet-name>readCardServlet</servlet-name>
		<servlet-class>com.zsx.servlet.ReadCardServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>readCardServlet</servlet-name>
		<url-pattern>/readCard</url-pattern>
	</servlet-mapping>
	<!-- 换卡 -->
	<servlet>
		<servlet-name>changeCardServlet</servlet-name>
		<servlet-class>com.zsx.servlet.ChangeCardServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>changeCardServlet</servlet-name>
		<url-pattern>/changeCard</url-pattern>
	</servlet-mapping>
	<!-- 退卡 -->
	<servlet>
		<servlet-name>exitCardServlet</servlet-name>
		<servlet-class>com.zsx.servlet.ExitCardServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>exitCardServlet</servlet-name>
		<url-pattern>/exitCard</url-pattern>
	</servlet-mapping>
	<!-- 医生排班的名字显示 -->
	<servlet>
		<servlet-name>doctorNameServlet</servlet-name>
		<servlet-class>com.zsx.servlet.DoctorNameServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>doctorNameServlet</servlet-name>
		<url-pattern>/doctorName</url-pattern>
	</servlet-mapping>
	<!-- 医生排班的数据显示 -->
	<servlet>
		<servlet-name>doctorWorkServlet</servlet-name>
		<servlet-class>com.zsx.servlet.DoctorWorkServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>doctorWorkServlet</servlet-name>
		<url-pattern>/doctorWork</url-pattern>
	</servlet-mapping>
	<!-- 医生排班修改 -->
	<servlet>
		<servlet-name>doctorModServlet</servlet-name>
		<servlet-class>com.zsx.servlet.DoctorModServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>doctorModServlet</servlet-name>
		<url-pattern>/doctorMod</url-pattern>
	</servlet-mapping>
	<!-- 医生排班 -->
	<servlet>
		<servlet-name>addWorkServlet</servlet-name>
		<servlet-class>com.zsx.servlet.AddWorkServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>addWorkServlet</servlet-name>
		<url-pattern>/addwork</url-pattern>
	</servlet-mapping>
	<!-- 领卡查询 -->
	<servlet>
		<servlet-name>cardRecordServlet</servlet-name>
		<servlet-class>com.zsx.servlet.CardRecordServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>cardRecordServlet</servlet-name>
		<url-pattern>/recordCard</url-pattern>
	</servlet-mapping>
	<!-- 用户名字 -->
	<servlet>
		<servlet-name>getUserNameServlet</servlet-name>
		<servlet-class>com.zsx.servlet.GetUserNameServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>getUserNameServlet</servlet-name>
		<url-pattern>/userName</url-pattern>
	</servlet-mapping>
	<!-- 卡查询 -->
	<servlet>
		<servlet-name>cardSelectServlet</servlet-name>
		<servlet-class>com.zsx.servlet.CardSelectServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>cardSelectServlet</servlet-name>
		<url-pattern>/selectCard</url-pattern>
	</servlet-mapping>
	<!-- 修改密码 -->
	<servlet>
		<servlet-name>modPwdServlet</servlet-name>
		<servlet-class>com.zsx.servlet.ModPwdServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>modPwdServlet</servlet-name>
		<url-pattern>/modPwd</url-pattern>
	</servlet-mapping>
	<!-- 卡注销 -->
	<servlet>
		<servlet-name>destoryCardServlet</servlet-name>
		<servlet-class>com.zsx.servlet.DestoryCardServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>destoryCardServlet</servlet-name>
		<url-pattern>/destoryCard</url-pattern>
	</servlet-mapping>
	<!-- 工作量统计 -->
	<servlet>
		<servlet-name>countServlet</servlet-name>
		<servlet-class>com.zsx.servlet.CountServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>countServlet</servlet-name>
		<url-pattern>/getCount</url-pattern>
	</servlet-mapping>
	<!-- 日志 -->
	<servlet>
		<servlet-name>logServlet</servlet-name>
		<servlet-class>com.zsx.servlet.LogServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>logServlet</servlet-name>
		<url-pattern>/getLog</url-pattern>
	</servlet-mapping>
	<!-- 权限修改 -->
	<servlet>
		<servlet-name>powerServlet</servlet-name>
		<servlet-class>com.zsx.servlet.PowerServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>powerServlet</servlet-name>
		<url-pattern>/power</url-pattern>
	</servlet-mapping>
	<!-- 菜单获取 -->
	<servlet>
		<servlet-name>getMenuServlet</servlet-name>
		<servlet-class>com.zsx.servlet.GetMenuServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>getMenuServlet</servlet-name>
		<url-pattern>/getMenu</url-pattern>
	</servlet-mapping>
</web-app>

大抵流程如下:
前端将数据+url传入到web.xml中,web.xml找到对应的url-pattern,再去寻找对应url-patternservlet-name同名的其他servlet-name中,通过servlet-class进入对应的servlet类中。
servlet类获取到数据,调用serviceservice调用dao(连接数据库+操作sql语句+获取结果+关闭连接))进行实现业务,同时通过json返回到前端,实现前后端交互。

	<!-- 用户登录 为例子-->
	<servlet>
		<servlet-name>userLoginServlet</servlet-name>
		<servlet-class>com.zsx.servlet.UserLoginServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>userLoginServlet</servlet-name>
		<url-pattern>/userLogin</url-pattern>
	</servlet-mapping>

以上是Servlet后端实现过程。

猜你喜欢

转载自blog.csdn.net/IT_Java_Roy/article/details/88610599