ssm+jquery+html+ajax的登陆注册,删除修改
这是我的web项目的目录结构
目录介绍
config:这里面是我的配饰文件
jdbc.properties是连接数据库的配置文件
spring.xml 是我的spring配置文件,相当于ioc工厂
springmvc 是我的注解配置扫描配置等
配置文件的生成直接上图,不废话
1.spring.xml 也就是applicationContext.xml
2.springmvc.xml
这里我解释一下
<context:component-scan base-package=“com.Meng”></context:component-scan>
这是配置扫描器,根据我上面的目录结构,扫描com.meng下面的类
mvc:annotation-driven</mvc:annotation-driven>这是开启注解
controller类的注解是扫描不到的,需要开启注解
<mvc:resources location="/html/" mapping="/html/**"/>处理静态资源的,固定格式,//之类的跟目录有关
3.mapper.xml
namespace=“com.Meng.dao.DaoMap” 命名空间,指向你的持久层Dao
看到这你们可能会疑问有的带parameterType resultType有的不带,这里有解释:
parameterType 参数类型,跟你的参数类型想匹配 根据我上面的接口可以看出是 map
resultType 返回结果,也就是返回值类型,你需要什么样的返回结果型就给什么
增删查改:增删改是没有返回值类型的,想想看?增删改是一种操作,所以没有!
查询是有返回结果的,因为查出数据要显示的
语句就是一些固定格式
4.web.xml
这里有个知识点 DispatcherServlet这是Springmvc的核心也就是前端控制器,也可以称为前端路由接口
/ 级别拦截,可以转到DispatcherServlet中
上代码
//注册
public int insert(Map map);
//登录
public List<Map> login(Map map);
//首页
public List<Map> show();
//删除
public int shanchu(Map map);
//修改
public int xiugai(Map map); Dao持久层接口的方法
@Service(“SService”) //
public class ServiceImp implements SService{
@Autowired
DaoMap dao;
//注册
@Override
public int insert(Map map) {
// TODO Auto-generated method stub
return dao.insert(map);
}
public ServiceImp() {
System.out.println("ServiceImp---构造");
}
//登录
@Override
public Object login(Map map) {
// TODO Auto-generated method stub
return dao.login(map).size()!=0?"success":"shibai";
}
//显示首页
@Override
public Object show() {
// TODO Auto-generated method stub
return dao.show();
}
//删除
@Override
public Object shanchu(Map map) {
// TODO Auto-generated method stub
return dao.shanchu(map)!=0?"success":"shibai";
}
//修改
@Override
public Object xiugai(Map map) {
// TODO Auto-generated method stub
return dao.xiugai(map)!=0?"success":"shibai";
}
}
这里是业务层的接口实现
在这里我直接判断了他们方法的状态,可以根据判断进行成功或失败跳转 ajax
@service 意为 这是业务层
//注册
public int insert(Map map);
//登录
public Object login(Map map);
//首页
public Object show();
//删除
public Object shanchu(Map map);
//修改
public Object xiugai(Map map);
业务层的接口
下面就是控制层controller
@Controller
@Scope(“prototype”)
@RequestMapping(“controller”)
public class CController {
@Autowired
SService service;
@RequestMapping("/login")
@ResponseBody
public String login(@RequestParam Map map) {
Object Mname = map.get(“Mname”);
Object Mpassword = map.get(“Mpassword”);
System.out.println(“账号密码为:”+Mname+Mpassword);
Object login = service.login(map);
System.out.println(login);
return login.toString();
}
@RequestMapping("/in")
@ResponseBody
public String insert(@RequestParam Map<String,String> map,HttpServletRequest request) {
System.out.println("走到了注册");
String Mname = request.getParameter("Mname");
String Mpassword = request.getParameter("Mpassword");
map.put("Mname", Mname);
map.put("Mpassword", Mpassword);
int i=service.insert(map);
if(i!=0) {
System.out.println("注册成功");
return "success";
}else {
return "shibai";
}
}
@RequestMapping("/sho")
@ResponseBody
public String show(@RequestParam Map map){
Object list = service.show();
String jsonString = JSON.toJSONString(list);
System.out.println(jsonString);
return jsonString;
}
//修改
@RequestMapping("/xiugai")
@ResponseBody
public String xiugai(@RequestParam Map map) {
Object id = map.get("id");
System.out.println("修改的ID:"+id);
Object xiugai = service.xiugai(map);
System.out.println("修改:"+xiugai);
return xiugai.toString();
}
//删除
@RequestMapping("/shanchu")
@ResponseBody
public String shanchu(@RequestParam Map map) {
Object id = map.get("id");
System.out.println("要删除的id:"+id);
Object shanchu = service.shanchu(map);
System.out.println("删除:"+shanchu);
return shanchu.toString();
}
public CController() {
System.out.println("进入到了controller");
}
}
一些注解解释:
@controller:含义为这是控制层
@scope(“prototype”):spring中bean的scope属性,有如下5种类型:
/singleton 表示在spring容器中的单例,通过spring容器获得该bean时总是返回唯一的实例
prototype表示每次获得bean都会生成一个新的对象
request表示在一次http请求内有效(只适用于web应用)
session表示在一个用户会话内有效(只适用于web应用)
globalSession表示在全局会话内有效(只适用于web应用)/
@RequestMapping:指定url路径
@Autowired自动装载
@ResponseBody可以将java对象转为json格式的数据
@RequestParam 主要用于将请求参数区域的数据映射到控制层方法的参数上
下面是页面ajax的显示
login.html
这里采用的是jquery方式的ajax,(常用)
data:$("#asd").serialize(), 意思为表单提交#asd是和form的id对应的
url:路径
type:提交方式
datatype:提交类型
判断
zhuce.html
index.html
jquary join 将一个数组按照join的参数连接起来,这里用的是空格
jquery append 向每个匹配的元素内部追加内容
push对数组进行操作
eval函数使得类型不变