JAVAWEB-MVC案例-新增-修改-配置底层存储源(4)
2018-01-13 10:44
162 查看
一、新增操作
(1)表单参数回显
(2)使用重定向,可以避免表单的重复提交问题
response.sendRedirect("success.jsp");
(3)设置信息到另一个界面
request.setAttribute("message","用户名已经存在,请重新填写");
Object msg =request.getAttribute("message");
(4)新增操作
Customer customer = new Customer(name,address,phone);
customerDAO.save(customer);
二、修改操作
修改流程:
(1)<a href="edit.do?id=<%=customer.getId() %>">UPDATE</a>
获取修改数据的id,并跳转到CustomerServlet中的edit方法
主要代码:
(2)在edit方法中跳转到updatecustomer.jsp,并传入Customer对象。
主要代码:
(3)在updatecustomer.jsp页面进行数据的更改,并进行进入CustomerServlet中进行update方法。
主要代码:
<form action="update.do" method="post">
<input type="hidden" name="id" value="<%= id %>">
<input type="hidden" name="oldName" value="<%= oldName %>">
<table>
<tr>
<td>CustomerName:</td>
<td><input type="text" name="name" value="<%= name%>"/></td>
</tr>
(4)在CustomerServlet中执行update方法,进行数据更新。
三、MVC案例之通过配置切换底层存储源
主体代码:
(1)InitServlet.java
(2)CustomerDAOFactory.java
(1)表单参数回显
(2)使用重定向,可以避免表单的重复提交问题
response.sendRedirect("success.jsp");
(3)设置信息到另一个界面
request.setAttribute("message","用户名已经存在,请重新填写");
Object msg =request.getAttribute("message");
(4)新增操作
Customer customer = new Customer(name,address,phone);
customerDAO.save(customer);
二、修改操作
修改流程:
(1)<a href="edit.do?id=<%=customer.getId() %>">UPDATE</a>
获取修改数据的id,并跳转到CustomerServlet中的edit方法
主要代码:
<td><%= customer.getId() %></td> <td><%= customer.getName() %></td> <td><%= customer.getAddress() %></td> <td><%= customer.getPhone() %></td> <td> <!-- 进行该条数据的更新 --> <a href="edit.do?id=<%=customer.getId() %>">UPDATE</a>
(2)在edit方法中跳转到updatecustomer.jsp,并传入Customer对象。
主要代码:
//获取请求参数 String idStr = request.getParameter("id"); //调用CustomerDAO的customerDAO.get(id)获取和id对应的Customer对象的customer try { //获得id对应的Customer对象 Customer customer = customerDAO.get(Integer.parseInt(idStr)); if(customer != null) { forwardPath = "/updatecustomer.jsp"; //将customer放入request中 request.setAttribute("customer", customer); } } catch (NumberFormatException e) { } //响应updatecustomer.jsp页面:转发 request.getRequestDispatcher(forwardPath).forward(request,response);
(3)在updatecustomer.jsp页面进行数据的更改,并进行进入CustomerServlet中进行update方法。
主要代码:
<form action="update.do" method="post">
<input type="hidden" name="id" value="<%= id %>">
<input type="hidden" name="oldName" value="<%= oldName %>">
<table>
<tr>
<td>CustomerName:</td>
<td><input type="text" name="name" value="<%= name%>"/></td>
</tr>
(4)在CustomerServlet中执行update方法,进行数据更新。
//如果老名字和新名字不同 if(!oldName.equalsIgnoreCase(name)) { //搜索数据库中是否已经包含了新名字的数据 long count = customerDAO.getCountWithName(name); //包含,则返回updatecustomer.jsp,并显示信息 if(count > 0) { request.setAttribute("message", "用户名已经被占用,请重新填写"); request.getRequestDispatcher("/updatecustomer.jsp").forward(request, response); return; } } //老名字和新名字相同,都会进行更新 Customer customer = new Customer(name,address,phone); customer.setId(Integer.parseInt(id)); customerDAO.update(customer); response.sendRedirect("query.do");
三、MVC案例之通过配置切换底层存储源
主体代码:
(1)InitServlet.java
public class InitServlet extends HttpServlet { @Override public void init() throws ServletException { //初始化接口类别为jdbc CustomerDAOFactory.getInstance().setType("jdbc"); //读取switch.properties InputStream in = getServletContext().getResourceAsStream("/WEB-INF/classes/switch.properties"); Properties properties = new Properties(); try { properties.load(in); //获取文件中的接口类型 String type = properties.getProperty("type"); CustomerDAOFactory.getInstance().setType(type); } catch (Exception e) { e.printStackTrace(); } } }
(2)CustomerDAOFactory.java
private java.util.Map<String,CustomerDAO> daos = new HashMap<String,CustomerDAO>(); //工厂的初始化 private CustomerDAOFactory(){ daos.put("jdbc", new CustomerDAOJdbcImpl()); daos.put("xml", new CustomerDAOXMLImpl()); } //单例模式 private static CustomerDAOFactory instance = new CustomerDAOFactory(); public static CustomerDAOFactory getInstance() { return instance; } private static String type = null; //设置接口类别 public void setType(String type) { this.type = type; } //获取接口类别 public CustomerDAO getCustomerDAO() { return daos.get(type); }
相关文章推荐
- SQL存储过程-新增和修改,参数Xml数据类型
- python案例1---修改haproxy的配置文件
- [原创]java WEB学习笔记25:MVC案例完整实践(part 6)---新增操作的设计与实现
- SpringMVC+Apache Shiro+JPA(hibernate)案例教学(一)整合配置
- JavaWeb 通过配置切换底层存储源
- Java利用.property文件存储数据库配置信息,方便修改。
- 如何修改MVC DispatcherServlet配置文件的路径
- SpringMVC+Apache Shiro+JPA(hibernate)案例教学(一)整合配置
- maven 配置: 修改默认的 .m2仓库 默认存储路径.
- JavaWeb项目开发案例精粹-第4章博客网站系统-002辅助类及配置文件
- maven 配置: 修改默认的 .m2仓库 默认存储路径.
- Elasticsearch之重要核心概念(cluster(集群)、shards(分配)、replicas(索引副本)、recovery(据恢复或叫数据重新分布)、gateway(es索引的持久化存储方式)、discovery.zen(es的自动发现节点机制机制)、Transport(内部节点或集群与客户端的交互方式)、settings(修改索引库默认配置)和mappings)
- JavaWeb_12_jdbc_改造MVC案例(登录注册)
- JavaWeb项目(发布)部署到云服务器 环境搭建 域名绑定项目 配置修改server.xml
- Asp.Net2.0新增/修改/删除 配置文件(*.config)节点
- 新增tab页无法获取到数据,原来是URL的rewrite配置文件忘了修改
- JavaWeb项目开发案例精粹-第3章在线考试系统-002配置文件及辅助类
- javaweb工程无需修改配置文件多环境热加载部署,
- springMVC+jpa配置之简单案例
- 对config文件中的配置进行新增修改删除读取操作