0
点赞
收藏
分享

微信扫一扫

Day02JavaWeb【Servlet & ServletContext】新的开发方式-综合案例


综合案例-登录分析

Day02JavaWeb【Servlet & ServletContext】新的开发方式-综合案例_domain


过程分析完之后,从哪里开始编写比较好,我个人的方法是从业务逻辑开发,只要业务逻辑正确,并通过测试,后面只需要添加web层部分

综合案例-准备工作

(1)创建模块

(2)分包

(3)编写业务逻辑

(4)实现Service

(5)实现Dao

(6)实现DB User

(7)实现Servlet

(8)实现login.html

Day02JavaWeb【Servlet & ServletContext】新的开发方式-综合案例_service_02

综合案例-代码实现

(1) UserServiceTest

先业务逻辑

test\java\com\wzx\service\UserServiceTest.java

public class UserServiceTest {
//1:添加Junit测试
@Test
public void test01Login(){
//2:业务逻辑
UserService userService = new UserService();
//3:登录业务
String username="jack";
String password="1235";
//3.1登录就是拿着账号,密码去数据库判断,存在就返回true,否则就返回false
boolean result = userService.login(username,password);
//3.2根返回结果提示用户
if(result){
System.out.println("登录成功");
}else{
System.out.println("账号或者密码出错");
}
}
}

(2) UserService

逻辑清晰了,再编写各种未实现的类与方法

src\com\wzx\service\UserService.java

//用户业务类
public class UserService {

//登录方法
public boolean login(String username, String password) {
//1:当前是业务类方法,按三层架构,要去调Dao

//1.1创建UserDao对象
UserDao userDao = new UserDao();

//1.2创建User对象
User user = new User(username,password);

boolean flag = userDao.find(user);

//1.3返回
return flag;
}
}

(3) User

src\com\wzx\bean\User.java

//用户实体类
public class User {
public User() {
}

public User(String username, String password) {
this.username = username;
this.password = password;
}

private Long id;
private String username;
private String password;
//get/set

(4) UserDao

src\com\wzx\dao\UserDao.java

//当前是数据访问层
public class UserDao {
//查找方法
public boolean find(User user) {
//按照三层架构,应该查找数据库
return DB.query(user);
}
}

src\com\wzx\db\DB.java

//当前这个DB类用集合来模拟数据库
public class DB {
private static List<User> list = new ArrayList<>();

static {
//静态代码块,当前的类被加载时,执行static代码,只执行一次
User user = new User("jack", "1234");
list.add(user);

User user1 = new User("rose", "1234");
list.add(user1);

User user2 = new User("tony", "1234");
list.add(user2);
}

public static boolean query(User user) {
User result = null;
for (User u : list) {
//遍历每个用户,判断哪个用户的账号密码符合条件
if (u.getUsername().equals(user.getUsername()) && u.getPassword().equals(user.getPassword())) {
result = u;
}
}
//遍历完数据库
if(result==null){
return false;
}else{
return true;
}
}
}

(5) 运行@Test方法

结果正常表示 除web层,其他层都开发完成,并且没有bug存在,接下来再准备一个web层的页面与Servlet

Day02JavaWeb【Servlet & ServletContext】新的开发方式-综合案例_dao_03

(6) index.html

web\index.html

<body>
<form method="post" action="/web02_login_war_exploded/login">
账号:<input type="text" name="username"> <br/>
密码:<input type="password" name="password"> <br/>
<input type="submit" value="登录"> <br/>
</form>
</body>

(7) LoginServlet

src\com\wzx\web\LoginServlet.java

@WebServlet("/login")
public class LoginServlet extends HttpServlet {



protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1:获取参数

String username=request.getParameter("username");
String password=request.getParameter("password");
//2:处理参数
UserService userService = new UserService();

//2.1登录就是拿着账号,密码去数据库判断,存在就返回true,否则就返回false
boolean result = userService.login(username,password);
response.setCharacterEncoding("utf-8");
//2.2根返回结果提示用户
if(result){

//3:响应给浏览器
response.getWriter().println("登录成功");


}else{
response.getWriter().println("账号或者密码出错");

}



}
}

(8)查看访问效果

Day02JavaWeb【Servlet & ServletContext】新的开发方式-综合案例_业务逻辑_04


Day02JavaWeb【Servlet & ServletContext】新的开发方式-综合案例_业务逻辑_05


举报

相关推荐

0 条评论