`

maven+ssi对oracle实现增删改查(二)

阅读更多
1.index.jsp访问项目默认页面
<%@ 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=UTF-8">
<title>Insert title here</title>
	<script type="text/javascript">  
    var link;  
    function doLink(link) {  
        document.getElementById("myform").action = link;  
        document.getElementById("myform").submit();  
    }  
	</script> 
</head>
<body>
	<form id="myform" action="login" method="post">  
    <input type="button" name="b2" value="注册"  
        onClick="window.open('register.jsp','new','height=250,width=400,top=100,left=400')" />     
      
    <input type="button" name="b1" value="用户管理"  
        onClick="doLink('queryall')" />
    <br> 
    username:<input type="text" name="nuser" />  
    <br>  
    password:<input type="password" name="password" />  
    <br>  
    <input type="submit" name="sub" value="登录" />      
    <input type="reset" name="reset" value="重置" />  
</form> 
</body>
</html>

2.主页上“注册”按钮的页面文件
  <%@ 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=UTF-8">
<title>注册页面</title>
</head>
<body>
	<form action="register" method="post" id="myform">
		用户名:
		<input type="text" name="nuser" id="nuserid"><br/>
		密      码:
		<input type="password" name="password"  ><br>
		<input type="submit" value="注册" >
	</form>
</body>
</html>

3. com.action 的UserManagerAction.java
  import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.service.IUserManager;
import com.vo.User_SSI;

public class UserManagerAction extends ActionSupport {  

	private static final long serialVersionUID = 1L;
	private String nuser;  
    private String password; 
	
    private IUserManager managerService;  
          
    public String queryall() {  
        List<User_SSI> list = managerService.queryall();  
        HttpServletRequest request = ServletActionContext.getRequest();  
        request.setAttribute("nuserList", list);  
        return SUCCESS;
    }  
  
    public String register() {
    	User_SSI user_SSI = new User_SSI();
    	user_SSI.setNuser(nuser);
    	user_SSI.setPassword(password);
        boolean flag = false;  
        System.out.println("测试执行了action中的这句没有!");
        flag = managerService.register(user_SSI);  
  
        return flag==true?SUCCESS:ERROR;  
    }  
      
    public String update() { 
    	User_SSI user_SSI = new User_SSI();
    	
        HttpServletRequest request = ServletActionContext.getRequest();  
        String nuser2 = request.getParameter("nuser"); //获取页面中的值
        String pwd2 = request.getParameter("password");
        this.setNuser(nuser2); //设置到相应的属性中
        this.setPassword(pwd2);
        user_SSI.setNuser(nuser);
    	user_SSI.setPassword(password);
        System.out.println("------------获得需要修改的用户名-----------------"+nuser2);
        boolean flag = false;
        System.out.println("nuser=>"+nuser);
        System.out.println("getusername()=>"+getNuser());
        flag = managerService.update(user_SSI); 
  
      // return flag==true?SUCCESS:ERROR; //这里还不能让程序直接执行更新操作。
        return SUCCESS;
    }  
      
    @SuppressWarnings("unused")
	public String delete() {  
        HttpServletRequest request = ServletActionContext.getRequest();  
        String nuser=request.getParameter("nuser");  
        boolean flag = false;  
        flag = managerService.delete(getNuser());  
  
        return flag==true?SUCCESS:ERROR;  
    }


	public String getNuser() {
		return nuser;
	}

	public void setNuser(String nuser) {
		this.nuser = nuser;
	}

	public static long getSerialversionuid() {
		return serialVersionUID;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public IUserManager getManagerService() {
		return managerService;
	}
	
	public void setManagerService(IUserManager managerService) {
		this.managerService = managerService;
	}
}

4. vo包
 package com.vo;

public class User_SSI {
	private String nuser;
	private String password;
	public User_SSI() {
		super();
	}
	public User_SSI(String nuser, String password) {
		super();
		this.nuser = nuser;
		this.password = password;
	}
	public String getNuser() {
		return nuser;
	}
	public void setNuser(String nuser) {
		this.nuser = nuser;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}

5.service层的代码
  package com.service;

import java.util.List;
import com.vo.User_SSI;
//管理用户的一些方法定义在接口中
public interface IUserManager {
	 public List<User_SSI> queryall() ;
	 public boolean register(User_SSI user_SSI);
	 public boolean update(User_SSI user_SSI);
	 public boolean delete(String username);
}


//接口具体的实现
package com.service;

import java.util.List;

import com.dao.IUserDao;
import com.vo.User_SSI;

public class ManagerService implements IUserManager {  
    private IUserDao userDao;
  
	public List<User_SSI> queryall(){  
        List<User_SSI> l1 = userDao.queryUser();  
        return l1;
    }  
      
    public boolean register(User_SSI user_SSI){  
    	  
    	System.out.println("----------------"+user_SSI.getNuser());
    	System.out.println("----------------"+user_SSI.getPassword());
        userDao.insertUser(user_SSI);//出过一个NullPointer异常,是因为在这里不能新new一个User,要依赖于Spring注入  
        return true;  
    }  
    
    public boolean update(User_SSI user_SSI){  
        return userDao.updateUser(user_SSI);  
    }  
      
    public boolean delete(String username){  
        return userDao.deleteUser(username);  
    }
	public IUserDao getUserDao() {
		return userDao;
	}
	public void setUserDao(IUserDao userDao) {
		this.userDao = userDao;
	}  
} 

6.用户管理中dao层的操作:
  package com.dao;

import java.util.List;

import com.vo.User_SSI;

public interface IUserDao {
	public List<User_SSI> queryUser();
	public boolean deleteUser(String id);
	public void insertUser(User_SSI u);
	public boolean updateUser(User_SSI u);
	public List<User_SSI> queryUserName(String name);
}

  package com.dao;

import java.util.List;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import com.vo.User_SSI;
public class UserDaoImpl extends SqlMapClientDaoSupport implements IUserDao {  
    
    /*这儿不用手动初始化了,等着spring注入完直接用  
    * spring会往service里,注入一个带dataSource和ibatis配置的dao  
    *   
   private static SqlMapClient sqlMap; 
   void init() { 
       try { 
         Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");//借助Reader读入xml配置,注意位置  
         sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); 
         reader.close();  
       } catch (IOException e) { 
         // Fail fast. 
         throw new RuntimeException("Something bad happened while building the SqlMapClient instance." + e, e); 
       } 
     } 
   */   
   @SuppressWarnings("unchecked")
public List<User_SSI> queryUser() {
       List<User_SSI> list = null;  
       list = getSqlMapClientTemplate().queryForList("User.getAllUser");  
       return list;      
   }  
 
   public boolean deleteUser(String id) {  
       int deletedCount = 0;  
       deletedCount = getSqlMapClientTemplate().delete("User.deleteUserById",id);  
         
       return deletedCount>0?true:false;      
   }  
 
   @SuppressWarnings("unused")
public void insertUser(User_SSI u) {  
       int insertCount = 0;  
       getSqlMapClientTemplate().insert("User.insertUser",u);    
   }  
 
   public boolean updateUser(User_SSI u) {  
       int updatedCount = 0;    
       updatedCount = getSqlMapClientTemplate().update("User.updateUser",u);  
       System.out.println("updatedCount=>"+updatedCount);   
       return updatedCount>0?true:false;  
   }  
 
   @SuppressWarnings("unchecked")
public List<User_SSI> queryUserName(String uname) {  
       List<User_SSI> list = null;  
       list = getSqlMapClientTemplate().queryForList("User.selectUserByUsername",uname);
       return list;  
   }  
} 

----------------------------以上用户管理的实现------------------------
7.用户登录action
  package com.action;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.service.ILogin;

public class LoginAction extends ActionSupport {
	/**
	 * test ssi seconde
	 * author cat
	 */
	private static final long serialVersionUID = 1L;
	private String nuser;
	private String password;
	private ILogin loginService;

	public LoginAction() {
	}

	public String login(){
		boolean flag = false;
		//System.out.println("--------action flag返回值----"+flag);
		//System.out.println(getNuser()+"------"+getPassword());
		flag = loginService.login(getNuser(), getPassword());
		//System.out.println("--------action flag返回值 step 2----"+flag);
		if (true == flag) {
			Map<String, Object> attibutes = ActionContext.getContext()
					.getSession();// 记录用户登录信息
			attibutes.put("nuser", nuser);
			attibutes.put("password", password);// 登录session
		}
		return flag == true ? SUCCESS : ERROR;
	}

	public String logOut() {
		Map<String, Object> attibutes = ActionContext.getContext().getSession();
		attibutes.remove("nuser");
		return SUCCESS;
	}

	public String getNuser() {
		return nuser;
	}

	public void setNuser(String nuser) {
		this.nuser = nuser;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public ILogin getLoginService() {
		return loginService;
	}

	public void setLoginService(ILogin loginService) {
		this.loginService = loginService;
	}
}

8.  用户登录service
  package com.service;

public interface ILogin {
	public boolean login(String nuser, String password);
}

package com.service;

import java.util.List;

import com.dao.IUserDao;
import com.vo.User_SSI;

public class LoginService implements ILogin {  
    private IUserDao userDao;  
      
    public boolean login(String nuser, String password) {  
    	User_SSI user = new User_SSI();
        user.setNuser(nuser);  
        user.setPassword(password);  
        List<User_SSI> l = userDao.queryUserName(user.getNuser());  
        if(l==null || l.size()==0)
        	return false;
        for(int i=0;i<l.size();i++){  
            String pwd = l.get(i).getPassword();  
            if(user.getPassword().equals(pwd))   
                return true;
        }  
        return false;  
    }

	public IUserDao getUserDao() {
		return userDao;
	}

	public void setUserDao(IUserDao userDao) {
		this.userDao = userDao;
	}
}

9.一些页面 manager.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!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>
	<script type="text/javascript">  
    var link;  
    function doLink(link) {  
        document.getElementById("myform").action = link;  
        document.getElementById("myform").submit();  
    }  
	</script>
</head>
<body>
	<form action="#" id="myform" name="myform" method="post">  
<table border=1 width="80%">  
    <tr>  
        <th width="39%">用户名</th>  
        <th width="39%">密码</th>  
        <th>修改</th>  
        <th>删除</th>  
    </tr>
    <tr>  
        <s:iterator value="#request.nuser" id="id" status="st">  
            <s:if test="#st.index%2==0||#st.last"> 
             <tr>        
             </s:if>
            <td><s:property value="#id.nuser" /></td>  
            <td><s:property value="#id.password" /></td>  
            <td><input style="width: 40px; height: 40px" name="button"  
                    type="button" class="class1" onMouseOver="this.className='class2'"onMouseOut="this.className='class1'"  
                    onClick="window.open('update.action?nuser=<s:property value="#id.nuser" />&password=<s:property value="#id.password" />','new','height=500,width=800,top=100,left=400')"  
                    value="修改" /></td>
            <td><input style="width: 40px; height: 40px" name="button"  
                    type="button" class="class3" onMouseOver="this.className= 'class4'"onMouseOut="this.className='class3'"  
                    onclick="doLink('delete?nuser=<s:property value="#id.nuser" />')"  
                    value="删除" /></td>
            <s:if test="#st.index%2==0||#st.last">
            <!-- 这里本多一个tr -->       
              </s:if> 
        </s:iterator>  
    </tr>  
</table>  
</form> 
</body>
</html>


update.jsp (其它不是太复杂的页面省略)。
 <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ 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>update_date</title>
	<!-- 根据传参控制调用的Action以及方法 -->  
<script type="text/javascript">  
    var link;
    function doLink(link) { 
        document.getElementById("myform").action = link;  
        document.getElementById("myform").submit();  
    }
</script> 
</head>
<body>
   <h4>
    修改:
   </h4>
   <s:form name="myForm" action="register" method="post">
    <table border="1" cellpadding="1" cellspacing="1" width="480">
      <tr><td>
       	用户名:<input type="text" name="nuser" value="${nuser}"><!-- 这个name需跟action中的一致 -->
                     密     码:<input type="password" name="password" value="${password}">
      <input type="hidden" name="id" value="${dto.id}">
      </td></tr>
    </table><br>
    <input value="提交" type="submit">&nbsp;&nbsp;&nbsp; 
    <input type="reset" value="重 置">&nbsp;&nbsp;&nbsp;    
    <input type="button" value="返 回"
     onclick="window.location.href='javascript:history.go(-1)'">
   </s:form>
</body>
</html>

详细的见附件,里面包括源码和数据库文件。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics