iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么实现JavaWeb用户的增删改查
  • 919
分享到

怎么实现JavaWeb用户的增删改查

2023-06-16 09:06:51 919人浏览 安东尼
摘要

本篇内容介绍了“怎么实现javaweb用户的增删改查”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!准备工作后端技术前端技术角色维护-分页实现

本篇内容介绍了“怎么实现javaweb用户的增删改查”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

准备工作

后端技术

怎么实现JavaWeb用户的增删改查

前端技术

怎么实现JavaWeb用户的增删改查

角色维护-分页实现

分页前端功能实现

怎么实现JavaWeb用户的增删改查

创建外部JavaScript源文件,role.js

在页面 role-page.jsp引入role.js文件

<script type="text/javascript" src="script/my-role.js"></script>

初始化全局函数

分页实现初始化全局函数,每页的条数,页码,模糊查询的关键词

//初始化全局变量  function initGlobalVariable() {      window.pageSize = 5; //每页的条数      window.pageNum = 1;  //页码      window.keyWord = ""; //关键词  }

声明分页函数

//给服务器发送请求获取分页数据(pageInfo),并在页面上显示分页效果(主体、页码导航条)  function showPage() {      // 给服务器发送请求获取分页数据:PageInfo      var pageInfo = getPageInfo();      // 在页面上的表格中tbody标签内显示分页的主体数据      generateTableBody(pageInfo);      // 在页面上的表格中tfoot标签内显示分页的页码导航条      initPagination(pageInfo);  }

获取分页数据

function getPageInfo() {      // 以同步请求方式调用$.ajax()函数并获取返回值(返回值包含全部响应数据)      var ajaxResult = $.ajax({          "url": "role/search/by/keyword.action",          "type": "post",          "data": {              "pageNum": (window.pageNum == undefined) ? 1 : window.pageNum,              "pageSize": (window.pageSize == undefined) ? 5 : window.pageSize,              "keyword": (window.keyword == undefined) ? "" : window.keyword          },          "dataType": "JSON",          "async": false    // 为了保证getPageInfo()函数能够在Ajax请求拿到响应后获取PageInfo,需要设置为同步操作      });       // 从全部响应数据中获取JSON格式的响应体数据      var resultEntity = ajaxResult.responseJSON;      // 从响应体数据中获取result,判断当前请求是否成功      var result = resultEntity.result;      // 如果成功获取PageInfo      if (result == "SUCCESS") {          return resultEntity.data;      }      if (result == "FaiLED") {          layer.msg(resultEntity.message);      }      return null;  }

使用PageInfo数据在tbody标签内显示分页数据

function generateTableBody(pageInfo) {      // 执行所有操作前先清空      $("#roleTableBody").empty();   //这个对应页面的 <tbody id="roleTableBody"> </tbody>      // 获取数据集合      var list = pageInfo.list;      // 判断list是否有效      if (list == null || list.length == 0) {          $("#roleTableBody").append("<tr><td colspan='4' style='text-align:center;'>没有查询到数据!</td></tr>");          return;      }      for (var i = 0; i < list.length; i++) {          var role = list[i];          var checkBtn = "<button type='button' class='btn btn-success btn-xs'><i class=' glyphicon glyphicon-check'></i></button>";          var pencilBtn = "<button type='button' id='roleTableBody'  roleid='" + role.id + "' class='btn btn-primary btn-xs  editBtn'><i class=' glyphicon glyphicon-pencil'></i></button>";         var removeBtn = "<button type='button'   roleid='" + role.id + "'  class='btn btn-danger btn-xs  removeBtn'><i class=' glyphicon glyphicon-remove'></i></button>";         var numberTd = "<td>" + (i + 1) + "</td>";          var checkBoxTd = "<td><input class='itemBox' roleid='" + role.id + "' type='checkbox'></td>";          var roleNameTd = "<td>" + role.name + "</td>";          var btnTd = "<td>" + checkBtn + " " + pencilBtn + " " + removeBtn + "</td>";          var tr = "<tr>" + numberTd + checkBoxTd + roleNameTd + btnTd + "</tr>";          // 将前面拼好的html代码追加到#roleTableBody中          $("#roleTableBody").append(tr);      }  }

声明函数封装导航条初始化操作

function initPagination(pageInfo) {      // 声明变量存储分页导航条显示时的属性设置      var paginationProperties = {          num_edge_entries: 3,            //边缘页数          num_display_entries: 5,        //主体页数          callback: pageselectCallback,    //回调函数          items_per_page: window.pageSize,    //每页显示数据数量,就是pageSize          current_page: (window.pageNum - 1),//当前页页码          prev_text: "上一页",            //上一页文本          next_text: "下一页"            //下一页文本      };      // 显示分页导航条 <div id="Pagination" class="pagination"> <!-- 这里显示分页 --> </div>      $("#Pagination").pagination(pageInfo.total, paginationProperties);  }

在每一次点击“上一页”、“下一页”、“页码”时执行这个函数跳转页面

function pageselectCallback(pageIndex, jq) {      // 将全局变量中的pageNum修改为最新值      // pageIndex从0开始,pageNum从1开始      window.pageNum = pageIndex + 1;      // 调用分页函数重新执行分页      showPage();      return false;  }

页面初始化,就是我们点击角色维护页面需要加载的内容

$(function(){          // 调用分页参数初始化方法      initGlobalVariable();      // 执行分页      showPage();  });

关键词查询功能

在点击“查询”按钮后,获取文本框中填写的keyword值,赋值给全局变量keyword,调用showPage()函数即可。

//关键字查询实现          $("#searchBtn").click(function () {              //获取关键字查询的值              var keywordInput = $.trim($("#keywordInput").val());                            window.keyword = keywordInput;              //执行查询操作              showPage();          });

分页后端实现

点击角色维护加载页面数据两种思路:

第一种是我们请求后台把查询到的数据放到Model,前台遍历把数据展示出来。

第二种是我们请求后台把查询到的数据当PageInfo<Role>,然后动态的拼接把数据展示到页面上。(我们采用第二种)

Controller方法的实现

@ResponseBody      @RequestMapping("/role/search/by/keyword")      public ResultEntity<PageInfo<Role>> search(              @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,              @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,              @RequestParam(value = "keyword", defaultValue = "") String keyword) {          // 1.查询得到PageInfo对象          PageInfo<Role> pageInfo = roleService.queryForKeywordWithPage(pageNum, pageSize, keyword);          // 2.封装结果对象返回          return ResultEntity.successWithData(pageInfo);      }

Service方法的实现

public PageInfo<Role> queryForKeywordWithPage(Integer pageNum, Integer pageSize, String keyword) {          // 1.开启分页功能          PageHelper.startPage(pageNum, pageSize);         // 2.执行查询          List<Role> list = roleMapper.selectForKeywordSearch(keyword);          // 3.封装为PageInfo对象          return new PageInfo<Role>(list);      }

Mapper方法的实现

List<Role> selectForKeywordSearch(String keyword);

Mapper.xml

<select id="selectForKeywordSearch" resultMap="BaseResultMap">          SELECT              id,              `name`          FROM              t_role          WHERE              `name` LIKE CONCAT('%', #{keyword}, '%')  </select>

角色维护-全选功能

功能在页面的位置

怎么实现JavaWeb用户的增删改查

具体实现

标记

role-page.jsp

<thead>      <tr>          <th width="30">#</th>          <th width="30"><input id="summaryBox" type="checkbox"></th>          <th>名称</th>          <th width="100">操作</th>      </tr>  </thead>

my-role.js

for (var i = 0; i < list.length; i++) {          //省略          var checkBoxTd = "<td><input class='itemBox' roleid='" + role.id + "' type='checkbox'></td>";         //省略  }

给summaryBox绑定单击响应函数 

//全选/全不选功能实现   $("#summaryBox").click(function () {              //获取当前的选中状态              var currentStatus = this.checked;              $(".itemBox").prop("checked", currentStatus);   });

角色维护-批量删除

准备模态框

先准备模态框的HTML标签,include-modal-role-confirm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"           pageEncoding="UTF-8"%>  <div id="confirmModal" class="modal fade" tabindex="-1" role="dialog">      <div class="modal-dialog" role="document">          <div class="modal-content">              <div class="modal-header">                  <button type="button" class="close" data-dismiss="modal"                          aria-label="Close">                      <span aria-hidden="true">&times;</span>                  </button>                  <h5 class="modal-title">角色维护删除</h5>              </div>              <div class="modal-body">                  <p>您确定要删除下面的显示的内容吗?</p>                  <table class="table table-bordered">                      <thead>                      <tr>                          <th width="30">#</th>                          <th>名称</th>                      </tr>                      </thead>                      <tbody id="confirmModalTableBody"></tbody>                  </table>              </div>              <div class="modal-footer">                  <button id="confirmModalBtn" type="button" class="btn btn-primary">OK</button>              </div>          </div>      </div>  </div>

在role-page.jsp中包含include-modal-role-confirm.jsp文件, <%@ include file="/WEB-INF/include-modal-role-confirm.jsp" %>

getRoleListByRoleIdArray()函数

//id查询角色信息  function getRoleListByRoleIdArray(roleIdArray) {      //roleIdArray转换成JSON字符串      var roleIds = JSON.stringify(roleIdArray);      var ajaxResult = $.ajax({          "url": "role/get/list/by/id/list.action",          "type": "post",          "data": roleIds,          "contentType": "application/json;charset=UTF-8",          "dataType": "json",          "async": false      });      // 3.获取JSON对象类型的响应体      var resultEntity = ajaxResult.responseJSON;      var result = resultEntity.result;      if (result == "SUCCESS") {          // 5.如果成功,则返回roleList          return resultEntity.data;      }      if (result == "FAILED") {          layer.msg(resultEntity.message);          return null;      }      return null;  }

对应的后端代码:

@ResponseBody     @RequestMapping("role/get/list/by/id/list")     public ResultEntity<List<Role>> getRoleListByIdList(@RequestBody List<Integer> roleIds) {         List<Role> roleList = roleService.findRoleListByIdList(roleIds);         return ResultEntity.successWithData(roleList);  }
public List<Role> findRoleListByIdList(List<Integer> roleIds) {          return roleMapper.findRoleListByIdList(roleIds);      }

showRemoveConfirmModal()函数

// 打开删除确认模态框  function showRemoveConfirmModal() {      // 1.将模态框显示出来     $("#confirmModal").modal("show");      //获取角色数据      var roleList = getRoleListByRoleIdArray(window.roleIdArray);      //清空表格数据      $("#confirmModalTableBody").empty();      //填充confirmModalTableBody的数据      for (var i = 0; i < roleList.length; i++) {          // 5.获取角色相关数据          var role = roleList[i];          var id = role.id;          var name = role.name;          var trHTML = "<tr><td>" + (i+1) + "</td><td>" + name + "</td></tr>";          // 6.执行填充          $("#confirmModalTableBody").append(trHTML);      }  }

点击批量删除按钮绑定单击响应函数

标记批量删除按钮

<button type="button" class="btn btn-danger" id="batchRemoveBtn"                              style="float: right; margin-left: 10px;">                          <i class=" glyphicon glyphicon-remove"></i> 删除   </button>

检查itemBox是否被选中

// 给批量删除按钮绑定单击响应函数          $("#batchRemoveBtn").click(function () {              //获取被选中的itemBox数组长度              var length = $(".itemBox:checked").length;              if (length == 0) {                  layer.msg("请选择要删除的记录!!");                  return;              }             // 未完待续...          });

在弹出的模态框中显示confirm信息

怎么实现JavaWeb用户的增删改查

// 给批量删除按钮绑定单击响应函数         $("#batchRemoveBtn").click(function () {             //获取被选中的itemBox数组长度             var length = $(".itemBox:checked").length;             if (length == 0) {                 layer.msg("请选择要删除的记录!!");                 return;             }             window.roleIdArray = new Array();             //遍历复选框             $(".itemBox:checked").each(function () {                 //通过checkbox的roleid属性获取roleId值                 var roleId = $(this).attr("roleid");                 //存入数组                 window.roleIdArray.push(roleId);             });             // 调用函数打开模态框             showRemoveConfirmModal();         });

点击模态框的OK按钮执行删除

标记OK按

<button **id="confirmModalBtn"** type="button" class="btn btn-primary">OK</button>

绑定单击响应函数

$("#confirmModalBtn").click(function () {              //数组转成Json              var roleIds = JSON.stringify(window.roleIdArray);              var ajaxResult = $.ajax({                  "url": "role/batch/remove.action",                  "type": "post",                  "data": roleIds,                  "contentType": "application/json;charset=UTF-8",                  "dataType": "json",                  "async": false,                  "success": function (response) {                      var result = response.result;                      if (result == "SUCCESS") {                          layer.msg("操作成功!");                          // 如果删除成功,则重新调用分页方法                          showPage();                      }                      if (result == "FAILED") {                          layer.msg(response.message);                      }                      // 不管成功还是失败,都需要关掉模态框                      $("#confirmModal").modal("hide");                  },                  "error": function (response) {                      if (result == "FAILED") {                          layer.msg(response.message);                      }                  }              });          });

后端代码

@ResponseBody     @RequestMapping(value = "role/batch/remove")     public ResultEntity<String> batchAdminList(@RequestBody List<Integer> roleIds) {         try {             roleService.batchRoleList(roleIds);             return ResultEntity.successWithoutData();         } catch (Exception e) {             return ResultEntity.failed(null, e.getMessage());         }     }
public void batchRoleList(List<Integer> roleIds) {          roleMapper.batchRoleList(roleIds);      }
<delete id="batchRoleList" parameterType="java.util.List">          delete from  t_role where id in          <foreach collection="list" item="item" open="(" separator="," close=")" >             #{item}          </foreach>  </delete>

角色维护-新增

大体步骤

  • 给“新增”按钮绑定单击响应函数

  • 打开模态框

  • 给“保存”按钮绑定单击响应函数

  • 收集文本框内容

  • 发送请求

  • 请求处理完成关闭模态框、重新分页、清理表单

给新增按钮绑定单击响应函数

标记新增按钮

<button type="button" class="btn btn-primary" id="addBtn"                             style="float: right;">                         <i class="glyphicon glyphicon-plus"></i> 新增  </button>

绑定单击响应函数

$("#addBtn").click(function(){ alert("aaa..."); });

准备模态框

先准备模态框的HTML代码,include-modal-role-add.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"           pageEncoding="UTF-8"%>  <div id="addModal" class="modal fade" tabindex="-1" role="dialog">      <div class="modal-dialog" role="document">          <div class="modal-content">              <fORM role="form">                  <div class="modal-header">                      <button type="button" class="close" data-dismiss="modal"                              aria-label="Close">                          <span aria-hidden="true">&times;</span>                      </button>                      <h5 class="modal-title">角色添加</h5>                  </div>                  <div class="modal-body">                      <input type="text" id="roleNameInput" class="form-control" placeholder="请输入角色名称" />                  </div>                  <div class="modal-footer">                      <button type="button" id="addModalBtn" class="btn btn-default"><i class="glyphicon glyphicon-plus"></i> 保存</button>                      <button type="reset" class="btn btn-primary"><i class="glyphicon glyphicon-refresh"></i> 重置</button>                  </div>              </form>          </div>      </div>  </div>

将include-modal-role-add.jsp包含到role-page.jsp , <%@ include file="/WEB-INF/include-modal-role-add.jsp" %>

打开模态框

$("#addBtn").click(function(){ $("#addModal").modal("show"); });

给“保存”按钮绑定单击响应函数

标记“保存”按钮

<button id="addModalBtn" type="button" class="btn btn-success"> <i class="glyphicon glyphicon-plus"></i>保存 </button>

绑定单击响应函数

$("#addModalBtn").click(function () {              // 1.收集文本框内容              var roleName = $.trim($("#roleNameInput").val());              if (roleName == null || roleName == "") {                  layer.msg("请输入有效角色名称!");                  return;              }              // 2.发送请求              $.ajax({                  "url": "role/save/role.action",                  "type": "post",                  "data": {                      "roleName": roleName                 },                  "dataType": "json",                  "success": function (response) {                      var result = response.result;                      if (result == "SUCCESS") {                          layer.msg("操作成功!");                          // 3.操作成功重新分页                          // 前往最后一页                          window.pageNum = 999999;                          showPage();                      }                      if (result == "FAILED") {                          layer.msg(response.message);                      }                      // 4.不管成功还是失败,关闭模态框                      $("#addModal").modal("hide");                      // 5.清理本次在文本框填写的数据                      $("#roleNameInput").val("");                 },                  "error": function (response) {                      layer.msg(response.message);                  }              });          });

后端部分代码

@ResponseBody      @RequestMapping("role/save/role")      public ResultEntity<String> saveRole(@RequestParam("roleName") String roleName) {          try {              roleService.saveRole(roleName);              return ResultEntity.successWithoutData();          } catch (Exception e) {              return ResultEntity.failed(null, e.getMessage());          }      }

公共返回代码

public class ResultEntity<T> {      public static final String SUCCESS = "SUCCESS";      public static final String FAILED = "FAILED";      public static final String NO_MESSAGE = "NO_MESSAGE";      public static final String NO_DATA = "NO_DATA";      // 方便返回成功结果(不携带查询结果情况)      public static ResultEntity<String> successWithoutData() {          return new ResultEntity<String>(SUCCESS, NO_MESSAGE, NO_DATA);      }      // 方便返回成功结果(携带查询结果情况)      public static <E> ResultEntity<E> successWithData(E data) {          return new ResultEntity<E>(SUCCESS, NO_MESSAGE, data);      }      // 方便返回失败结果      public static <E> ResultEntity<E> failed(E data, String message) {          return new ResultEntity<E>(FAILED, message, data);      }      private String result;      private String message;      private T data;      public ResultEntity() {      }     public ResultEntity(String result, String message, T data) {          super();          this.result = result;          this.message = message;          this.data = data;      }      @Override      public String toString() {          return "ResultEntity [result=" + result + ", message=" + message + ", data=" + data + "]";      }      public String getResult() {          return result;      }      public void setResult(String result) {          this.result = result;      }      public String getMessage() {          return message;     }      public void setMessage(String message) {          this.message = message;      }      public T getData() {          return data;     }      public void setData(T data) {          this.data = data;      }  }

角色维护-更新

大体步骤

给编辑按钮绑定单击响应函数

打开模态框

  • 准备模态框

  • 把roleId保存到全局变量

  • 获取到当前按钮所在行的roleName

  • 使用roleName回显模态框中的表单

  • 给“更新”按钮绑定单击响应函数

  • 收集文本框内容

  • 发送请求

  • 请求处理完成关闭模态框、重新分页

给编辑按钮绑定单击响应函数

标记编辑按钮

my-role.js文件

function generateTableBody(pageInfo) {          //省略          var pencilBtn = "<button type='button'   roleid='" + role.id + "' class='btn btn-primary btn-xs  editBtn'><i class=' glyphicon glyphicon-pencil'></i></button>";        //省略      }  }

准备模态框

<%@ page language="java" contentType="text/html; charset=UTF-8"           pageEncoding="UTF-8" %>  <div id="editModal" class="modal fade" tabindex="-1" role="dialog">      <div class="modal-dialog" role="document">          <div class="modal-content">              <form role="form">                  <div class="modal-header">                      <button type="button" class="close" data-dismiss="modal"                              aria-label="Close">                          <span aria-hidden="true">&times;</span>                      </button>                      <h5 class="modal-title">尚筹网系统弹窗</h5>                  </div>                  <div class="modal-body">                      <input type="text" id="roleNameInputEdit" class="form-control"                             placeholder="请输入角色名称" />                  </div>                  <div class="modal-footer">                      <button id="editModalBtn" type="button" class="btn btn-warning">                          <i class="glyphicon glyphicon-edit"></i> 更新                      </button>                      <button type="reset" class="btn btn-primary">                          <i class="glyphicon glyphicon-refresh"></i> 重置                      </button>                </div>              </form>          </div>      </div>  </div>

将include-modal-role-add.jsp包含到role-page.jsp , <%@ include file="/WEB-INF/include-modal-role-edit.jsp" %>

绑定单击响应函数

$("#roleTableBody").on("click", ".editBtn", function () {             // 1.获取当前按钮的roleId             window.roleId = $(this).attr("roleId");             // 2.获取当前按钮所在行的roleName             var roleName = $(this).parents("tr").children("td:eq(2)").text();             // 3.修改模态框中文本框的value值,目的是在显示roleName             $("#roleNameInputEdit").val(roleName);             // 4.打开模态框             $("#editModal").modal("show");         });

给“更新”按钮绑定单击响应函数

$("#editModalBtn").click(function () {              // 1.获取文本框值              var roleName = $.trim($("#roleNameInputEdit").val());              if (roleName == null || roleName == "") {                  layer.msg("请输入有效角色名称!");                  return;              }              // 2.发送请求              $.ajax({                  "url": "role/update.action",                  "type": "post",                  "data": {                      "id": window.roleId,                      "name": roleName                  },                  "dataType": "json",                  "success": function (response) {                      var result = response.result;                      if (result == "SUCCESS") {                          layer.msg("操作成功!");                          // 3.操作成功重新分页                          showPage();                      }                      if (result == "FAILED") {                          layer.msg(response.message);                      }                      // 4.不管成功还是失败,关闭模态框                      $("#editModal").modal("hide");                  }              });          });

后端部分代码

@ResponseBody      @RequestMapping("role/update")      public ResultEntity<String> updateRole(@RequestParam("id") Integer id,                                             @RequestParam("name") String name) {          Role role = new Role();          role.setId(id);          role.setName(name);          try {              roleService.updateRole(role);              return ResultEntity.successWithoutData();          } catch (Exception e) {              return ResultEntity.failed(null, e.getMessage());          }      }

异常映射兼容异步请求

问题表现

Ajax请求在服务器端处理过程中抛出异常,经过异常处理器:

@ControllerAdvice  public class CrowdFundingExceptionResolever {       @ExceptionHandler(value=Exception.class)      public ModelAndView catchException(Exception exception) {              ModelAndView mav = new ModelAndView();                mav.addObject("exception", exception);                mav.setViewName("system-error");                 return mav;      }  }

目前这个异常处理机制,只能返回页面,而不能针对Ajax请求返回JSON格式的响应数据。所以Ajax请求处理过程中,如果抛出异常,返回异常信息页面,Ajax程序无法正常解析,导致页面不能正常显示和工作,也不能给出友好的错误提示。

问题解决思路

怎么实现JavaWeb用户的增删改查

异步请求特点

怎么实现JavaWeb用户的增删改查

分辨异步请求的工具方法 

      public static boolean checkAsyncRequest(httpservletRequest request) {                // 1.获取相应请求消息头          String accept = request.getHeader("Accept");          String xRequested = request.getHeader("X-Requested-With");                 // 2.判断请求消息头数据中是否包含目标特征          if(              (stringEffective(accept) && accept.contains("application/json"))              ||               (stringEffective(xRequested) && xRequested.contains("XMLHttpRequest")) ) {              return true;          }                 return false;      }            public static boolean stringEffective(String source) {                 return source != null && source.length() > 0;      }

升级后的异常处理器

首先引入:

<dependency>              <groupId>com.Google.code.gson</groupId>              <artifactId>gson</artifactId>              <version>2.8.5</version>  </dependency>
@ControllerAdvice  public class CrowdFundingExceptionResolever {      @ExceptionHandler(value = Exception.class)      public ModelAndView catchException(              Exception exception,              HttpServletRequest request,              HttpServletResponse response) throws IOException {          // 1.对当前请求进行检查          boolean checkAsyncRequestResult = CrowdFundingUtils.checkAsyncRequest(request);          // 2.如果是异步请求          if(checkAsyncRequestResult) {              // 根据异常类型在常量中的映射,使用比较友好的文字显示错误提示消息              String exceptionexceptionClassName = exception.getClass().getName();             String message = CrowdFundinGConstant.EXCEPTION_MESSAGE_MAP.get(exceptionClassName);              if(message == null) {                  message = "系统未知错误";              }              // 3.创建ResultEntity对象              ResultEntity<String> resultEntity = ResultEntity.failed(ResultEntity.NO_DATA, message);              // 4.将resultEntity转换为JSON格式              Gson gson = new Gson();              String json = gson.toJson(resultEntity);              // 5.将json作为响应数据返回给浏览器              response.setContentType("application/json;charset=UTF-8");              response.getWriter().write(json);              return null;          }          ModelAndView mav = new ModelAndView();          mav.addObject("exception", exception);          mav.setViewName("system-error");         return mav;      }  }

常量类

public class CrowdFundingConstant {          public static final Map<String, String> EXCEPTION_MESSAGE_MAP = new HashMap<String, String>();      static {          EXCEPTION_MESSAGE_MAP.put("java.lang.ArithmeticException", "系统在进行数学运算时发生错误");          EXCEPTION_MESSAGE_MAP.put("java.lang.RuntimeException", "系统在运行时发生错误");          EXCEPTION_MESSAGE_MAP.put("com.atguigu.crowd.funding.exception.LoginException", "登录过程中运行错误");      }  }

“怎么实现JavaWeb用户的增删改查”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 怎么实现JavaWeb用户的增删改查

本文链接: https://www.lsjlt.com/news/282953.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么实现JavaWeb用户的增删改查
    本篇内容介绍了“怎么实现JavaWeb用户的增删改查”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!准备工作后端技术前端技术角色维护-分页实现...
    99+
    2023-06-16
  • JavaWeb 使用DBUtils实现增删改查方式
    目录JavaWeb 使用DBUtils实现增删改查1、创建C3p0Utils类2、创建DBUtilsDao类3、创建测试类4、执行测试类Java DBUtils技术访问数据库DBUt...
    99+
    2022-11-12
  • JavaWeb如何使用DBUtils实现增删改查
    这篇文章主要讲解了“JavaWeb如何使用DBUtils实现增删改查”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaWeb如何使用DBUtils实现增删改查”吧!JavaWeb 使用D...
    99+
    2023-06-21
  • MongoDB怎么实现增删改查
    这篇“MongoDB怎么实现增删改查”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MongoDB怎么实现增删改查”文章吧。一...
    99+
    2023-06-30
  • 怎么用eclipse实现Java增删查改
    要使用Eclipse实现Java的增删查改操作,你可以按照以下步骤进行:1. 创建一个Java项目:打开Eclipse,选择File...
    99+
    2023-08-14
    eclipse Java
  • MongoDB增删改查之查询怎么实现
    这篇文章主要介绍MongoDB增删改查之查询怎么实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!详述1.简单查询:>db.t1.find() { "_id...
    99+
    2022-10-18
  • python字典的增删改查怎么实现
    在Python中,字典的增删改查可以通过以下方式实现:1. 增加字典项:- 使用键值对的形式直接赋值:`dict[key] = va...
    99+
    2023-10-11
    python
  • java怎么实现数组的增删改查
    本篇内容主要讲解“java怎么实现数组的增删改查”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java怎么实现数组的增删改查”吧!目录一维数组数组的扩容数组的复制直接将数组赋值给新数组创建一个新...
    99+
    2023-06-20
  • javascript对象的增删改查怎么实现
    小编给大家分享一下javascript对象的增删改查怎么实现,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!什么是对象?嘿!这还用问吗?对象不就是“你的女朋友” 嘛!,或许你以为我在胡说,但事实上确实就是。看完下面这个定义,...
    99+
    2023-06-29
  • Linux用户的增、删、改、查方法
    这篇文章主要介绍“Linux用户的增、删、改、查方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux用户的增、删、改、查方法”文章能帮助大家解决问题。Linux系统是一个多用户多任务的分时操...
    99+
    2023-06-28
  • PHP怎么实现增删改查功能
    这篇文章主要讲解了“PHP怎么实现增删改查功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP怎么实现增删改查功能”吧!sql:-- phpMyAdmin SQL&n...
    99+
    2023-06-29
  • winform增删改查功能怎么实现
    在 Winform 中实现增删改查功能,可以按照以下步骤进行操作:1. 设计界面:在 Winform 窗体上添加相应的控件,如文本框...
    99+
    2023-09-13
    winform
  • 怎么用Python实现sqlite3增删改查的封装
    本篇内容介绍了“怎么用Python实现sqlite3增删改查的封装”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!开发背景:每次项目都要写数据...
    99+
    2023-06-21
  • 使用PyMySQL怎么实现增删查改操作
    使用PyMySQL怎么实现增删查改操作?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、PyMySQL的使用步骤:2、案例:1 查询数据库中的表的信息: #&nb...
    99+
    2023-06-15
  • python实现mongodb的增删改查
                                                          python实现mongodb的增删改查环境:192.168.122.1    python192.168.122.11  mong...
    99+
    2023-01-31
    python mongodb
  • mongodb中怎么实现增删改查操作
    这篇文章给大家介绍mongodb中怎么实现增删改查操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一: Insert操作上一篇也说过,文档是采用“K-V”格式存储的,如果大...
    99+
    2022-10-18
  • vue中怎么实现增删改查操作
    vue中怎么实现增删改查操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。具体内容如下我们把这些用户信息保存到list的数组中,然后增删改查就...
    99+
    2022-10-19
  • winform数据库增删改查怎么实现
    在WinForm应用程序中实现对数据库的增删改查操作,可以按照以下步骤进行:1. 创建数据库连接:使用合适的数据库连接对象(如Sql...
    99+
    2023-09-05
    winform 数据库
  • SpringBoot怎么整合Mongodb实现增删查改
    今天小编给大家分享一下SpringBoot怎么整合Mongodb实现增删查改的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一...
    99+
    2023-06-30
  • Java双向链表的增删改查怎么实现
    这篇文章主要介绍“Java双向链表的增删改查怎么实现”,在日常操作中,相信很多人在Java双向链表的增删改查怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java双向链表的增删改查怎么实现”的疑惑有所...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作