39、导入界面和新建项目

学习过程:

界面一般需要由美工完成,不过这里我们并没有美工,所有html的界面设计我就直接把界面发给大家,下载地址如下,界面分为前台和后台两个部分,大家可以直接使用这些界面就可以了。

一、新建项目,导入界面和建立包结构

新建一个shop项目,新建相关的jsp页面,然后打开所有的html页面,把页面复制到项目中,我们是使用MVC三层架构,所有我们建立好相关的的包结构,如下:

二、完成javaBean和dao层类建立

包建立完成好,我们可以先把前期工作完成,导入相关的lib包,比如数据库驱动包,然后根据数据库表建立对应的javaBean,在新建对应的dao类,使用我们把数据库连接信息配置好。暂时不要实现代码,可以先把系统系统的架构先建立起来。

三、完成用户管理

项目开发计划。根据需求分析,系统分为好几个系统功能模块:分别是用户信息管理,商品信息管理,购物车管理模块,订单处理模块,我们也可以定下一个简单的计划,一个一个功能模块完成,系统慢慢也就是可以全部完成了:

第一天、完成用户信息管理

第二天、商品信息管理

第三天、购物车管理模块和订单处理模块

第四天、完成邮件发送、自适应mysql和oracle和测试等工作

那么今天我们可以先完成部分用户信息管理,今天的内容和前面的课程讲解差不多,基本上算是复习了,代码需要自己完成,下面给出部分的实现代码。

1、前台登录功能

dao层的实现:

public class MemberDao extends BaseDao {

	/**
	 * 注册客户
	 * 
	 * @param member
	 *            客户信息
	 * @return
	 */
	public void addMember(Member member) {
		getCon();
		String sql = "insert into member(login_name,passwd,real_name,addr,member_email,phone,postcode,head) values(?,?,?,?,?,?,?,?)";
		int temp = exeUpdate(
				sql,
				new Object[] { member.getLoginName(), member.getPasswd(),
						member.getRealName(), member.getAddr(),
						member.getMemberEmail(), member.getPhone(),
						member.getPostcode(), member.getHead() });

		// 获得插入的用户Id
		rs = exeQuery("SELECT LAST_INSERT_ID()", null);
		try {
			if (rs.next()) {
				member.setMemberId(rs.getInt(1));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}

		closeAll();

	}

	/**
	 * 用户登录
	 * 
	 * @param loginName
	 *            用户名
	 * @param password
	 *            密码
	 * @return
	 */
	public Member login(String loginName, String password) {
		Member member = getMemberByName(loginName);
		if (member != null && member.getPasswd() != null
				&& member.getPasswd().equals(password)) {
			return member;
		} else {
			return null;
		}

	}

	/**
	 * 根据用户名获得用
	 * 
	 * @param loginName
	 * @return
	 */
	public Member getMemberByName(String loginName) {
		Member member = null;
		getCon();
		String sql = "select * from member where login_name=?";
		rs = exeQuery(sql, new Object[] { loginName });
		try {
			if (rs.next()) {
				member = new Member();
				member.setMemberId(rs.getInt("member_id"));
				member.setLoginName(rs.getString("login_name"));
				member.setRealName(rs.getString("real_name"));
				member.setPasswd(rs.getString("passwd"));

			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		closeAll();
		return member;
	}

	/**
	 * 删除
	 * 
	 * @param mid
	 * @return
	 */
	public int deleteMember(int mid) {
		int result = 0;
		getCon();
		String sql = "delete  from member where member_id=?";
		result = exeUpdate(sql, new Object[] { mid });
		return result;
	}

	/**
	 * 修改密码
	 * 
	 * @param mid
	 * @param passwrod
	 * @return
	 */
	public int updatePassword(int mid, String passwrod) {
		int result = 0;
		getCon();
		String sql = "update member set passwd=?  where member_id=?";
		result = exeUpdate(sql, new Object[] { passwrod, mid });
		return result;
	}

	/**
	 * 修改基本信息,不包括修改密码和登录名称
	 * 
	 * @param member
	 * @return
	 */
	public int updateMember(Member member) {
		int result = 0;
		getCon();
		String sql = "update member set real_name=?,addr=?,member_email=?,phone=?,postcode=?,head=?  where member_id=?";
		result = exeUpdate(
				sql,
				new Object[] { member.getRealName(), member.getAddr(),
						member.getMemberEmail(), member.getPhone(),
						member.getPostcode(), member.getHead(),
						member.getMemberId() });
		return result;
	}

	/**
	 * 
	 * @param page
	 * @return
	 */
	public Member getMemberById(int mid) {
		Member member = null;

		getCon();
		String sql = "select * from member where member_id =? ";
		rs = exeQuery(sql, new Object[] { mid });
		try {
			if (rs.next()) {
				member = new Member();
				member.setMemberId(rs.getInt("member_id"));
				member.setLoginName(rs.getString("login_name"));
				member.setRealName(rs.getString("real_name"));
				member.setPasswd(rs.getString("passwd"));

			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			closeAll();
		}
		return member;
	}

	/**
	 * 
	 * @param page
	 * @return
	 */
	public List<Member> getMembers(Page page) {
		List<Member> members = new ArrayList<Member>();

		getCon();
		String sql = "select * from member limit ?,?";
		rs = exeQuery(sql,
				new Object[] { page.getItemStart(), page.getPageSize() });
		try {
			while (rs.next()) {
				Member member = new Member();
				member.setMemberId(rs.getInt("member_id"));
				member.setLoginName(rs.getString("login_name"));
				member.setRealName(rs.getString("real_name"));
				member.setPasswd(rs.getString("passwd"));

				members.add(member);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		closeAll();

		return members;
	}


}

2、servlet实现

public class MemberServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		HttpSession session = request.getSession();
		MemberDao memberDao = new MemberDao();


		String ope = request.getParameter("ope");
		if (ope == null || ope.equals("login")) {
			// 1、获得验证码
			String code = request.getParameter("code");
			// 2、判断验证码是否正确
			if (code == null
					|| !code.equals(session.getAttribute("validateCode")
							.toString())) {
				response.sendRedirect("login.jsp");
				return;
			}

			// 3、判断登陆是否成功
			String username = request.getParameter("username");
			String pass = request.getParameter("pass");

			Member member = memberDao.login(username, pass);

			if (member == null) {
				response.sendRedirect("login.jsp");
				return;
			} else {
				//记录登陆信息在session中、
				session.setAttribute("member", member);
				
				String topage = request.getParameter("topage");
				if("order".equals(topage)){
					response.sendRedirect("cart.jsp");
					return;
				}else{
					response.sendRedirect("toIndex");
					return;
				}

			}

		} else if (ope.equals("logout")) {
			session.removeAttribute("member");
			response.sendRedirect("toIndex");
			return;

		} else if (ope.equals("register")) {
			
			Map<String, String> fields = new HashMap<String, String>();
			// 头像文件的名称
			String filename = "";

			// Create a factory for disk-based file items
			FileItemFactory factory = new DiskFileItemFactory();
			// Create a new file upload handler
			ServletFileUpload upload = new ServletFileUpload(factory);

			// Parse the request/* FileItem */
			try {
				List items = upload.parseRequest(request);

				for (int i = 0; i < items.size(); i++) {

					FileItem item = (FileItem) items.get(i);

					// Process a regular form field
					if (item.isFormField()) {
						String name = item.getFieldName();
						String value = item.getString("UTF-8");
						// 获得所有的表单数据
						fields.put(name, value);
					}

					if (!item.isFormField()) {

						// 获取Web项目的全路径
						String strDirPath = request.getSession().getServletContext().getRealPath(
								"/");

						// 随机生成文件名称,并且是唯一的。
						filename = UUID.randomUUID().toString();

						// 获得后缀名 如;jpg
						if (item.getName() != null && item.getName().length() > 0) {
							String exeend = item.getName().substring(
									item.getName().lastIndexOf("."));

							filename = filename + exeend;

							File uploadedFile = new File(strDirPath + "//head//" + filename);

							item.write(uploadedFile);
						}

					}

				}

				// 判断验证码是否正确
				String valsession = (String) request.getSession().getAttribute("validateCode");
				String valcode = fields.get("val");
				if (valcode == null || !valcode.equals(valsession)) {
					response.sendRedirect("register.jsp?valerror=error");
					return;
				}

				// 封装在member中。
				Member member = new Member();
				member.setAddr(fields.get("username"));
				member.setLoginName(fields.get("loginName"));
				member.setPasswd(fields.get("passwd"));
				member.setAddr(fields.get("addr"));
				member.setMemberEmail(fields.get("memberEmail"));
				member.setPhone(fields.get("phone"));
				member.setPostcode(fields.get("postcode"));
				member.setRealName(fields.get("realName"));
				member.setHead(filename);//头像

				// 添加到数据库中。
				
				memberDao.addMember(member);

				// 保存在session中
				request.getSession().setAttribute("member", member);

				response.sendRedirect("toIndex");

			} catch (Exception e) {
				e.printStackTrace();
			}

		} else if (ope.equals("update")) {//修改基本信息
	
			
			

		} else if (ope.equals("updpass")) {//修改密码


			
		}

	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doGet(request, response);
	}

}

3、修改登录页面即可:

<form action="memberServlet?topage=${param.topage }" method="post">
<table align="center">
	<tr>
		<td>用户名</td>
		<td><input  name="username" />
		</td>
		<td></td>
	</tr>
	<tr>
		<td>密码</td>
		<td><input type="password" name="pass" />
		</td>
		<td></td>
	</tr>
	<tr>
		<td>验证码</td>
		<td><input  name="code" />
		</td>
		<td></td>
	</tr>
	<tr>
		<td>&nbsp;</td>
		<td colspan="2"><img id="val" src="validateCode"  onclick="reshcode()"/></td>
	</tr>

	<tr>
		<td><input type="submit" value="登录" /></td>
		<td colspan="2"><input type="reset" value="清空" /></td>
	</tr>
</table>
</form>

猜你喜欢

转载自blog.csdn.net/liubao616311/article/details/84072172