上一篇文章中,我们介绍了环境配置与后台设计,对于不了解的同学,可以看这个链接CharlesDDDD:JavaWeb图像可视化管理系统之后台搭建(一)环境配置与后台设计zhuanlan.zhihu.com
这篇文章,我们将直接面向功能进行分析,是这个系列文章中干货最多,最需要理解的一篇。
首先,我们要搭一个后台,需要提前做的是确定Java Resources中Package的目录结构,将不同的java类放在不同的文件夹下面。第一级目录我们一般设为com,而在本项目中,我将com下面的包划分为数据访问层(Dao层),实体映射层(Entity层)、功能层(Util层)以及放Servlet和Filter的两个层。
PS: 建包的时候在空包下面建包会得到同级目录的包,要先在包中新建一个类再创建。
(1)用户登陆与注册
DengluServlet
package com.servlet;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
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 com.dao.PhotoDaoImpl;
import com.dao.UserDao;
import com.dao.UserDaoImpl;
import com.entity.Photo;
import com.entity.User;
public class DengluServlet extends HttpServlet { //需要继承HttpServlet 并重写doGet doPost方法public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response); //将信息使用doPost方法执行 对应jsp页面中的form表单中的method}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("user"); //得到jsp页面传过来的参数String pwd = request.getParameter("pswd"); //得到jsp页面传过来的参数
UserDao ud = new UserDaoImpl();
HttpSession session = request.getSession();
if(ud.login(name, pwd)){
if(name.equals("root"))
{
UserDaoImpl userService = new UserDaoImpl();
List UserList = new ArrayList();
UserList = userService.getUserAll();
request.setAttribute("UserList",UserList);
session.setAttribute("loginMsg","管理员登陆成功!");
request.getRequestDispatcher("UserManagement.jsp").forward(request, response);//转发到成功页面
}else {
PhotoDaoImpl photoService = new PhotoDaoImpl();
List PhotoList = new ArrayList();
PhotoList = photoService.getAllPhotos();
request.setAttribute("PhotoList",PhotoList);
session.setAttribute("loginMsg","普通用户登陆成功!");
request.setAttribute("user", name);
request.getRequestDispatcher("SatellitePic.jsp").forward(request, response);
}
}
else{
session.setAttribute("loginMsg","用户不存在或密码错误!");
response.sendRedirect("login.jsp"); //重定向到首页}
}
}
ZhuceServlet
package com.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 com.dao.UserDao;
import com.dao.UserDaoImpl;
import com.entity.User;
public class ZhuceServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("register_user"); //获取jsp页面传过来的参数String pwd = request.getParameter("register_pswd");
User user = new User(); //实例化一个对象,组装属性user.setName(name);
user.setPwd(pwd);
UserDao ud = new UserDaoImpl();
if(ud.register(user)){
request.setAttribute("username", name); //向request域中放置参数request.getRequestDispatcher("login.jsp").forward(request, response); //转发到登录页面}else{
response.sendRedirect("login.jsp");//重定向到首页}
}
}
UserDao(用户层接口)
package com.dao;
import java.util.List;
import com.entity.User;
public interface UserDao {
public boolean login(String name,String pwd);//登录public boolean register(User user);//注册public List getUserAll();//返回用户信息集合public boolean delete(String name) ;//根据id删除用户public boolean update(String name, String pwd) ;//更新用户信息}
UserDaoImpl(用户层接口实现)
package com.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.entity.User;
import com.util.DBconn;
public class UserDaoImpl implements UserDao{
public boolean register(User user) {
boolean flag = false;
DBconn.init();
int i =DBconn.addUpdDel("insert into userdata(user,password) " +
"values('"+user.getName()+"','"+user.getPwd()+"')");
if(i>0){
flag = true;
}
DBconn.closeConn();
return flag;
}
public boolean login(String name, String pwd) {
boolean flag = false;
try {
DBconn.init();
ResultSet rs = DBconn.selectSql("select * from userdata where user='"+name+"' and password='"+pwd+"'");
while(rs.next()){
if(rs.getString("user").equals(name) && rs.getString("password").equals(pwd)){
flag = true;
}
}
DBconn.closeConn();
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
public List getUserAll() {
List list = new ArrayList();
try {
DBconn.init();
ResultSet rs = DBconn.selectSql("select * from userdata");
while(rs.next()){
User user = new User();
user.setName(rs.getString("user"));
user.setPwd(rs.getString("password"));
list.add(user);
}
DBconn.closeConn();
return list;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public boolean update(String name, String pwd) {
boolean flag = false;
DBconn.init();
String sql ="update user set user ='"+name
+"' , password ='"+pwd
+"' where user = "+name;
int i =DBconn.addUpdDel(sql);
if(i>0){
flag = true;
}
DBconn.closeConn();
return flag;
}
public boolean delete(String n