适用于初进修struts2的人,里边分了显示层,action层,service层,dao层,四个层次。
分别有对管理员和用户的不同界面。
2022/9/3 12:08:15 11.78MB 用户登录 增删改查
1
JSP+DAO+serve2000完成用户登岸
2022/9/3 10:37:22 140KB jsp、server
1
packagecom.frog.vote.servlet.front;importjava.io.IOException;importjava.sql.Timestamp;importjava.util.ArrayList;importjava.util.List;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.frog.vote.bean.UserBean;importcom.frog.vote.cons.Const;importcom.frog.vote.dao.entity.Vote;importcom.frog.vote.factory.ServiceFactory;publicclassVoteServletextendsHttpServlet{ @Override protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException { doPost(req,resp); } @Override protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException { req.setCharacterEncoding("gbk"); resp.setContentType("text/html;charset=gbk"); //先取出操作参数 Stringaction=req.getParameter("action"); ServletContextapplication=getServletContext(); //显示的列表 if("show".equals(action)) { //调用service层方法得到所有的 Stringtemp=req.getParameter("page"); intpage=1; if(temp!=null) { try { page=Integer.parseInt(temp); } catch(NumberFormatExceptione) { e.printStackTrace(); } } UserBeanub=(UserBean)req.getSession().getAttribute(Const.USER); intuid=ub.getId(); req.setAttribute("page",ServiceFactory .getVoteService().listUserPage(page,uid)); application.getRequestDispatcher("/WEB-INF/front/list.jsp") .forward(req,resp); return; } elseif("save".equals(action)||"update".equals(action)) { Stringsid=req.getParameter("id"); String[]answers=req.getParameterValues("choice"); Listlist=newArrayList(); inttemp; for(Stringanswer:answers){temp=Integer.parseInt(answer);list.add(temp);} inttid=Integer.parse
2022/9/3 9:36:43 577KB jsp+servlet+mysql
1
struts2+jsp+json+javascript实现的三级下拉菜单,没有service和dao层,数据是虚拟的。
需求的欢迎下载。
项目直接导入myeclipse就可以使用。
访问路径localhost:8080/ajax_day02_hw/proviencecityarea.jsp
2018/4/8 4:30:27 3.89MB 下拉菜单
1
9.DAO数据库操作演示(VisualC++编程源代码)9.DAO数据库操作演示(VisualC++编程源代码)9.DAO数据库操作演示(VisualC++编程源代码)9.DAO数据库操作演示(VisualC++编程源代码)9.DAO数据库操作演示(VisualC++编程源代码)9.DAO数据库操作演示(VisualC++编程源代码)9.DAO数据库操作演示(VisualC++编程源代码)9.DAO数据库操作演示(VisualC++编程源代码)9.DAO数据库操作演示(VisualC++编程源代码)9.DAO数据库操作演示(VisualC++编程源代码)9.DAO数据库操作演示(VisualC++编程源代码)9.DAO数据库操作演示(VisualC++编程源代码)9.DAO数据库操作演示(VisualC++编程源代码)9.DAO数据库操作演示(VisualC++编程源代码)9.DAO数据库操作演示(VisualC++编程源代码)9.DAO数据库操作演示(VisualC++编程源代码)9.DAO数据库操作演示(Visual
2016/11/5 7:12:25 181KB 9.DAO数据库操作演示(Vis
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡