[javaEE] 三层架构案例-用户模块(二)
使用junit测试框架,测试查找用户和添加用户功能
com.tsh.test.xmlUserDaoTest
package com.tsh.test; import org.junit.Test; import com.tsh.dao.XmlUserDao;
import com.tsh.domain.User;
/**
* 测试用例
* @author taoshihan
*
*/
public class xmlUserDaoTest {
@Test
public void testFindUserByUsername(){
XmlUserDao dao=new XmlUserDao();
User user= dao.findUserByUsername("taoshihan");
System.out.println(user);
}
@Test
public void testAddUser(){
XmlUserDao dao=new XmlUserDao();
User user=new User();
user.setUsername("taoshihan");
user.setPassword("123456");
dao.addUser(user);
}
}
在逻辑层service层中,抛出自定义异常
com.tsh.service.UserService
package com.tsh.service; import com.tsh.dao.XmlUserDao;
import com.tsh.domain.User;
import com.tsh.exception.MsgException;
/**
* 用户逻辑
* @author taoshihan
*
*/
public class UserService {
/**
* 用户注册
* @param user
* @throws MsgException
*/
public void registerUser(User user) throws MsgException{
//检查用户名是否存在
XmlUserDao dao=new XmlUserDao();
if(dao.findUserByUsername(user.getUsername())!=null){
throw new MsgException("用户名已经存在");
}
dao.addUser(user);
}
}
在jsp中使用el标签判断登陆状态
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>用户中心</title>
</head>
<body>
<h1>用户中心</h1>
<hr>
<c:if test="${sessionScope.user==null }">
欢迎光临,游客!
<a href="${pageContext.request.contextPath }/login.jsp">登陆</a>
<a href="${pageContext.request.contextPath }/register.jsp">注册</a>
</c:if>
<c:if test="${sessionScope.user!=null }">
欢迎光临,${sessionScope.user.username }!
<a href="${pageContext.request.contextPath }/Servlet/logout">注销</a>
</c:if>
</body>
</html>
在Servlet中对发送过来的数据进行处理
com.tsh.web.LoginServlet
package com.tsh.web; 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.tsh.dao.XmlUserDao;
import com.tsh.domain.User; /**
* 登陆处理
*/
public class LoginServlet extends HttpServlet {
/**
*/
public LoginServlet() {
super();
} /**
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().write("sss");
} /**
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=utf-8");
String username=request.getParameter("username");
String password=request.getParameter("password");
if("".equals(username) || "".equals(password==null)){
request.setAttribute("msg", "用户名和密码不能为空!");
request.getRequestDispatcher("/login.jsp").forward(request, response);
return ;
}
XmlUserDao dao=new XmlUserDao();
User user=dao.findUserByUsername(username); if(user!=null && user.getPassword().equals(password)){
request.getSession().setAttribute("user", user);
response.getWriter().write("登陆成功!");
}else{
response.getWriter().write("用户名或密码错误");
}
} }
[javaEE] 三层架构案例-用户模块(二)的更多相关文章
- [javaEE] 三层架构案例-用户模块(一)
用户注册登录注销 Servlet+JSP+javaBean+dom4j 分层结构: com.tsh.web com.tsh.service com.tsh.dao com.tsh.domain com ...
- javaee三层架构案例--简单学生管理系统
背景 学了jdbc.jsp等需要串起来,不然会忘记 项目环境 win10 jdk11 mysql8.0.13 jar包 c3p0-0.9.5.2 commons-dbutils-1.7 jstl mc ...
- 一、JSP九大内置对象 二、JAVAEE三层架构和MVC设计模式 三、Ajax
一.JSP九大内置对象###<1>概念 不需要预先申明和定义,可以直接在jsp代码中直接使用 在JSP转换成Servlet之后,九大对象在Servlet中的service方法中对其进行定义 ...
- JavaEE三层架构与MVC
JavaEE三层架构与MVC 摘要与总结 等下总结下 MVC模式 Model1 说到设计模式,不得不提一下之前的的Model1.据说早期对于java企业项目的开发,用的是Jsp+JavaBean的 ...
- JavaEE三层架构
三层架构 三层架构是javaee规范中的推荐架构,传统意义上是分为表示层(UI).业务逻辑层(BLL).数据访问层(DAL).在javaee的开发中,三层架构具体分为表示层(web层) ...
- MVC开发模式与javaEE三层架构
1.MVC开发模式 1. M:Model,模型.JavaBean * 完成具体的业务操作,如:查询数据库,封装对象2. V:View,视图.JSP * 展示数据3. C:C ...
- JavaEE 三层架构的浅谈
三层架构 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了“高内聚,低 ...
- JavaEE 三层架构模式
什么是架构模式 要理解三层架构模式,我们得先搞清楚什么是架构模式.(这里说的架构模式是针对后端开发) 所谓架构就是系统最高级别的设计,一个系统特别复杂时才需要架构设计,如果只是开发一个很小程序,就谈不 ...
- [转]MVC & JavaEE三层架构
随机推荐
- 如何用Python做Web开发?——Django环境配置
用Python做Web开发,Django框架是个非常好的起点.如何从零开始,配置好Django开发环境呢?本文带你一步步无痛上手. 概念 最近有个词儿很流行,叫做“全栈”(full stack ...
- spring 为什么可以一统江湖
spring 为什么可以一统江湖 Inversion of Contro 简称IOC 是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.也就是面向接口编程的思想. 简单的说就是使用配 ...
- bzoj2705Longge的问题
题目链接 题意很简单 $$ans=\sum_{i=1}^{n}gcd(i,n)$$ 然后推一下式子,求一下欧拉函数就好了 细节是由于$BZOJ$的评测计时策略, 不能线性筛啊$……$ 必须每个数单独筛 ...
- php面向对象编程_2
1, 抽象类 ,用abstract关键字来修饰一个类,这个类就是抽象类:如果用abstract关键字来修饰一个方法,这个方法就是抽象方法,如果是抽象方法就不能实现(即抽象方法只能声明,不能定义). 抽 ...
- [ActionScript 3.0] 与C#通信方法fscommand
与C#通信的方法之一 flash.system.fscommand(command:String, args:String=""):void, command 传递给主机应用程序的 ...
- iOS 图片的存储以及读取和删除
将图片存储到本地 NSArray *dirArray = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask ...
- centos6装python3,并安装requests, lxml和beautifulsoup模块
一. 安装python3并设为默认版本,与python2共存 1.下载Python3.4安装包 wget https://www.python.org/ftp/python/3.4.4/Pytho ...
- 利用Python工具进行打包功能
基于Python脚本 iOS 工程的自动打包 导入的库 import os import requests import webbrowser import subprocess import shu ...
- 免费观看vip/要劵的电影
免费观看vip/要劵的电影 1.在爱奇艺/腾讯视频中复制电影的连接 2.复制连接到这个网站中(http://www.qmaile.com/) 3.粘贴路径到这个网站相应的位置 4.点击go ,等待解析 ...
- 接口自动化之unittest初探
最近几天苦心钻研unittest,终于略有所得,所以想来跟大家分享一下.有关python和unittest的基础知识部分就不在一一细说,相信各位也不是小白了.如果需要我整理基础知识,欢迎留言,我会看情 ...