dao层方法
package com.dao;
import java.util.List;
import com.pojo.Person;
public interface PersonMapper {
public List<Person> selectPersonByUserId(Integer wid);
public Person selectById(Integer id);
public void insert(Person person);
public void delete(Integer id);
public void update(Person person);
}
public interface ShoujiMapper {
public Shouji selectone(String name);
public void insert(Shouji shouji);
public void delete(Integer id);
public void update(Shouji shouji);
}
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="com.bawei.PersonMapper">
<select id="selectById" parameterType="int" resultType="person">
select * from person where id=#{id}
</select>
<insert id="insert" parameterType="person">
insert into person(name,tel,email,address,wid)
value(#{name},#{tel},#{email},#{address},#{wid})
</insert>
<delete id="delete" parameterType="int">
delete from person where id=#{id}
</delete>
<update id="update" parameterType="person">
update person set name=#{name},tel=#{tel},
email=#{email},address=#{address} where id=#{id}
</update>
<select id="selectPersonByUserId" parameterType="int" resultType="person">
select * from person where wid=#{wid}
</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="com.dao.ShoujiMapper">
<select id="selectone" parameterType="shouji" resultType="shouji">
select * from shouji where name=#{name}
</select>
<insert id="insert" parameterType="shouji">
insert into shouji(name,password,email)
value(#{name},#{password},#{email})
</insert>
</mapper>
Test测试类
package com.bawei.test;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/applicationContext.xml")
public class TestMapper {
@Autowired
private PersonMapper pm;
@Autowired
private ShoujiMapper sm;
@Test
public void test1(){
Person p=new Person();
p.setAddress("北京海淀");
p.setEmail("1459987@qq.com");
p.setName("嘎嘎嘎");
p.setTel("13525576689");
p.setWid(2);
pm.insert(p);
}
@Test
public void test5(){
List<Person> list = pm.selectPersonByUserId(1);
for (Person person : list) {
System.out.println(person);
}
}
@Test
public void selectAll(){
Shouji list = sm.selectone("张三");
System.out.println(list);
}
@Test
public void insertuser(){
Shouji s=new Shouji();
s.setName("qqq");
s.setEmail("1459987@qq.com");
s.setPassword("456");
sm.insert(s);
}
}
service类
import java.util.List;
public interface PersonService {
public void addPerson(Person person);
public void removePerson(Integer id);
public void changePerson(Person person);
public Person queryById(Integer id);
public List<Person> queryPersonByUserId(Integer id);
}
public interface ShoujiService {
public Shouji login(Shouji shouji);
public void register(Shouji shouji);
public boolean isExist(String name);
Impl实现类
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
public class ShoujiServiceImpl implements ShoujiService{
@Autowired
private ShoujiMapper sm;
@Override
public Shouji login(Shouji shouji) {
Shouji user2 = sm.selectone(shouji.getName());
if(user2!=null && user2.getPassword().equals(shouji.getPassword())){
return user2;
}else{
throw new RuntimeException("用户名或密码错误!");
}
}
@Override
public void register(Shouji shouji) {
// TODO Auto-generated method stub
sm.insert(shouji);
}
@Override
public boolean isExist(String name) {
if(sm.selectone(name)!=null){
return true;
}
return false;
}
}
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
public class PersonServiceImpl implements PersonService {
@Autowired
private PersonMapper pm;
@Override
public void addPerson(Person person) {
pm.insert(person);
}
@Override
public void removePerson(Integer id) {
pm.delete(id);
}
@Override
public void changePerson(Person person) {
pm.update(person);
}
@Override
public Person queryById(Integer id) {
return pm.selectById(id);
}
@Override
public List<Person> queryPersonByUserId(Integer id) {
return pm.selectPersonByUserId(id);
}
}
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;
@Controller
@RequestMapping("/person")
public class PersonController {
@Autowired
private PersonService ps;
@RequestMapping("/queryAll")
public String queryAll(HttpSession session,Model model){
Shouji user=(Shouji)session.getAttribute("user");
List<Person> list = ps.queryPersonByUserId(user.getId());
model.addAttribute("list",list);
return "personList";
}
}
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("user")
public class ShoujiController {
@Autowired
private ShoujiService service;
@RequestMapping("login")
@ResponseBody
public String login(Shouji shouji,HttpSession session){
try {
shouji = service.login(shouji);
session.setAttribute("user", shouji);
return "ok";
} catch (Exception e) {
return "error";
}
}
@RequestMapping("register")
@ResponseBody
public String register(Shouji shouji){
try {
service.register(shouji);
return "ok";
} catch (Exception e) {
return "error";
}
}
@RequestMapping("isExist")
@ResponseBody
public String isExist(Shouji shouji){
if(service.isExist(shouji.getName())){
return "error";
}else{
return "ok";
}
}
}
拦截器的包
interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class MustLoginInterceptor implements HandlerInterceptor {
@Override
public void afterCompletion(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
// TODO Auto-generated method stub
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2, ModelAndView arg3) throws Exception {
// TODO Auto-generated method stub
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object arg2) throws Exception {
// TODO Auto-generated method stub
HttpSession session = request.getSession();
Shouji user=(Shouji)session.getAttribute("user");
if(user==null){
response.sendRedirect(request.getContextPath()+"/login.jsp");
return false;
}else{
return true;
}
}
}
登录JSP
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function(){
$("#name").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",$("form").serialize(),
function(d){
if(d=="ok"){
location.href="${pageContext.request.contextPath }/person/queryAll";
}else{
$("span").empty();
$("#error").text("用户名或密码错误!");
}
},"json"
);
}else{
alert("请填写登录信息!");
}
});
});
</script>
</head>
<body>
<center><h1>用户登录</h1></center><br/><br/>
<div><font color="red"><span id="error"></span></font></div><br/>
<form>
用户名:<input type="text" name="name" id="name"/><br/>
密码:<input type="password" name="password" id="password"/><br/>
<input type="button" value="登录" id="login"/><br/><br/>
<a href="register.jsp"><span>还没注册?请注册!</span></a>
</form>
</body>
</html>
注册的JSP
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<base href="<%=basePath%>">
<head>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function(){
$("#name").blur(function(){
$("#sname").empty();
var name=$(this).val();
if(name==null || name==""){
$("#name").after("<span id='sname'><font color='red'>用户名不能为空!</font></span>")
name_flag=false;
}else{
$.post("${pageContext.request.contextPath }/user/isExist","name="+name,
function(d){
if(d=="error"){
$("#name").after("<span id='sname'><font color='red'>用户名已经存在!</font></span>")
name_flag=false;
}else{
name_flag=true;
}
},"json"
);
}
});
$("#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;
}
});
$("#email").blur(function(){
var email=$(this).val();
$("#semail").empty();
if(email==null || email==""){
$(this).after("<span id='semail'><font color='red'>邮箱不能为空!</font></span>");
email_flag=false;
}else{
email_flag=true;
}
});
$("#register").click(function(){
if(name_flag&&password_flag&&email_flag){
$.post("${pageContext.request.contextPath }/user/register",$("form").serialize(),
function(d){
if(d=="ok"){
location.href="${pageContext.request.contextPath }/registerOk.jsp";
}else{
alert("注册失败!");
location.reload();
}
},"json"
);
}else{
alert("请填写注册信息!");
}
});
});
</script>
</head>
<body>
<h1>用户注册</h1><br/><br/>
<div><font color="red"><span id="error"></span></font></div><br/>
<form>
用户名:<input type="text" name="name" id="name"/><br/>
密码:<input type="password" name="password" id="password"/><br/>
邮箱:<input type="email" name="email" id="email"/><br/>
<input type="button" value="注册" id="register"/>
</form>
</body>
</html>
三秒跳转
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<base href="<%=basePath%>">
<head>
<script type="text/javascript" src="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>
</html>
联系人列表查询
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<base href="<%=basePath%>">
<head>
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function(){
$("#ch").click(function(){
$("input[type='checkbox']:gt(0)").attr("checked",this.checked);
});
$(".delete").click(function(){
window.confirm("确定删除?");
});
$("#betchDelete").click(function(){
var array=new Array();
$("input[type='checkbox']:gt(0):checked").each(function(){
array.push($(this).parent().next().text());
});
if(array.length!=0){
alert(array);
location.reload();
//$.post("url","array="+array,function(){},"json");
}else{
alert("请选择要删除的数据");
}
});
});
</script>
</head>
<center>
<body>
<h1>通讯信息列表</h1><br/><br/>
按用户名查询:<input type="text" name="name"/> 按电话号码查询:<input type="text" name="phoneNumber"/>
<input type="button" value="查询" id="query"/>
<input type="button" value="批量删除" id="betchDelete"/>
<br/><br/>
<table border="1" width="60%">
<tr>
<th><input type="checkbox" id="ch"></th>
<th>id</th>
<th>姓名</th>
<th>电话号码</th>
<th>地址</th>
<th>邮箱</th>
<th>数据操作</th>
</tr>
<c:forEach items="${requestScope.list }" var="a">
<tr>
<td align="center"><input type="checkbox"></td>
<td align="center">${a.id }</td>
<td align="center">${a.name }</td>
<td align="center">${a.tel }</td>
<td align="center">${a.address }</td>
<td align="center">${a.email }</td>
<td align="center">
<input type="button" value="删除" class="delete">
<input type="button" value="修改">
</td>
</tr>
</c:forEach>
</table><br/><br/><br/>
每页显示:<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>
</center>
</html>