js动态的添加HTML标签以及接受request.setAttribute封装的list

本文介绍了一种使用Java和JavaScript技术实现投票记录列表的方法。后台通过Java处理数据并将数据传递给前端,前端则利用JavaScript动态生成HTML表格来显示投票记录的各项信息。

 

后台代码封装 request.setAttribute("votemsg",voteList);

js中代码获取并拼接HTML标签 其中 VoteRecord 是list封装的实体类 后台 List<VoteRecord> voteList= new ArrayList<VoteRecord>();

<%
ArrayList list=(ArrayList)request.getAttribute("votemsg");
for(int i=0;i<list.size();i++){
VoteRecord voterecord=(VoteRecord)list.get(i);
%>
var fundurl= "<%=rp.getPropertieValue("SITEURL")%>"+getUrlByFundcode(<%=voterecord.getFundcode()%>); //----获取url路径并拼接
var tableContent = " ";
tableContent += ' <tr class="gray">';
tableContent += ' <td align="center"><a class="col333" href="'+fundurl+'" target="_blank"> <%=voterecord.getFundname()%></a></td>';
tableContent += '<td align="center"><%=voterecord.getFundcode()%></td> ';

tableContent += '<td align="center"><%=voterecord.getBeginDate()%> </td>';
tableContent += '<td align="center"><%=voterecord.getEndDate()%></td>';
tableContent += '<td align="center"><%=voterecord.getVoteStatus()%></td> ';
tableContent += ' <td align="center"><a href="#" onclick=checkVote("<%=voterecord.getFundcode()%>","<%=voterecord.getFundname()%>","<%=voterecord.getSurveyId()%>") class="link2">投票</a></td> ';
$("#view_config_view_trade_myfund_otherfundlist").append($(tableContent));
<% } %>

转载于:https://www.cnblogs.com/xzcBY/p/9228005.html

package com.vilicode.Utils; import java.nio.charset.StandardCharsets; import java.security.Key; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import java.util.Base64; public class MyCipher { public MyCipher() { } private Key getKeyt(String str) { try { // 使用 DES 算法,密钥长度必须为 56 位(7 字节) byte[] keyBytes = new byte[8]; byte[] strBytes = str.getBytes(StandardCharsets.UTF_8); // 将输入字符串的字节复制到密钥数组中 // 如果字符串长度不足 8 字节,则剩余位置补 0 for (int i = 0; i < Math.min(strBytes.length, 8); i++) { keyBytes[i] = strBytes[i]; } // DES 密钥需要满足奇偶校验位(每字节的第 8 位) // 这里简单处理,实际生产环境建议使用更安全的方式 for (int i = 0; i < 8; i++) { keyBytes[i] = (byte) (keyBytes[i] & 0xfe); // 清除最后一位 int parity = 0; for (int j = 0; j < 7; j++) { parity ^= (keyBytes[i] >> j) & 1; } keyBytes[i] |= parity; // 设置奇偶校验位 } // 使用 DESKeySpec 生成密钥 DESKeySpec desKeySpec = new DESKeySpec(keyBytes); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); return keyFactory.generateSecret(desKeySpec); } catch (Exception e) { e.printStackTrace(); return null; } } private byte[] getEncrypt(byte[] plaintexts, String str) { Key key = this.getKeyt(str); byte[] ciphertexts = null; Cipher cipher; try { cipher = Cipher.getInstance("DES"); cipher.init(Cipher.ENCRYPT_MODE, key); ciphertexts = cipher.doFinal(plaintexts); } catch (Exception var10) { var10.printStackTrace(); } finally { cipher = null; } return ciphertexts; } public String encrypt(String plaintext, String str) { String ciphertext = ""; try { byte[] plaintexts = plaintext.getBytes(StandardCharsets.UTF_8); // 调用调整后的 getKeyt 方法生成密钥,保证密钥生成逻辑统一 Key key = getKeyt(str); if (key == null) { // 密钥生成失败时的处理,可根据实际需求抛出异常或返回特定标识 return ciphertext; } Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] ciphers = cipher.doFinal(plaintexts); if (ciphers != null) { ciphertext = Base64.getEncoder().encodeToString(ciphers); } } catch (Exception var7) { var7.printStackTrace(); } return ciphertext; } private byte[] decrypt(byte[] ciphertexts, String str) { Key key = this.getKeyt(str); byte[] plaintexts = null; Cipher cipher; try { cipher = Cipher.getInstance("DES"); cipher.init(Cipher.DECRYPT_MODE, key); plaintexts = cipher.doFinal(ciphertexts); } catch (Exception var10) { System.out.println(var10.getMessage()); } finally { cipher = null; } return plaintexts; } public String decrypt(String ciphertext, String str) { String plaintext = ""; try { byte[] bytes = Base64.getDecoder().decode(ciphertext); Key key = getKeyt(str); if (key == null) { return plaintext; } Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.DECRYPT_MODE, key); byte[] ciphers = cipher.doFinal(bytes); if (ciphers != null) { plaintext = new String(ciphers, StandardCharsets.UTF_8); } } catch (Exception var7) { var7.printStackTrace(); } return plaintext; } } package com.vilicode.controller; import com.vilicode.Utils.MyCipher; import com.vilicode.bean.Page; import com.vilicode.bean.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import com.vilicode.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class UserController { private MyCipher myCipher = new MyCipher(); @Autowired private UserService userService; @RequestMapping("/login") public String login(User tempUser, HttpServletRequest request, HttpSession session) { // 获取用户输入的明文密码 String plainPassword = tempUser.getUpwd(); // 根据用户名查询数据库用户信息 User user = userService.login(tempUser.getUname()); if (user == null) { request.setAttribute("failMsg", "用户名不存在!"); return "user_login"; } // 加密用户输入的明文密码(使用 MyCipher 工具类) String encryptedInputPassword = myCipher.encrypt(plainPassword, "!"); // 获取数据库中存储的加密密码 String storedEncryptedPassword = user.getUpwd(); // 对比加密后的密码 if (encryptedInputPassword.equals(storedEncryptedPassword)) { session.setAttribute("user", user); request.setAttribute("msg", "登录成功!"); return "redirect:/index.action"; } else { request.setAttribute("failMsg", "密码错误!"); return "user_login"; } } @RequestMapping("/register") public String register(User user, HttpServletRequest request) { String path=""; user.setUrole(1); user.setUmark("普通用户"); if(userService.register(user)) { path="redirect:user_login.jsp"; }else{ request.setAttribute("msg","用户名重复!"); path="user_register"; } return path; } @RequestMapping("/admin/user_add") public String AddUser(User user, HttpServletRequest request) { user.setUrole(1); user.setUmark("普通用户"); if(userService.register(user)) { return "redirect:user_list.action?pageNumber=1"; }else{ request.setAttribute("msg","用户名重复!"); return "admin/user_add"; } } @RequestMapping("/logout") public String logout(HttpServletRequest request) { request.getSession().removeAttribute("user"); return "redirect:index.action"; } @RequestMapping("/admin/logout") public String adminLogout(HttpServletRequest request) { request.getSession().removeAttribute("user"); return "redirect:index.action"; } @RequestMapping("/change_phone_and_address") public String updateUphoneAndUaddress(int uid,String uphone,String uaddress,HttpServletRequest request) { boolean result=userService.UpdatePhoneAndAddress(uid,uphone,uaddress); if(result) { request.setAttribute("msg","修改成功!"); User u=(User)request.getSession().getAttribute("user"); u.setUaddress(uaddress); u.setUphone(uphone); request.getSession().removeAttribute("user"); request.getSession().setAttribute("user",u); return "user_center"; } else { request.setAttribute("failMsg","修改密码时出现错误,请确认原密码是否正确或联系管理员!"); return "user_center"; } } @RequestMapping("/change_password") public String updatePassword(int uid,String oldupwd,String upwd,HttpServletRequest request) { boolean result=userService.UpdatePassword(uid,upwd,oldupwd); if(result) { request.setAttribute("msg","修改成功!"); MyCipher myCipher=new MyCipher(); User u=(User)request.getSession().getAttribute("user"); u.setUpwd(myCipher.encrypt(upwd,"!")); request.getSession().removeAttribute("user"); request.getSession().setAttribute("user",u); return "user_center"; } else { request.setAttribute("failMsg","修改密码时出现错误,请确认原密码是否正确或联系管理员!"); return "user_center"; } } @RequestMapping("admin/change_password") public String updatePassword(int uid,String upwd,HttpServletRequest request) { boolean result=userService.UpdatePassword(uid,upwd); if(result) { MyCipher myCipher=new MyCipher(); request.setAttribute("msg","修改成功!"); User u=(User)request.getSession().getAttribute("user"); u.setUpwd(myCipher.encrypt(upwd,"!")); request.getSession().removeAttribute("user"); request.getSession().setAttribute("user",u); return "redirect:user_list.action?pageNumber=1"; } else { request.setAttribute("failMsg","修改失败"); return "redirect:user_list.action?pageNumber=1"; } } @RequestMapping("admin/user_list") public String ShowUserList(int pageNumber,HttpServletRequest request) { if(pageNumber<=0) pageNumber=1; Page p = userService.queryUser(pageNumber); if(p.getTotalPage()==0) { p.setTotalPage(1); p.setPageNumber(1); } else { if(pageNumber>=p.getTotalPage()+1) { p = userService.queryUser(p.getTotalPage()); } } request.setAttribute("p", p); return "admin/user_list"; } @RequestMapping("admin/user_delete") public String DeleteUser(int uid) { boolean result= userService.deleteUser(uid); return "redirect:user_list.action?pageNumber=1"; } @RequestMapping("/admin/user_edit_show") public String ChangeUser(int uid,HttpServletRequest request) { User user=userService.queryUserByUid(uid); if(user==null) return "redirect:user_list.action?pageNumber=1"; else { request.setAttribute("u",user); return "admin/user_edit"; } } @RequestMapping("/admin/user_update") public String updateUser(int uid,String uphone,String uaddress,HttpServletRequest request) { boolean result=userService.UpdatePhoneAndAddress(uid,uphone,uaddress); if(result) { User user=(User)request.getSession().getAttribute("user"); if(user.getUid()==uid) { user.setUaddress(uaddress); user.setUphone(uphone); request.getSession().removeAttribute("user"); request.getSession().setAttribute("user",user); } } return "redirect:user_list.action?pageNumber=1"; } } 根据这两个代码使其能够密码加密解密成功
最新发布
06-19
public void load() { // String id = request.getParameter("id"); String actiontype = "save"; if (id != null) { Users users = (Users) DALBase.load("users", "where id=" + id); if (users != null) { request.setAttribute("users", users); } actiontype = "update"; } request.setAttribute("id", id); request.setAttribute("actiontype", actiontype); try { request.getRequestDispatcher("usersadd.jsp").forward(request, response); } catch (ServletException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /*************************************************************************** * *数据绑定内部支持 **************************************************************************/ public void binding() { String filter = ""; String username = request.getParameter("username"); if (username != null) filter = " where username like '%" + username + "%' "; // int pageindex = 1; int pagesize = 10; // 获取当前分页 String currentpageindex = request.getParameter("currentpageindex"); // 当前页面尺寸 String currentpagesize = request.getParameter("pagesize"); // 设置当前页 if (currentpageindex != null) pageindex = new Integer(currentpageindex); // 设置当前页尺寸 if (currentpagesize != null) pagesize = new Integer(currentpagesize); List<Users> listusers = DALBase.getPageEnity("users", filter, pageindex, pagesize); int recordscount = DALBase.getRecordCount("users", filter == null ? "" : filter); request.setAttribute("listusers", listusers); PagerMetal pm = new PagerMetal(recordscount); // 设置尺寸 pm.setPagesize(pagesize); // 设置当前显示页 pm.setCurpageindex(pageindex); //解释每一行代码
06-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值