您的位置:首页 > 其它

ssm整合开发(接近实际项目)

2017-06-29 21:25 225 查看
要求:

写一个通讯录,要求每个用户通过注册登录后可以查询自己通讯录的联系人

有两张表用户表t_user,表中字段id,name,password,email

联系人t_person表,表中字段id,name,phoneNumber,email,address

1.用户登录注册,注册成功进行提示三秒后跳转到登录页面,登录成功后进入联系人展示页面

用户注册进行非空校验,以及用户名是否已经存在校验,

如果用户登录失败提示用户名或密码错误

2.如果用户没有登录就进行查询联系人信息则强制用户登录

3.用户进入联系人查询页面可以根据员工的姓名进行模糊查询,

可以根据员工的电话号码进行模糊查询

4.用户可以添加联系人,添加信息进行JS非空校验,添加联系人成功后提示用户添加成功

5.用户可以对联系人信息进行单个删除或批量删除,删除时提示用户是否确定删



------------pojo类------------------

public class User {
private Integer id;
private String username;
private String password;
private Date birthday;
private String gender;
private String email;
private List<Person> list;

}

public class Person {
private Integer pid;
private String pname;
private String phone;
private Date pbirthday;
private String address;
private String pemail;
private Integer uid;

}



userok.jsp

 <head>

    <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>

  <script type="text/javascript">

  window.setTimeout(function(){

  location.href="${pageContext.request.contextPath}/login.jsp";

  },3000);

  </script>

  </head>

  

  <body>

    <center><h4>注册成功,三秒钟后跳转到登录页面...</h4></center>

  </body>

----------reg.jsp-----------

 <head>

   <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>

  <script type="text/javascript">

  $(function(){

  var username=false;

  var password=false;

  var email=false;

  var d=false;

  $("#username").blur(function(){

    $("span").empty();

    

    if($(this).val()==null  || $(this).val()==""){

  var span="<span id='a'><font color='red'>用户名不能为空</font></span>";

  $(this).after(span);

  username=false;

  }else{

     $.post("${pageContext.request.contextPath }/user/isExist.do",
 {username:$("#username").val()},
       function(data){
       

             if (data == "error") {
    var span="<span id='d' ><font color='red'>用户名重复</font></span>";

                          $("#username").after(span);
         
      } else {
         
var span="<span id='e'><font color='red'>用户名可以使用</font></span>";

                          $("#username").after(span);
      
                  }
                 
}
    ,"json");

  username=true;

  }

  });

  

   $("#password").blur(function(){

    $("span").empty();

    if($(this).val().length<3){

  var span="<span id='b'>密码不能为空</span>";

  $(this).after(span);

  password=false;

  }else{

  password=true;

  }

  });

 

 

 $(":input[name='email']").blur(function(){

   var email1 = $(this).val();

   $("span").empty();

   var reg = /\w+[@]{1}\w+[.]\w+/;

   if(reg.test(email1)){

 email=true;

   }else{

      var span="<span id='w'>email格式不正确</span>";

  $(this).after(span);

   email=false;

   }

  });

  

  

  $("#code").blur(function(){

 $.post("${pageContext.request.contextPath}/user/test.do",{"code":$("#code").val()},function(data){

 if(data=="ok"){

 alert(data);

 d=true;

 }else{

 alert(data);

 d=false;

 }

 

 

 },"json");

  });

  $("img").click(function(){

  $(this).attr("src","${pageContext.request.contextPath }/user/ke.do?date="+new Date());

  

  });

   $("#a").click(function(){

  $("img").prop("src","${pageContext.request.contextPath }/user/ke.do?date="+new Date());

  

  });

  

  $("#chen").click(function (){
 if(password && username && email  && d){  
/*  $("form").submit(); */
$.post("${pageContext.request.contextPath }/user/insertUsers.do",
  $("form").serialize(),
       function(data){
       
console.log(data);
             if (data == "ok") {
           alert("成功");
           location.href = "${pageContext.request.contextPath }/userok.jsp";
      } else {
         
   alert("失败");
                   location.reload();}
                 
}
    ,"json"); 
  }else{
    alert("请正确输入信息");

 }

  });

   

  });

  </script>

  </head>

  <body>

 <form >

 username:<input type="text" name="username" id="username"  /><br>

 password:<input type="password" name="password" id="password"  /><br>

 birthday:<input type="date" name="birthday" id="birthday"  /><br>

 gender:<input type="radio" name="gender" value="男"  />男

 <input type="radio" id="gender" name="gender" value="女"   />女<br>

 email:<input type="text" name="email" id="email"  /><br>

 

 验证:<input type="text" id="code" name="" /><img  src="${pageContext.request.contextPath }/user/ke.do" width="100px" height="50px"/>

 

 <a href="javaScript:" id="a">看不清?换一张</a><br>

 <br>

 

 <input type="button" id="chen" value="reg"  />

 

 

 </form>

  </body>







-----------insert.jsp------------------

<form action="${pageConte
1089b
xt.request.contextPath }/person/insertPerson.do">

 pname:<input type="text" name="pname"  /><br>

 phone:<input type="phone" name="phone"  /><br>

 pbirthday:<input type="date" name="pbirthday"  /><br>

address:<input type="text" name="address"  /><br>

 pemail:<input type="text" name="pemail" id="email"  /><br>

 <input  type="text" name="uid" value="${user.id }" />

 <br>

 <input type="submit" value="添加"  />

 </form>

--------------------------list.jsp-------------------------

 <head>

   <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>

  <script type="text/javascript">

  $(function(){

   

  $("#a").click(function(){

 

  $(":checkbox[name='items']").attr("checked",this.checked);

  });

 /*  $(":checkbox[name='items']").click(function(){

  $("#a").attr("checked",$(":checkbox[name='items']").length==$(":checkbox[name='items']:checked").length);

  }); */

  

  $("#b").click(function(){

  var aa=new Array();

  $(":checkbox[name='items']:checked").each(function(){

  aa.push($(this).val());

  });

  location.href="${pageContext.request.contextPath}/user/daochu.do?ids="+aa;

  

  });

  

  $(".delete").click(function(){

    window.confirm("确定删除?");

    });

  

  

  $("#c").click(function(){

  var aa=new Array();

  $(":checkbox[name='items']:checked").each(function(){

  aa.push($(this).val());

  });

  if(aa.length!=0){

    location.href="${pageContext.request.contextPath}/person/deletePersons.do?pids="+aa;

  

    //$.post("url","array="+array,function(){},"json");

    }else{

    alert("请选择要删除的数据");

    }

  

  });

  

  

  

  });

  

  

  </script>

  

  </head>

  

  <body>

 

 

<input type="button" value="导出" id="b"  />

<input type="button" value="删除" id="c"  />

<br><br>

<form action="${pageContext.request.contextPath }/person/selectLike.do">

pname:<input type="text" name="pname"  /><br>

 phone:<input type="text" name="phone" /><br>

<input type="text"  name="uid"   value="${user.id }" /><br>

<input type="submit" value="搜索"  /><br>

</form>

<table border="2">

<tr>

<td><input  type="checkbox" id="a"  /></td>

<td>pid</td>

<td>pname</td>

<td>phone</td>

<td>address</td>

<td>pemail</td>

<td>pbirthday</td>

<td>操作</td>

</tr>

<c:forEach items="${list }" var="one">

<tr>

<td><input  type="checkbox" name="items" value="${one.pid }" /></td>

<td>${one.pid }</td>

<td>${one.pname }</td>

<td>${one.phone }</td>

<td>${one.address }</td>

<td>${one.pemail }</td>

<td><f:formatDate value="${one.pbirthday}" pattern="yyyy-MM-dd" /></td>

<td><input type="button" value="删除" class="delete" />  <a href="${pageContext.request.contextPath }/insert.jsp">点击添加</a> 

</td>

</tr>

</c:forEach>

</table>

每页显示:<select>
<option>4</option>
<option>6</option>
<option>8</option>
<option>10</option>
</select>  
<a href="" >首页</a>  
<a href="" >1</a>  
<a href="" >2</a>  
<a href="" >3</a>  
<a href="" >4</a>  
<a href="" >5</a>  
<a href="" >末页</a>  
跳转到:<select>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>页

  </body>




---------------------login.jsp-------------

  <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>

    <script type="text/javascript">

    

   

   $(function(){

  $("#username").blur(function(){

  var name=$(this).val();

  $("#sname").empty();

  if(name==null || name==""){

  $(this).after("<span id='sname'><font color='red'>用户名不能为空!</font></span>");

  name_flag=false;

  }else{

  name_flag=true;

  }

  });

  $("#password").blur(function(){

  var password=$(this).val();

  $("#spassword").empty();

  if(password==null || password==""){

  $(this).after("<span id='spassword'><font color='red'>密码不能为空!</font></span>");

  password_flag=false;

  }else{

  password_flag=true;

  }

  });

    $("#login").click(function(){

    if(name_flag&&password_flag){

    $.post("${pageContext.request.contextPath }/user/login.do",$("form").serialize(),
    function(d){
    if(d=="ok"){
    location.href="${pageContext.request.contextPath }/person/selectByUsersId.do";
    }else{
    $("span").empty();
    $("#error").text("用户名或密码错误!");
    }
    },"json"

    );

    }else{

    alert("请填写登录信息!");

    }

   

    });

   });

  </script>

 

  </head>

  

  <body>

 

 <form action="${pageContext.request.contextPath }/user/login.do">

 username:<input type="text" name="username" id="username"  /><br>

 password:<input type="password" name="password" id="password"  /><br>

<input type="button" value="登录" id="login"/><br/><br/>
<a href="reg.jsp"><span>还没注册?请注册!</span></a>

 </form>

  </body>

</html>


--------------------Mapper接口---------------------------------------------

 /**

 * 

 */

package cn.itcast.dao;

import java.util.List;

import cn.itcast.pojo.Person;

public interface PersonMapper {
public Person selectById(int pid);

public List<Person> selectByUsersId(int uid);

public List<Person> selectLike(Person p);

public void insertPerson(Person p);

public void deletePersons(String pids);

public Person update(Person p);

}


---------

/**

 * 

 */

package cn.itcast.dao;

import java.util.List;

import cn.itcast.pojo.Person;

import cn.itcast.pojo.User;

public interface UserMapper {

public void insertUsers(User user);

public User selectByName(String username);

    

}


=================mapper.xml====================================

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="cn.itcast.dao.PersonMapper">

<insert id="insertPerson" parameterType="person">
insert into person(pname,phone,pbirthday,address,pemail,uid)values(#{pname},#{phone},#{pbirthday},#{address},#{pemail},#{uid});
</insert>
<update id="update" parameterType="person">
update person set pname=#{pname},
phone=#{phone},pbirthday=#{pbirthday},address=#{address},pemail=#{pemail}
where  pid=#{pid}
</update>
<select id="selectLike" parameterType="person" resultType="person">

select * from person
<where>
uid=#{uid}
<if test="pname!='' and  pname!=null">
and pname=#{pname}
</if>
<if test="phone!='' and  phone!=null">
and phone=#{phone}
</if>
</where>
</select>

<delete id="deletePersons" parameterType="person" >
delete from person where pid in  (${value}) 
</delete>
<select id="selectById" parameterType="int" resultType="person">
select * from person where pid=#{pid}
</select>

<select id="selectByUsersId" parameterType="int" resultType="person">
select * from person where uid=#{uid}
</select>

</mapper>

-------------------------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="cn.itcast.dao.UserMapper">

<select id="selectByName" parameterType="String" resultType="User">
select * from user where username=#{username} 
</select>

<insert id="insertUsers" parameterType="User">
insert into user(username,password,birthday,gender,email)values(#{username},#{password},#{birthday},#{gender},#{email});
</insert>

</mapper>

----------------------------------Controller类-----------------------------------------

/**

 * 

 */

package cn.itcast.controller;

import java.util.List;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import cn.itcast.dao.PersonMapper;

import cn.itcast.pojo.Person;

import cn.itcast.pojo.User;

import cn.itcast.service.PersonService;

/** testPerson

 *

 */

@Controller

@RequestMapping("person")

public class TestPerson {

@Autowired
private PersonService service;

@RequestMapping("selectByUsersId")
public String selectByUsersId(HttpSession session,Model model){
User user =(User) session.getAttribute("user");
List<Person> list = service.selectByUsersId(user.getId());
model.addAttribute("list",list);
return "list";
}

@RequestMapping("insertPerson")
public String insertPerson(HttpSession session,Person p){
User user =(User) session.getAttribute("user");
service.insertPerson(p);
return "redirect:/person/selectByUsers.do";
};
@RequestMapping("selectByUsers")
public String selectByUsers(HttpSession session,Model model){
int id = (int)session.getAttribute("uid");
List<Person> list = service.selectByUsersId(id);
model.addAttribute("list",list);
return "list";
}

@RequestMapping("selectById")
public String selectById(HttpSession session,int pid){
Person person = service.selectById(pid);
session.setAttribute("person",person);
return  "update";
};

@RequestMapping("update")
public String update(HttpSession session,Person p){
Person person = service.update(p);

return  "redirect:selectByUsersId.do";
};

@RequestMapping("selectLike")
public String selectLike(Person p,Model  model){
List<Person> list = service.selectLike(p);
model.addAttribute("list",list);
return "list";
};

@RequestMapping("deletePersons")
public String deletePersons(String pids){
service.deletePersons(pids);
return "redirect:selectByUsersId.do";
};

}


-------------------------------------

/**

 * 

 */

package cn.itcast.controller;

import java.io.IOException;

import java.util.List;

import javax.jms.Session;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import com.google.code.kaptcha.servlet.KaptchaExtend;

import cn.itcast.pojo.Person;

import cn.itcast.pojo.User;

import cn.itcast.service.UserService;

@Controller

@RequestMapping("user")

public class TestUsers {

@Autowired
private UserService service;

@Autowired
private KaptchaExtend ke;

@RequestMapping("ke")
public String kaptcha(HttpServletRequest req, HttpServletResponse resp,
HttpSession s) throws ServletException, IOException {
ke.captcha(req, resp);
System.out.println("code:" + s.getAttribute("code"));
return null;
}

@RequestMapping("test")
@ResponseBody
public String test(HttpServletRequest req, HttpServletResponse resp,
HttpSession s, String code) throws ServletException, IOException {
if (s.getAttribute("code").equals(code)) {
return "ok";
}
return "error";
}

@Autowired
private UserService us;

@ResponseBody
@RequestMapping("login")
public String login(User user,HttpSession session){
try {
user = us.login(user);
session.setAttribute("user", user);
return "ok";
} catch (Exception e) {
return "error";
}
}
@RequestMapping("insertUsers")
@ResponseBody
public String insertUsers(User user){
try {
us.insertUsers(user);
return "ok";
} catch (Exception e) {
return "error";
}
}
@RequestMapping("isExist")
@ResponseBody
public String isExist(User user){
if(us.isExist(user.getUsername())){
return "error";
}else{
return "ok";
}
}

}




------------------------------拦截器-----------------------

/**

 * 

 */

package cn.itcast.converter;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

import org.springframework.core.convert.converter.Converter;

public class DateConverter implements Converter<String, Date>{

/* 
*日期类型格式转换器
*/
@Override
public Date convert(String str) {
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date parse = simpleDateFormat.parse(str);
return parse;
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return null;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: