前言
添加联系人就将前端传送过来的数据添加保存到数据库
一、效果展示
1.添加页面
2.输入数据
3.效果展示
二、前端
<form action="${pageContext.request.contextPath}/addUserServlet1" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="name">姓名:</label>
<input type="text" class="form-control" id="name" name="name" placeholder="请输入姓名">
</div>
<div class="form-group">
<label>性别:</label>
<input type="radio" name="gender" value="男" checked="checked"/>男
<input type="radio" name="gender" value="女"/>女
</div>
<div class="form-group">
<label for="age">年龄:</label>
<input type="text" class="form-control" id="age" name="age" placeholder="请输入年龄">
</div>
<div class="form-group">
<label for="address">籍贯:</label>
<select name="address" class="form-control" id="address">
<option value="陕西">陕西</option>
<option value="北京">北京</option>
<option value="上海">上海</option>
</select>
</div>
<div class="form-group">
<label for="qq">QQ:</label>
<input type="text" class="form-control" id="qq" name="qq" placeholder="请输入QQ号码"/>
</div>
<div class="form-group">
<label for="email">Email:</label>
<input type="text" class="form-control" id="email" name="email" placeholder="请输入邮箱地址"/>
</div>
<div class="form-group" style="height: 40px;">
<label for="photo" class="col-sm-1 control-label">头像</label>
<div class="col-sm-11">
<img id="preview" height="100" width="100"
src="${pageContext.request.contextPath}/images/noneface.png" style="padding: 2px;border: 1px #e6e6e6 solid" />
<input class="col-sm-10 col-sm-offset-2" type="file" name="photo" οnchange="javascript:setImgView('photo','preview');"
id="photo" />
</div>
</div>
<div class="form-group" style="text-align: center">
<input class="btn btn-primary" type="submit" value="提交" />
<input class="btn btn-default" type="reset" value="重置" />
<input class="btn btn-default" type="button" value="返回" />
</div>
</form>
1.这里采用form表单以post请求给后台传送数据
2.action=${pageContext.request.contextPath}/addUserServlet1"是传给哪个servlet来执行请求
3.这里前端是采用bootstrap
三、后端
@WebServlet("/AddUserServlet")
public class AddUserServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置post编码
req.setCharacterEncoding("utf-8");
//设置响应编码
resp.setContentType("text/html;charset=utf-8");
//请求参数
String name = req.getParameter("name");
String gender = req.getParameter("gender");
int age = Integer.parseInt(req.getParameter("age"));
String address = req.getParameter("address");
String qq = req.getParameter("qq");
String email = req.getParameter("email");
//封装
User user=new User(name,gender,age,address,qq,email);
//业务层
UserService userService=new UserServiceImpl();
userService.saveUser(user);
//5.跳转到其他资源 如果数据存在request, 一定使用转发
//如果没有, 推荐使用重定向, 可以转发
resp.sendRedirect(req.getContextPath()+"/index.jsp");
}
}
1.这里继承Httpservlet重写它的get与post方法
由于前端是post请求我们就在post方法中书写代码,当然也可以在get中书写,只不过要在post方法中去调用get方法
2.将前端的数据保存到pojo包下的实体类进行封装
3.调用业务逻辑层书写逻辑代码
UserDao userDao = new UserDaoImpl();
@Override
public boolean saveUser(User user) {
//调用UserDao
int row = userDao.insert(user);
return row>0;
}
本项目是弱业务层,所有逻辑代码就是去调用dao层,将数据保存到数据库
同时返回数据库受影响行数;
4dao层,将数据保存到数据库
public int insert(User user) {
Connection conn = null;
PreparedStatement pstm = null;
try {
//1.获取连接
conn = JdbcUtil.getConnection();
//2.编写sql语句
String sql = "INSERT INTO `tb_emp` (" +
" `name`," +
" `gender`," +
" `age`," +
" `address`," +
" `qq`," +
" `Email`," +
"`photo`) " +
"VALUES(?,?,?,?,?,?,?)";
//3.创建PreparedStatement
pstm = conn.prepareStatement(sql);
//4.给?赋值
pstm.setString(1, user.getName());
pstm.setString(2, user.getGender());
pstm.setInt(3, user.getAge());
pstm.setString(4, user.getAddress());
pstm.setString(6, user.getEmail());
pstm.setString(5, user.getQQ());
pstm.setString(7,user.getPhoto());
//5.执行之
return pstm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
JdbcUtil.close(null, pstm, conn);
}
return 0;
}
添加用户的基本操作就是这样了