/*
Navicat MySQL Data Transfer
Source Server : local
Source Server Version : 50627
Source Host : localhost:3306
Source Database : myweb
Target Server Type : MYSQL
Target Server Version : 50627
File Encoding : 65001
Date: 2019-06-03 09:59:29
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`pwd` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'zq', '222');
INSERT INTO `user` VALUES ('2', 'qq', '222');
INSERT INTO `user` VALUES ('4', 'admin', '123');
-- ----------------------------
-- Procedure structure for updatePass
-- ----------------------------
DROP PROCEDURE IF EXISTS `updatePass`;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `updatePass`(
in p_pwd varchar(50),
in p_name varchar(50),out returnVal varchar(50))
begin
update user set pwd = p_pwd where username = p_name;
set returnVal = '你调用成功了哈哈';
end
;;
DELIMITER ;
上述代码为使用数据库,进行增删改查操作。
除此之外,我们还可利用Java对代码进行详细的设计。例如:
package com.zq.controller;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONObject;
import com.zq.dao.UserDao;
import com.zq.dao.UserDaoImpl;
import com.zq.model.User;
//注解:代替一些配置文件的配置 @WebServlet给前台jsp提供一个访问地址
//http://localhost:8088/MyWeb/user
@WebServlet("/user")
public class UserServlet extends HttpServlet {
//因为下面每个操作都会实例化这个类,所以写成成员变量
UserDao userDao = new UserDaoImpl();
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//业务逻辑代码
System.out.println("进来了");
//1、获取从前台或从浏览器地址传进来的参数
//HttpServletRequest 里面存有前台传来的参数;可以往前台页面上传数据;执行页面的跳转serlvet类里面跳到某个页面
//HttpServletResponse 主要有个作用可以直接返回数据,不需要跟着页面传输数据
String action = req.getParameter("action");
//null.equals
//http://localhost:8088/MyWeb/user?action=toLogin&username=zq&pwd=123
if(null!=action && action.equals("toLogin")){//从系统上的注销操作,跳转到登陆页面
//跳到页面时,想传递一个数据;第一个参数放传递数据变了的名字,第二个参数传递的数据的值
req.setAttribute("msg", "今天天气真好啊");
//也可以传任何对象Object
Map<String,String> map =new HashMap<String,String>();
map.put("name", "zq");
map.put("age", "22");
req.setAttribute("map", map);
//requst跳转到某个页面代码
req.getRequestDispatcher("index.jsp").forward(req, resp);
}else if(action.equals("del")){
//页面保持不动的情况,向后台发一请求,ajax请求,局部刷新,页面不动;
//如果是<a>超链接的跳转,都是直接整个页面都刷新、跳转了,那种不是ajax请求
//ajax请求返回前台的只是一个数据结果,不需要跳转页面
Integer id = Integer.parseInt(req.getParameter("id"));//默认得到String,强制转换类型
boolean isOk = userDao.del(id);
//ajax请求来的,需要只返回数据,不跳转页面
resp.setContentType("text/html;charset=utf-8");//设置页面显示的数据是中文编码方式,不然会乱码
PrintWriter out = resp.getWriter();
out.print(isOk?"删除成功":"删除失败");
out.flush();
out.close();
}else if(action.equals("findById")){
Integer id = Integer.parseInt(req.getParameter("id"));//默认得到String,强制转换类型
User user = userDao.findById(id);
//user返回到前台,ajax获取到以后,放到编辑页面的具体文本框里
//user对象是java的类,js没有类这个类型,user转成json格式
JSONObject userJson = new JSONObject(user);
//ajax请求来的,需要只返回数据,不跳转页面
resp.setContentType("text/html;charset=utf-8");//设置页面显示的数据是中文编码方式,不然会乱码
PrintWriter out = resp.getWriter();
out.print(userJson);
out.flush();
out.close();
}else if(action.equals("save")){
Integer id = Integer.parseInt(req.getParameter("id"));//默认得到String,强制转换类型
String username = req.getParameter("username");
String pwd = req.getParameter("pwd");
User user = new User(id,username,pwd);
boolean isOk = false;
//做个判断,判断是新增还是修改
if(id==0){//新增
isOk = userDao.add(user);
}else{
isOk = userDao.update(user);
}
//ajax请求来的,需要只返回数据,不跳转页面
resp.setContentType("text/html;charset=utf-8");//设置页面显示的数据是中文编码方式,不然会乱码
PrintWriter out = resp.getWriter();
out.print(isOk);
out.flush();
out.close();
}else if(action.equals("list")){//如果是登陆操作
//跳转到user.jsp那个页面上,并且展示出来页面的列表数据(user表里面那3条数据)
//1、先去数据库查询user表里的所有数据
List<User> list = userDao.list();
//2、将查询出的结果返回到jsp页面
req.setAttribute("list", list);
//3、跳转到具体jsp页面==user.jsp
req.getRequestDispatcher("user.jsp").forward(req, resp);
}else if(action.equals("login")){//如果是登陆操作
String username = req.getParameter("username");
String pwd = req.getParameter("pwd");
//改成调用userDao里面login判断是否登陆成功
boolean isLogin = userDao.login(username, pwd);
if(isLogin){
//跳转到user.jsp那个页面上,并且展示出来页面的列表数据(user表里面那3条数据)
//1、先去数据库查询user表里的所有数据
List<User> list = userDao.list();
//2、将查询出的结果返回到jsp页面
req.setAttribute("list", list);
//3、跳转到具体jsp页面==user.jsp
req.getRequestDispatcher("user.jsp").forward(req, resp);
}else{
//跳回到登陆页面,并且告诉登录那个人,你用户名或密码输错了
req.setAttribute("msg", "您的用户名或密码输入错误");
req.getRequestDispatcher("index.jsp").forward(req, resp);
}
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("调用doPost了");
doGet(req, resp);
}
}