热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

010_学生管理系统一

源码:https:download.csdn.netdownloadaihiao149745201.新建一个名为StudentManager的Web项目2.考入相关jar3.c3p

源码: https://download.csdn.net/download/aihiao/14974520

 

1. 新建一个名为StudentManager的Web项目

2. 考入相关jar

3. c3p0-config.xml配置


com.mysql.cj.jdbc.Driverjdbc:mysql://192.168.25.138:3306/StudentManager?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghairootlyw123456103010010200

4. 数据库连接池JDBCUtil.java工具类

package com.lywgames.util;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;/*** 使用数据库连接池的获取的数据库连接, 我们不用做关闭操作, 数据库连接池自行管理*/
public class JDBCUtil {private static DataSource dataSource = null;static {dataSource = new ComboPooledDataSource();}public static DataSource getDataSource() {return dataSource;}/*** 获取连接对象*/public static Connection getConn(){try {return dataSource.getConnection();} catch (SQLException e) {e.printStackTrace();}return null;}/*** 释放资源* @param st* @param rs*/public static void release(Statement st, ResultSet rs){closeRs(rs);closeSt(st);}public static void release(Statement st){closeSt(st);}public static void closeRs(ResultSet rs){try {if(rs != null){rs.close();}} catch (SQLException e) {e.printStackTrace();}finally{rs = null;}}public static void closeSt(Statement st){try {if(st != null){st.close();}} catch (SQLException e) {e.printStackTrace();}finally{st = null;}}}

5. 学生Student.java实体类

package com.lywgames.domain;import java.sql.Timestamp;/*** 这是学封装的对象 bean*/
public class Student {private int sid;private String sname;private String gender;private String phone;private String hobby;private String info;private Timestamp birthday;public Student() {}public Student(String sname, String gender, String phone, String hobby, String info, Timestamp birthday) {this.sname = sname;this.gender = gender;this.phone = phone;this.hobby = hobby;this.info = info;this.birthday = birthday;}public Student(int sid, String sname, String gender, String phone, String hobby, String info, Timestamp birthday) {super();this.sid = sid;this.sname = sname;this.gender = gender;this.phone = phone;this.hobby = hobby;this.info = info;this.birthday = birthday;}public int getSid() {return sid;}public void setSid(int sid) {this.sid = sid;}public String getSname() {return sname;}public void setSname(String sname) {this.sname = sname;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getHobby() {return hobby;}public void setHobby(String hobby) {this.hobby = hobby;}public String getInfo() {return info;}public void setInfo(String info) {this.info = info;}public Timestamp getBirthday() {return birthday;}public void setBirthday(Timestamp birthday) {this.birthday = birthday;}@Overridepublic String toString() {return "Student [sid=" + sid + ", sname=" + sname + ", gender=" + gender + ", phone=" + phone + ", hobby="+ hobby + ", info=" + info + ", birthday=" + birthday + "]";}}

6. 分页PageBean.java实体类

package com.lywgames.domain;import java.util.List;/*** 这是一个用于封装了分页的数据。* 里面包含:* 该页的学生集合数据* 总的记录数* 总的页数* 当前页* 每页显示的记录数* @param */
public class PageBean {private int currentPage; //当前页private int totalPage; //总页数private int pageSize; //每页的记录数private int totalSize; //总的记录数private List list; //当前页的学生集合public int getCurrentPage() {return currentPage;}public void setCurrentPage(int currentPage) {this.currentPage = currentPage;}public int getTotalPage() {return totalPage;}public void setTotalPage(int totalPage) {this.totalPage = totalPage;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public int getTotalSize() {return totalSize;}public void setTotalSize(int totalSize) {this.totalSize = totalSize;}public List getList() {return list;}public void setList(List list) {this.list = list;}
}

7. 数据库操作StudentDao.java接口

package com.lywgames.dao;import java.sql.SQLException;
import java.util.List;
import com.lywgames.domain.Student;/*** 这是针对学生表的数据访问 */
public interface StudentDao {/*** 查询所有学生* @return List*/List findAll() throws SQLException;/*** 添加学生* @param student 需要添加到数据库的学生对象* @throws SQLException*/int insert(Student student) throws SQLException;/*** 根据id删除学生* @param sid* @throws SQLException*/int delete(int sid) throws SQLException;/*** 根据id查询单个学生对象* @param sid* @return* @throws SQLException*/Student findStudentById(int sid) throws SQLException;/*** 更新学生信息* @param student 需要更新的学生数据* @throws SQLException*/int update(Student student) throws SQLException;/*** 模糊查询, 根据姓名或者根据性别或者两者兼有。 * @param sname* @param sgender* @return 集合* @throws SQLException*/List searchStudent(String sname, String sgender) throws SQLException;/*** 查询当页的学生数据* @param currentPage* @param pageSize* @return* @throws SQLException*/List findStudentByPage(int currentPage, int pageSize) throws SQLException;/*** 查询总的学生记录数* @return* @throws SQLException*/int findCount() throws SQLException;
}

8. 数据库操作StudentDaoImpl.java实现类

package com.lywgames.dao.impl;import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import com.lywgames.dao.StudentDao;
import com.lywgames.domain.Student;
import com.lywgames.util.JDBCUtil;/*** 这是StudentDao的实现。 针对前面定义的规范, 做出具体的实现。*/
public class StudentDaoImpl implements StudentDao {/*** 查询所有学生*/&#64;Overridepublic List findAll() throws SQLException {QueryRunner queryRunner &#61; new QueryRunner();return queryRunner.query(JDBCUtil.getConn(), "select * from t_student", new BeanListHandler(Student.class));}/*** 添加学生*/&#64;Overridepublic int insert(Student student) throws SQLException {QueryRunner queryRunner &#61; new QueryRunner();return queryRunner.update(JDBCUtil.getConn(), "insert into t_student values (null, ?, ?, ?, ?, ?, ?)", student.getSname(), student.getGender(), student.getPhone(), student.getHobby(), student.getInfo(), student.getBirthday());}/*** 根据id删除学生*/&#64;Overridepublic int delete(int sid) throws SQLException {QueryRunner queryRunner &#61; new QueryRunner();return queryRunner.update(JDBCUtil.getConn(), "delete from t_student where sid &#61; ?", sid);}/*** 根据id查询单个学生对象*/&#64;Overridepublic Student findStudentById(int sid) throws SQLException {QueryRunner queryRunner &#61; new QueryRunner();return queryRunner.query(JDBCUtil.getConn(), "select * from t_student where sid &#61; ?", new BeanHandler(Student.class), sid);}/*** 更新学生信息*/&#64;Overridepublic int update(Student student) throws SQLException {QueryRunner queryRunner &#61; new QueryRunner();return queryRunner.update(JDBCUtil.getConn(), "update t_student set sname &#61; ?, gender &#61; ?, phone &#61; ?, hobby &#61; ?, info &#61; ?, birthday &#61; ? where sid &#61; ?", student.getSname(), student.getGender(), student.getPhone(), student.getHobby(), student.getInfo(), student.getBirthday(), student.getSid());}/*** 模糊查询, 根据姓名或者根据性别或者两者兼有。 */&#64;Overridepublic List searchStudent(String sname, String sgender) throws SQLException {/*** 1. sname有值, sgender为null或者""* select * from t_student where sname like ?* 2. sgender有值, sname为null或者""* select * from t_student where sgender &#61; ?* 3. sname有值, sgender也有值* select * from t_student where sname &#61; ? and sgender &#61; ?*/String sql &#61; "select * from t_student";List params &#61; new ArrayList();if(sname !&#61; null && sname.length() > 0 && (sgender &#61;&#61; null || sgender.length() <&#61; 0)) {sql &#61; sql &#43; " where sname like ?";params.add("%" &#43; sname &#43; "%");}if(sgender !&#61; null && sgender.length() > 0 && (sname &#61;&#61; null || sname.length() <&#61; 0)) {sql &#61; sql &#43; " where gender &#61; ?";params.add(sgender);}if(sname !&#61; null && sname.length() > 0 && sgender !&#61; null && sgender.length() > 0) {sql &#61; sql &#43; " where sname like ? and gender &#61; ?";params.add("%" &#43; sname &#43; "%");params.add(sgender);}QueryRunner queryRunner &#61; new QueryRunner();return queryRunner.query(JDBCUtil.getConn(), sql, new BeanListHandler(Student.class), params.toArray());}/*** 查询当页的学生数据*/&#64;Overridepublic List findStudentByPage(int currentPage, int pageSize) throws SQLException {// 假设pageSize是5// 第一页: [5, 0], 0 &#61; (1 - 1) * 5// 第二页: [5, 5], 5 &#61; (2 - 1) * 5// 第三页: [5, 10], 10 &#61; (3 - 1) * 5String sql &#61; "select * from t_student limit ? offset ?";QueryRunner queryRunner &#61; new QueryRunner();return queryRunner.query(JDBCUtil.getConn(), sql, new BeanListHandler(Student.class), pageSize, (currentPage - 1) * pageSize);}/*** 查询总的学生记录数*/&#64;Overridepublic int findCount() throws SQLException {QueryRunner queryRunner &#61; new QueryRunner();return ((Long)queryRunner.query(JDBCUtil.getConn(), "select count(*) from t_student", new ScalarHandler())).intValue();}}

9. 逻辑操作StudentService.java接口

package com.lywgames.service;import java.sql.SQLException;
import java.util.List;
import com.lywgames.domain.PageBean;
import com.lywgames.domain.Student;/*** 这是学生的业务处理规范*/
public interface StudentService {int DEFAULT_PAGE_SIZE &#61; 5; // 默认一页显示多少条记录/*** 查询所有学生* &#64;return List*/List findAll();/*** 添加学生* &#64;param student 需要添加到数据库的学生对象* &#64;throws SQLException*/int insert(Student student);/*** 根据id删除学生* &#64;param sid* &#64;throws SQLException*/int delete(int sid);/*** 根据id查询单个学生对象* &#64;param sid* &#64;return* &#64;throws SQLException*/Student findStudentById(int sid);/*** 更新学生信息* &#64;param student 需要更新的学生数据* &#64;throws SQLException*/int update(Student student);/*** 模糊查询, 根据姓名或者根据性别或者两者兼有。 * &#64;param sname* &#64;param sgender* &#64;return 集合* &#64;throws SQLException*/List searchStudent(String sname, String sgender);/*** 查询当页的学生数据* &#64;param currentPage* &#64;return* &#64;throws SQLException*/PageBean findStudentByPage(int currentPage);
}

10. 逻辑操作StudentServiceImpl.java实现类

package com.lywgames.service.impl;import java.sql.SQLException;
import java.util.List;
import com.lywgames.dao.StudentDao;
import com.lywgames.dao.impl.StudentDaoImpl;
import com.lywgames.domain.PageBean;
import com.lywgames.domain.Student;
import com.lywgames.service.StudentService;/*** 这是学生业务实现*/
public class StudentServiceImpl implements StudentService {private StudentDao studentDao &#61; new StudentDaoImpl();&#64;Overridepublic List findAll(){try {return studentDao.findAll();} catch (SQLException e) {e.printStackTrace();}return null;}&#64;Overridepublic int insert(Student student){try {return studentDao.insert(student);} catch (SQLException e) {e.printStackTrace();}return -1;}&#64;Overridepublic int delete(int sid) {try {return studentDao.delete(sid);} catch (SQLException e) {e.printStackTrace();}return -1;}&#64;Overridepublic Student findStudentById(int sid) {try {return studentDao.findStudentById(sid);} catch (SQLException e) {e.printStackTrace();}return null;}&#64;Overridepublic int update(Student student) {try {return studentDao.update(student);} catch (SQLException e) {e.printStackTrace();}return -1;}&#64;Overridepublic List searchStudent(String sname, String sgender) {try {return studentDao.searchStudent(sname, sgender);} catch (SQLException e) {e.printStackTrace();}return null;}&#64;Overridepublic PageBean findStudentByPage(int currentPage) {PageBean pageBean &#61; new PageBean();pageBean.setCurrentPage(currentPage);pageBean.setPageSize(DEFAULT_PAGE_SIZE);try {pageBean.setList(studentDao.findStudentByPage(currentPage, DEFAULT_PAGE_SIZE));int count &#61; studentDao.findCount();pageBean.setTotalSize(count);pageBean.setTotalPage(count % DEFAULT_PAGE_SIZE &#61;&#61; 0 ? count / DEFAULT_PAGE_SIZE : (count / DEFAULT_PAGE_SIZE) &#43; 1);} catch (SQLException e) {e.printStackTrace();}return pageBean;}}

11. 查找所有学生StudentListServlet.java

package com.lywgames.servlet;import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.lywgames.domain.Student;
import com.lywgames.service.StudentService;
import com.lywgames.service.impl.StudentServiceImpl;/*** 查找所有学生*/
public class StudentListServlet extends HttpServlet {private static final long serialVersionUID &#61; 1L;&#64;Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {StudentService service &#61; new StudentServiceImpl();List studentList &#61; service.findAll();if(studentList !&#61; null) {req.setAttribute("studentList", studentList);}req.getRequestDispatcher("list.jsp").forward(req, resp);}&#64;Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

12. 分页查找学生StudentListPageServlet.java

package com.lywgames.servlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.lywgames.domain.PageBean;
import com.lywgames.domain.Student;
import com.lywgames.service.StudentService;
import com.lywgames.service.impl.StudentServiceImpl;/*** 分页查找学生*/
public class StudentListPageServlet extends HttpServlet {private static final long serialVersionUID &#61; 1L;&#64;Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {int currentPage &#61; Integer.valueOf(req.getParameter("currentPage")).intValue() ;StudentService service &#61; new StudentServiceImpl();PageBean pageBean &#61; service.findStudentByPage(currentPage);req.setAttribute("pageBean", pageBean);req.getRequestDispatcher("page_list.jsp").forward(req, resp);}&#64;Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

13. 添加学生AddServlet.java

package com.lywgames.servlet;import java.io.IOException;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.lywgames.domain.Student;
import com.lywgames.service.StudentService;
import com.lywgames.service.impl.StudentServiceImpl;/*** 添加学生*/
public class AddServlet extends HttpServlet {private static final long serialVersionUID &#61; 1L;&#64;Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");String sname &#61; req.getParameter("sname");String gender &#61; req.getParameter("gender");String phone &#61; req.getParameter("phone");String info &#61; req.getParameter("info");long time &#61; System.currentTimeMillis();try {time &#61; new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(req.getParameter("birthday")).getTime();} catch (ParseException e) {e.printStackTrace();}Timestamp birthday &#61; new Timestamp(time);String[] hobbys &#61; req.getParameterValues("hobby");StringBuffer sb &#61; new StringBuffer();for(int i &#61; 0; i }

14. 编辑学生信息EditServlet.java

package com.lywgames.servlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.lywgames.domain.Student;
import com.lywgames.service.StudentService;
import com.lywgames.service.impl.StudentServiceImpl;/*** 编辑学生信息*/
public class EditServlet extends HttpServlet {private static final long serialVersionUID &#61; 1L;&#64;Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");String sid &#61; req.getParameter("sid");StudentService service &#61; new StudentServiceImpl();Student student &#61; service.findStudentById(Integer.parseInt(sid));if(student !&#61; null) {req.setAttribute("student", student);req.getRequestDispatcher("edit.jsp").forward(req, resp);}}&#64;Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

15. 更新学生信息UpdateServlet.java

package com.lywgames.servlet;import java.io.IOException;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.lywgames.domain.Student;
import com.lywgames.service.StudentService;
import com.lywgames.service.impl.StudentServiceImpl;/*** 更新学生信息*/
public class UpdateServlet extends HttpServlet {private static final long serialVersionUID &#61; 1L;&#64;Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");int sid &#61; Integer.parseInt(req.getParameter("sid"));String sname &#61; req.getParameter("sname");String gender &#61; req.getParameter("gender");String phone &#61; req.getParameter("phone");String info &#61; req.getParameter("info");long time &#61; System.currentTimeMillis();try {time &#61; new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(req.getParameter("birthday")).getTime();} catch (ParseException e) {e.printStackTrace();}Timestamp birthday &#61; new Timestamp(time);String[] hobbys &#61; req.getParameterValues("hobby");StringBuffer sb &#61; new StringBuffer();for(int i &#61; 0; i }

16. 删除学生DeleteServlet.java

package com.lywgames.servlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.lywgames.service.StudentService;
import com.lywgames.service.impl.StudentServiceImpl;/*** 删除学生*/
public class DeleteServlet extends HttpServlet {private static final long serialVersionUID &#61; 1L;&#64;Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");String sid &#61; req.getParameter("sid");StudentService service &#61; new StudentServiceImpl();int result &#61; service.delete(Integer.parseInt(sid));if(result &#61;&#61; 1) {req.getRequestDispatcher("StudentListServlet.action").forward(req, resp);}}&#64;Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

17. 查找学生SearchStudentServlet.java

package com.lywgames.servlet;import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.lywgames.domain.Student;
import com.lywgames.service.StudentService;
import com.lywgames.service.impl.StudentServiceImpl;/*** 查找学生*/
public class SearchStudentServlet extends HttpServlet {private static final long serialVersionUID &#61; 1L;&#64;Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");String sname &#61; req.getParameter("sname");String gender &#61; req.getParameter("gender");StudentService service &#61; new StudentServiceImpl();List studentList &#61; service.searchStudent(sname, gender);if(studentList !&#61; null) {req.setAttribute("studentList", studentList);}req.getRequestDispatcher("list.jsp").forward(req, resp);}&#64;Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

18. web.xml配置


StudentManagerindex.htmlindex.htmindex.jspdefault.htmldefault.htmdefault.jspStudentListServletcom.lywgames.servlet.StudentListServletStudentListServlet/StudentListServlet.actionAddServletcom.lywgames.servlet.AddServletAddServlet/AddServlet.actionEditServletcom.lywgames.servlet.EditServletEditServlet/EditServlet.actionUpdateServletcom.lywgames.servlet.UpdateServletUpdateServlet/UpdateServlet.actionDeleteServletcom.lywgames.servlet.DeleteServletDeleteServlet/DeleteServlet.actionSearchStudentServletcom.lywgames.servlet.SearchStudentServletSearchStudentServlet/SearchStudentServlet.actionStudentListPageServletcom.lywgames.servlet.StudentListPageServletStudentListPageServlet/StudentListPageServlet.action

 


推荐阅读
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 【实例简介】本文详细介绍了如何在PHP中实现微信支付的退款功能,并提供了订单创建类的完整代码及调用示例。在配置过程中,需确保正确设置相关参数,特别是证书路径应根据项目实际情况进行调整。为了保证系统的安全性,存放证书的目录需要设置为可读权限。值得注意的是,普通支付操作无需证书,但在执行退款操作时必须提供证书。此外,本文还对常见的错误处理和调试技巧进行了说明,帮助开发者快速定位和解决问题。 ... [详细]
  • 利用爬虫技术抓取数据,结合Fiddler与Postman在Chrome中的应用优化提交流程
    本文探讨了如何利用爬虫技术抓取目标网站的数据,并结合Fiddler和Postman工具在Chrome浏览器中的应用,优化数据提交流程。通过详细的抓包分析和模拟提交,有效提升了数据抓取的效率和准确性。此外,文章还介绍了如何使用这些工具进行调试和优化,为开发者提供了实用的操作指南。 ... [详细]
  • Spring 切面配置中的切点表达式详解
    本文介绍了如何在Spring框架中使用AspectJ风格的切面配置,详细解释了切点表达式的语法和常见示例,帮助开发者更好地理解和应用Spring AOP。 ... [详细]
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • 探索Web 2.0新概念:Widget
    尽管你可能尚未注意到Widget,但正如几年前对RSS的陌生一样,这一概念正逐渐走入大众视野。据美国某权威杂志预测,2007年将是Widget年。本文将详细介绍Widget的定义、功能及其未来发展趋势。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
author-avatar
菜鸟自学编程
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有