当前位置: 首页 > news >正文

销售网站html源码晋江怎么交换友情链接

销售网站html源码,晋江怎么交换友情链接,网站的开发方式,无极分期网站前言 使用JSP回显用户列表#xff0c;可以进行批量删除#xff08;有删除确认步骤#xff09;#xff0c;和修改用户数据#xff08;用户数据回显步骤#xff09;使用servlet处理传递进来的请求参数#xff0c;并调用dao处理数据并返回使用mybatis#xff0c;书写dao层…前言 使用JSP回显用户列表可以进行批量删除有删除确认步骤和修改用户数据用户数据回显步骤使用servlet处理传递进来的请求参数并调用dao处理数据并返回使用mybatis书写dao层获取mysql数据库数据并返回到servlet 项目实现步骤 完整项结构 第一步创建项目配置pom.xml文件导入相关工具类 pom.xml dependencies!--单元测试--dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope/dependency!--mysql数据库连接--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.21/version/dependency!--servlet--dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion3.1.0/versionscopeprovided/scope/dependency!--lombok--dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.24/versionscopeprovided/scope/dependency!---mybatis--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.4.6/version/dependency!--log4j--dependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version/dependency!--jstl--dependencygroupIdjavax.servlet/groupIdartifactIdjstl/artifactIdversion1.2/version/dependency/dependenciesbuildfinalNameproject1/finalNamepluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.1/versionconfigurationsource1.8/sourcetarget1.8/targetencodingUTF-8/encoding/configuration/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-war-plugin/artifactIdversion3.3.2/version/pluginplugingroupIdorg.eclipse.jetty/groupIdartifactIdjetty-maven-plugin/artifactIdversion9.3.14.v20161028/version/pluginplugingroupIdorg.apache.tomcat.maven/groupIdartifactIdtomcat7-maven-plugin/artifactIdversion2.1/versionconfigurationport8080/portpath/my_maven_pro/pathuriEncodingUTF-8/uriEncodingservertomcat7/server/configuration/plugin/plugins/build /project因为要使用mybatis因此需要导入创建SqlSession的工具类目的是创建sqlsession对象来发送sql获取数据因为需要使用log4j日志需要导入其配置文件相关设置因为mybatis配置了jdbc连接信息和mybatis配置信息分离所以要jdbc.properties文件 SqlSessionFactoryUtil  public class SqlSessionFactoryUtil {private static SqlSessionFactory factory;private SqlSessionFactoryUtil(){}static {Reader readernull;try {readerreader Resources.getResourceAsReader(mybatis.xml);factorynew SqlSessionFactoryBuilder().build(reader);} catch (IOException e) {throw new RuntimeException(e);}}public static SqlSession getSessionSql(){return factory.openSession(true);}} openSession()方法参数为true表示自动提交事务。 jdbc.properties drivercom.mysql.cj.jdbc.Driver urljdbc:mysql://localhost:3306/csx_demo_925?serverTimezoneAsia/ShanghaiuseUnicodetruecharacterEncodingUTF-8zeroDateTimeBehaviorconvertToNull usernameroot passwordroot jdbc的连接信息需要自己本地的mysql连接配置 log4j.properties ### set log levels ### log4j.rootLogger debug,stdout log4j.appender.stdout org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target System.out log4j.appender.stdout.layout org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern %d %p [%c] - %m%nlog4j.logger.com.ibatisdebug log4j.logger.com.ibatis.common.jdbc.SimpleDataSourcedebug log4j.logger.com.ibatis.common.jdbc.ScriptRunnerdebug log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegatedebug log4j.logger.java.sql.Connectiondebug log4j.logger.java.sql.Statementdebug log4j.logger.java.sql.PreparedStatementdebug,stdout配置mybatis日志文件在执行mybatis相关的sql时可以看到sql语句的执行流程 web.xml ?xml version1.0 encodingUTF-8? web-app xmlnshttp://java.sun.com/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsdversion3.0display-nameArchetype Created Web Application/display-name/web-appweb.xml配置的头信息需要指定3.0版本以上目的是可以在servlet中使用注解完成相关的映射配置 第二步创建数据库表和对应实体类 数据库表 t_user用户表包含字段为user_id用户id,user_name用户名user_pic用户头像user_point(用户积分);这里用户头像暂时用不到 建表语句 create table if not exists t_user( user_id int primary key auto_increment comment 用户id,主键, user_name varchar(30) not null unique comment用户名, password varchar(30) not null comment密码, user_pic varchar(50) comment用户头像, user_point int default 0 comment用户积分 ); User Getter Setter AllArgsConstructor NoArgsConstructor public class User implements Serializable {private Integer userId;private String userName;private String password;private String userPic;private Integer userPoint; }属性名和字段名采用了小驼峰映射需要在mybatis中手动配置类的属性和表中字段的映射关系。 第三步创建Mybatis主配置文件Dao层和mapper映射 mybatis.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE configuration PUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd configurationproperties resourcejdbc.properties/!--settingssetting name value//settings--typeAliasespackage namecom.csx.entity//typeAliasesenvironments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedrivervalue${driver}/property nameurlvalue${url}/property nameusername value${username}/property namepassword value${password}//dataSource/environment/environmentsmappersmapper resourcemapper/UserMapper.xml/mapper/mappers/configuration注意 properties resourcejdbc.properties/配置了jdbc连接信息的路径可以在mybatis.xml中使用${}引入jdbc.properties的配置信息 typeAliasespackage namecom.csx.entity/ /typeAliases 设置别名将entity包下的所有实体类都设置别名为类名或类名的全小写mappers标签中的mapper标签需要先存在mappper映射文件才能配置其和主配置文件的绑定。 UserDao public interface UserDao {//查询所有用户ListUser getUserList();//根据id查询指定用户User getUserById(int id);//更新用户int updateUser(User user);//删除单个用户 int delUser(int id);//批量删除用户int delUsers(int[] ids);} 项目需要的所有sql支持从上到下分别为查询所有用户数据根据id查询指定用户修改用户数据删除用户数据删除单个批量删除用户数据 UserMapper.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.csx.dao.UserDaoresultMap iduserCols typeuserid propertyuserId columnuser_id/result propertyuserName columnuser_name/result propertyuserPic columnuser_pic/result propertyuserPoint columnuser_point//resultMap!--查询所有用户--select idgetUserList resultMapuserColsselect * from t_user/select !--根据id查询指定用户--select idgetUserById parameterTypeint resultMapuserColsselect * from t_userwhere user_id #{id}/select !--根据id修改用户名和积分--update idupdateUser parameterTypeuserupdate t_user set user_name #{userName},user_point#{userPoint}where user_id #{userId}/update !--删除单个用户数据--delete iddelUser parameterTypeintdelete from t_user where user_id #{id}/delete !--批量删除用户数据接收参数类型为数组--delete iddelUsersdelete from t_user where user_id inforeach collectionarray itemid open( close) separator,#{id}/foreach/delete/mapper 书写mapper.xml时需要注意使用 resultMap配置数据库字段和实体类的属性一一映射 第四步创建service层 UserService public interface UserService {ListUser getUserList();User getUserById(int id);int updateUser(User user);int delUser(int id);int delUsers(String[] ids);} UserServiceImpl public class UserServiceImpl implements UserService {SqlSession session SqlSessionFactoryUtil.getSessionSql();UserDao userDaosession.getMapper(UserDao.class);Overridepublic ListUser getUserList() {return userDao.getUserList();}Overridepublic User getUserById(int id) {return userDao.getUserById(id);}Overridepublic int updateUser(User user) {return userDao.updateUser(user);}Overridepublic int delUser(int id) {return userDao.delUser(id);}Overridepublic int delUsers(String[] ids) {//将字符串数组转换成int数组需要判断null值if (ids!null){int[] idss Arrays.stream(ids).mapToInt(Integer::parseInt).toArray();return userDao.delUsers(idss);}return 0;} } service层作用是调用dao的sql支持完成业务逻辑就像上面的类型转换的操作实在service层实现的 第五步创建前端页面和servlet 前端页面执行逻辑---当我们启动服务器时在浏览器输入localhost:8080  默认访问的是index.html或index.jsp页面因此我们可以直接在index.html页面完成跳转功能跳转到我们的servlet进行逻辑处理获取数据库中的数据然后在页面展示 index.html html body h2Hello World!/h2 /body scriptlocation.hreftoIndex; /script /html在默认首页完成跳转到指定的servlet进行逻辑处理 ToIndexServlet WebServlet(/toIndex) public class ToIndexServlet extends HttpServlet {Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {UserService userServicenew UserServiceImpl();//调用mybatis方法获取所有用户数据ListUser list userService.getUserList();//将存有用户数据的list集合放在request中req.setAttribute(list,list);//转发请求到list.jsp页面req.getRequestDispatcher(list.jsp).forward(req,resp);}Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);} } servlet的作用是获取所有用户信息存放在list集合中在存放到request作用域进行转发请求操作到list.jsp页面 list.jsp % page languagejava importjava.util.* pageEncodingUTF-8% % taglib prefixc urihttp://java.sun.com/jsp/jstl/core% !DOCTYPE HTML html meta http-equivcontent-type contenttext/html;charsetutf-8 /!-- /Added by HTTrack -- headmeta charsetUTF-8meta namedescription contentmeta namekeywords contenttitle/title /head bodytable border1pxtrth/thth编号/thth姓名/thth积分/thth积分/th/trform actionsubSelItem methodpostc:forEach items${list} varutrtdinput typecheckbox nameselItems value${u.userId}/tdtd${u.userId}/tdtd${u.userName}/tdtd${u.userPoint}/tdtda hreftoUserDetail?userId${u.userId}修改/aa hrefdelUser?userId${u.userId} onclickreturn delUser()删除/a/td/tr/c:forEachinput typesubmit value删除所选 onclickreturn delUser()/form/table /body scriptfunction delUser(){var ans confirm(忍心删除吗?);if(ans){return true;}else{return false;}} /script/html 使用jstl标签库中的forEach标签结合el表达式获取数据遍历存放在request作用域中的list集合结合中的数据通过两个超链接a进行页面跳转和数据传递处理修改和删除业务通过表单包裹checkbox复选框实现批量删除的请求 注意这里只展示了用户的id用户名和用户积分 修改功能实现 修改逻辑的执行流程: 点击修改按钮跳转到处理修改的/toUserDetail的servlet类作用是获取当前用户信息回显数据由/toUserDetail的servlet跳转到修改页面userDetail.jsp进行修改操作将修改后的数据提交到另一个/updateUser的servlet中进行数据库更新操作更新完成后跳转到/toIndex的servlet获取数据库用户列表获取完数据库用户数据后跳转到list.jsp展示 ToUserDetailServlet WebServlet(/toUserDetail) public class ToUserDetailServlet extends HttpServlet {Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {int idInteger.parseInt(req.getParameter(userId));UserService userServicenew UserServiceImpl();User user userService.getUserById(id);req.setAttribute(user,user);req.getRequestDispatcher(userDetail.jsp).forward(req,resp);}Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);} } 根据请求参数的用户id获取用户对象将用户对象存放在request作用域并转发请求到userDetail.jsp userDetail.jsp % page languagejava importjava.util.* pageEncodingUTF-8% % taglib prefixc urihttp://java.sun.com/jsp/jstl/core% % String path request.getContextPath(); String basePath request.getScheme()://request.getServerName():request.getServerPort()path/; % !DOCTYPE HTML html meta http-equivcontent-type contenttext/html;charsetutf-8 /!-- /Added by HTTrack -- headmeta charsetUTF-8meta namedescription contentmeta namekeywords contenttitle页面修改/title /head bodyform actionupdateUser methodpostinput typehidden nameuserId value${user.userId}姓名: input typetext nameuserName value${user.userName} br/积分: input typetext nameuserPoint value${user.userPoint} br/input typesubmit value确认修改/form/body /html 进行页面回显操作点击提交按钮将数据提交到/updateUser的servlet类处理 UpdateUserServlet WebServlet(/updateUser) public class UpdateUserServlet extends HttpServlet {Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {int id Integer.parseInt(req.getParameter(userId));String user_name req.getParameter(userName);int score Integer.parseInt(req.getParameter(userPoint));User usernew User();user.setUserId(id);user.setUserName(user_name);user.setUserPoint(score);UserService userServicenew UserServiceImpl();userService.updateUser(user);resp.sendRedirect(toIndex);}Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);} }将提交数据更新到数据库中然后回到/toIndex的servlet类中重新获取数据库中的用户列表然后跳转到list.jsp展示查看 删除单个功能 步骤 在list.jsp中点击删除按钮出现提示框点击确认跳转到delUser的servlet类中处理在delUser的servlet类中进行删除操作删除完毕后跳转到toIndex的servlet类中重新获取数据库中的用户列表跳转到list.jsp展示 DelUserServlet WebServlet(/delUser) public class DelUserServlet extends HttpServlet {Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {int id Integer.parseInt(req.getParameter(userId));UserService userServicenew UserServiceImpl();userService.delUser(id);resp.sendRedirect(toIndex);}Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);} }批量删除功能 在list.jsp中使用表单包裹checkbox复选框当选中多个提交时在对应的servlet中使用 getParameterValues方法接收到字符串数组将字符串数组转换成int数组底层通过mybatis的forEach标签进行批量删除 SubSelItemServlet WebServlet(/subSelItem) public class SubSelItemServlet extends HttpServlet {Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String[] items req.getParameterValues(selItems);UserService userServicenew UserServiceImpl();userService.delUsers(items);resp.sendRedirect(toIndex);}Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);} } 业务处理字符串数组转int数组 mybatis的sql处理 总结 基于jspservletmybatis实现用户列表查看用户修改删除单个用户确认步骤批量删除用户等功能实现
http://www.dnsts.com.cn/news/102101.html

相关文章:

  • 用网站做成软件Wordpress自动化
  • 至高建设集团 网站扬州有什么做网站的公司
  • 不想网站备案如何办广州城乡建设网站
  • 专业上海网站建设公司哪家好网站阵地建设
  • 列举免费域名注册的网站广告网站设计公司
  • 沈阳做网站优化托福培训一对一
  • 网站域名免费怎样在百度上发帖子
  • 深圳自适应网站开发公司wordpress多页面模板
  • 中国 网站服务器 租金甘肃张掖网站建设
  • 建设注册中心网站微信网站链接怎么做
  • 赣州做网站j北京app开发公司有哪些
  • 郑州网站建设哪家中国住建部网站查询网
  • 网站优化关键词公司广播电台网站建设方案
  • 请描述网站开发的一般流程个人网站模板素材
  • 网站建设服装项目设计书桂林做手机网站建设
  • 移动端网站建设推广方案建设部注册网站
  • 女装网站建设项目可行性分析上海专业制作网站
  • 做易经类的网站网上做家教兼职哪个网站
  • 常用网站设置如何建立自己的商城
  • 找人做的网站怎么运行外贸网站购买云服务器多少钱
  • 第一站长网厦门网站开发公
  • php网站开发招聘网络营销专业介绍及就业方向
  • 怎么更换网站模板看世界杯网址
  • 手机微网站网站图片类型
  • 企业网站模板湖南岚鸿网站建设是属现代服务吗
  • 聚美优品网站建设分析一支部一品牌一特色方案
  • 如何做自媒体网站创建设计SEO优化象客
  • 免费的网站公司网站asp后台维护
  • wordpress网站配置文件wordpress ishome
  • 绵竹网站建设天津市住房和城乡建设厅网站