6.12作业

本文介绍了一个基于三层架构的简单登录系统的实现过程,包括视图层的HTML表单设计、控制层的Servlet处理逻辑及数据访问层的数据库交互。通过具体代码展示了如何验证用户输入并完成登录流程。

利用三层开发的登录页面的目前只实现了登录.

首先是视图层

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <form action="user.com" method="post">
      用户名<input type="text" name="username">
      密 码<input type="text" name="password">
      <input type="submit" value="登录">  
    </form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
登陆成功
</body>
</html>

然后是servlet 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>6.12</display-name>
  <servlet>
    <servlet-name>UserServlet</servlet-name>
    <servlet-class>com.action.UserServlet</servlet-class>
  </servlet>
<!-- 处理用户的servlet -->
  <servlet-mapping>
    <servlet-name>UserServlet</servlet-name>
    <url-pattern>/user.com</url-pattern>
  </servlet-mapping>
</web-app>

servlet类

package com.action;

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.biz.IUserBizlmpl;
import com.entity.Users;
public class UserServlet extends HttpServlet{
       @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    	// TODO Auto-generated method stub
    	
    }
       @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    	// TODO Auto-generated method stub
    	   //获取表单传递的数据
   		String name=req.getParameter("username");
   		String pass=req.getParameter("password");

   		//调用业务逻辑
   		
   		IUserBizlmpl biz=new IUserBizlmpl();
   		//实例化users
   		Users u=new Users();
   		u.setUserName(name);
   		u.setUserPass(pass);
   		boolean bb=biz.islogin(u);
   		if(bb){
   			req.getRequestDispatcher("show.jsp").forward(req, resp);
   			
   		}else{
   			resp.sendRedirect("login.jsp");
   			
   		}
   		
   	}
   	
   	
   }
数据访问层
package com.biz;

import com.entity.Users;

/**
 * 处理用户登录的业务
 * @author Administrator
 *
 */
public interface UserBiz {
       public boolean islogin(Users user);
}

调用数据访问层

package com.biz;

import java.util.ArrayList;
import java.util.List;

import com.dao.IUserDaolmpl;
import com.entity.Users;

public class IUserBizlmpl implements UserBiz {
//调用数据访问层
	IUserDaolmpl dao=new IUserDaolmpl();
	
	public boolean islogin(Users user) {
		List<Object> li=new ArrayList<Object>();
		li.add(user.getUserName());
		li.add(user.getUserPass());
	    if(dao.getSimleObject("select * from zhuce where user_name=? and user_password=?", li).size()>0){
	    	return true;
	    	
	    }
	    return false;
	}

}

数据访问层

package com.dao;
/**
 * 数据访问层
 * @author Administrator
 *
 */

import java.util.List;

public interface UserDao {
//单条查询
	public List<Object> getSimleObject(String sql,List<Object> list);
}

数据访问层实现类

package com.dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.List;
//数据访问层实现类
public class IUserDaolmpl implements UserDao{

	@Override
	public List<Object> getSimleObject(String sql, List<Object> list) {
		// TODO Auto-generated method stub
		List<Object> li=new ArrayList<Object>();
		try {
			PreparedStatement st=DBUtil.getconnection().prepareStatement(sql);
			for (int i = 0; i < list.size(); i++) {
				st.setObject(i+1, list.get(i));
			}
			//执行查询的结果
			ResultSet rs=st.executeQuery();
			//获取元数据
			ResultSetMetaData date=rs.getMetaData();
			while (rs.next()) {
				//循环列的数
				for (int i = 0; i < date.getColumnCount(); i++) {
					//列名
					String colName=date.getColumnName(i+1);
					//列值
					Object obj=rs.getObject(colName);
				    li.add(obj);
				}
				
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
		return li;
	}
	public static void main(String[] args) {
		List<Object> li=new ArrayList<Object>();
		li.add("lihaijie");
		li.add("159357123");
		new IUserDaolmpl().getSimleObject("select * from zhuce where user_name=? and user_password=?", li);
	}
       
}
package com.dao;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBUtil {
	static Connection con=null;
       public static Connection getconnection(){
    	   try {
    		   Class.forName("oracle.jdbc.driver.OracleDriver");
    		   con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "system", "654321");
		      } catch (Exception e) {
			     e.printStackTrace();
		    }
    	   return con;
         }
       public static void main(String[] args) {
		System.out.println(DBUtil.getconnection());
	}
      }

实体类

package com.entity;

public class Users {
	private int id;

	private String userName;

	private String userPass;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getUserName() {
		return userName;
	}

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

	public String getUserPass() {
		return userPass;
	}

	public void setUserPass(String userPass) {
		this.userPass = userPass;
	}
}
差不多就是这样没有按照顺序排列.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值