java数据库的分页

合集下载

java limit分页用法

java limit分页用法

java limit分页用法「Java limit分页用法」在开发Java应用程序时,经常需要处理大量的数据。

为了提高性能和效率,我们往往会使用分页技术。

分页技术允许我们一次只加载一部分数据,这样可以减少内存的使用,并且对于用户来说,加载速度也更快。

在Java中,我们可以使用limit关键字来实现分页操作。

本文将一步一步回答关于Java limit分页用法的问题,帮助读者更好地掌握这一常用技巧。

第一步:了解limit关键字在开始使用limit进行分页操作之前,我们首先需要了解limit关键字的含义和用法。

在Java中,limit是一个用于限制查询结果返回的行数的关键字。

我们可以使用该关键字在查询语句中指定要返回的行数。

例如,LIMIT 10表示只返回查询结果的前10行。

第二步:设置查询语句要使用limit进行分页,我们需要构造合适的查询语句。

一般来说,查询语句应包含两个关键部分:数据查询部分和限制行数部分。

数据查询部分用来获取需要查询的数据,限制行数部分用来指定返回结果的行数。

在编写查询语句时,我们可以使用SQL语句来构造。

第三步:使用PreparedStatement为了提高代码的可读性和安全性,我们通常使用PreparedStatement来执行SQL查询语句。

PreparedStatement是一个预编译的SQL语句对象,它可以接收参数并执行SQL查询。

使用PreparedStatement我们可以将参数化查询和分页操作结合在一起。

第四步:设置limit参数在使用PreparedStatement执行查询之前,我们需要为limit参数赋值。

limit参数用于指定返回结果的行数。

在Java中,我们可以使用setInt方法将limit参数设置为合适的值。

例如,当我们想要查询第一页的10条记录时,可以将limit参数设置为10。

第五步:获取分页结果当我们设置好limit参数并执行PreparedStatement之后,我们可以使用ResultSet来获取分页查询的结果。

java分页公式(一)

java分页公式(一)

java分页公式(一)Java分页公式1. 什么是分页公式?分页公式是用于在Java程序中对数据进行分页展示的数学公式。

它可以根据每页显示的数据数量和当前页数,计算出数据在总量中的起始位置和结束位置,从而实现数据分页的功能。

2. 分页公式的常用公式总页数的计算公式总页数的计算公式是根据总数据量和每页显示数据量来计算的,公式如下:totalPage = ceil(totalCount / pageSize);其中,totalCount表示总数据量,pageSize表示每页显示的数据量,totalPage表示总页数。

举例说明:假设总共有50条数据,每页显示10条数据,那么根据上述公式,总页数为50 / 10 = 5。

当前页数据起始位置的计算公式当前页数据的起始位置是根据当前页数和每页显示数据量来计算的,公式如下:startIndex = (currentPage - 1) * pageSize;其中,currentPage表示当前页数,从1开始计数,pageSize表示每页显示的数据量,startIndex表示当前页数据的起始位置。

举例说明:假设当前页为第3页,每页显示10条数据,那么根据上述公式,起始位置为(3 - 1) * 10 = 20。

当前页数据结束位置的计算公式当前页数据的结束位置是根据当前页数据的起始位置和每页显示数据量来计算的,公式如下:endIndex = startIndex + pageSize - 1;其中,startIndex表示当前页数据的起始位置,pageSize表示每页显示的数据量,endIndex表示当前页数据的结束位置。

举例说明:假设当前页数据起始位置为20,每页显示10条数据,那么根据上述公式,结束位置为20 + 10 - 1 = 29。

3. 总结以上列举了Java分页公式中常用的三个公式,分别是总页数的计算公式、当前页数据起始位置的计算公式和当前页数据结束位置的计算公式。

java分页实现原理

java分页实现原理

java分页实现原理Java分页实现原理在开发Web应用程序时,经常需要对大量数据进行分页展示,以提高用户体验和系统性能。

Java提供了多种方法来实现分页功能,本文将介绍一种常用的实现原理。

一、分页的概念和作用分页是将大量数据按照一定的规则分成若干页进行展示的一种技术。

在Web应用程序中,分页可以有效地减少单个页面的数据量,提高页面加载速度,同时也方便用户进行数据浏览和导航。

二、基本原理Java分页的基本原理是通过查询数据库获取数据,并根据每页显示的数量和当前页码来划分数据,然后将划分后的数据进行展示。

下面是具体的实现步骤:1. 获取总记录数:首先需要查询数据库获取数据的总记录数,以便计算总页数。

2. 计算总页数:根据总记录数和每页显示的数量,可以计算出总页数。

总页数 = 总记录数 / 每页显示的数量(向上取整)。

3. 获取当前页数据:根据当前页码和每页显示的数量,计算出数据的起始位置和结束位置,然后查询数据库获取当前页的数据。

4. 展示数据:将获取到的当前页数据进行展示,可以通过列表、表格等方式展示数据。

5. 分页导航:在页面底部显示分页导航条,包括首页、上一页、下一页、末页等按钮,用户可以通过点击按钮来切换页码。

6. 数据校验:在获取当前页数据之前,需要对页码进行校验,确保页码不超出总页数的范围。

三、关键代码示例下面是一个简单的Java代码示例,用于实现基本的分页功能:```java// 查询总记录数int totalRecords = dao.getTotalRecords();// 计算总页数int pageSize = 10; // 每页显示10条数据int totalPages = (int) Math.ceil((double) totalRecords / pageSize);// 校验页码int currentPage = 1; // 当前页码if (currentPage < 1) {currentPage = 1;} else if (currentPage > totalPages) {currentPage = totalPages;}// 计算起始位置和结束位置int startIndex = (currentPage - 1) * pageSize;int endIndex = startIndex + pageSize;// 查询当前页数据List<Data> dataList = dao.getDataList(startIndex, endIndex);// 展示数据for (Data data : dataList) {// 展示数据的代码}// 分页导航String navigation = generateNavigation(currentPage, totalPages);// 展示分页导航的代码```以上代码中,`dao`代表数据访问对象,`Data`代表数据实体类。

java redis 分页缓存实现原理

java redis 分页缓存实现原理

java redis 分页缓存实现原理Redis是一个开源的内存数据库,通过将数据存储在内存中来加快读写速度。

在使用Redis进行分页缓存时,可以将查询结果存储在Redis中,以便下次查询时能够减少数据库的查询次数,提高系统性能。

Redis提供了多种数据结构,可以根据具体需求选择合适的数据结构来实现分页缓存。

常用的数据结构有字符串(String)、列表(List)、哈希表(Hash)、有序集合(Sorted Set)等。

下面以列表和哈希表两种数据结构为例,详细说明Redis分页缓存的实现原理。

1. 列表(List)数据结构:使用列表数据结构进行分页缓存时,可以将查询结果作为一个列表存储在Redis中。

每一条数据可以作为列表中的一个元素,通过列表相关命令可以实现分页查询。

- 将查询结果存储到Redis列表中:可以使用LPUSH命令将每条数据作为一个列表元素存储到Redis中,例如:LPUSH key value1、LPUSH key value2...。

每次查询时,使用LRANGE 命令获取指定范围的数据,例如:LRANGE key start end,其中start为起始索引,end为结束索引。

- 分页查询:每次查询时,可以通过计算起始索引和结束索引,来获取对应页码的数据。

例如,每页显示10条数据,查询第2页时,起始索引就是10,结束索引就是19。

使用LRANGE命令获取指定范围的数据,例如:LRANGE key 10 19。

- 实现缓存更新:当数据库中的数据发生变化时,需要更新Redis缓存中对应的数据。

可以使用LTRIM命令截取列表,保留指定的数据范围。

例如,数据库中某条数据更新后,可以使用LTRIM命令截取列表,保留除了更新数据之外的其他数据,然后再将更新后的数据插入到列表的首位。

2. 哈希表(Hash)数据结构:使用哈希表数据结构进行分页缓存时,可以将查询结果作为一个哈希表存储在Redis中。

java redis 缓存分页实现原理

java redis 缓存分页实现原理

java redis 缓存分页实现原理Java Redis缓存是一种用于在Web应用程序中提高数据访问性能的技术。

它通过将常用的数据存储在内存中,以便更快地访问和获取,从而减少了对数据库的访问。

分页是Web应用程序中常见的功能之一,它允许用户在列表或表格中浏览数据,并按页查看数据,以减少数据量和提高用户体验。

Java Redis缓存的分页实现原理是,将查询的结果集划分为多个页,并将每个页的数据存储在Redis缓存中,以供后续的访问和查询。

下面将详细介绍Java Redis缓存分页的实现原理。

1.将查询结果集分页:在数据库查询之后,将结果集按照每页显示的数量划分为多个页,例如每页显示10条数据,将结果集分为若干个包含10条数据的页。

这样可以方便后续的分页访问和查询。

2.将每页的数据存储到Redis缓存中:对于每个分页的数据,将其存储到Redis缓存中。

可以使用Redis 的数据结构Hash或List来存储每页的数据。

对于Hash结构,可以使用页号作为Key,对应的数据作为Value,将所有页的数据存储到一个Hash中。

对于List结构,可以使用一个List来存储所有的分页数据,每个分页数据作为一个元素。

通过使用Redis缓存,可以提高分页的访问速度和性能。

3.使用Redis缓存进行分页查询:当用户请求分页数据时,首先从Redis缓存中获取对应页的数据。

如果缓存中存在该页的数据,则直接返回给用户;如果缓存中不存在该页的数据,则从数据库中查询该页的数据,并存储到Redis缓存中,以供后续的查询和访问。

4.缓存失效和更新:为了保证数据的实时性,需要处理缓存的失效和更新问题。

当用户修改或删除数据时,需要更新对应页的数据缓存,或者将所有缓存的数据进行失效处理,以保证数据的一致性。

可以通过监听数据的修改和删除操作,在数据库操作完成后,更新或失效对应的缓存数据。

5.缓存过期时间设置:为了控制内存使用和避免缓存数据过时,可以设置缓存数据的过期时间。

Java实现分页功能常见的几种方法

Java实现分页功能常见的几种方法

Java实现分页功能常见的⼏种⽅法⼀、limit关键字service层@Service@Transactionalpublic class ImplStudentService implements StudentService {@Resourceprivate StudentDao studentDao;@Overridepublic List<Student> selectAllStudent(String province, Integer offset, Integer limit) {return studentDao.selectAll(province,offset,limit);}}sql语句select * from student where province = #{province} limit #{offset},#{limit}⼆、hibernate分页service层@Overridepublic List getStudents(Integer pageNo,Integer pageSize) throws Exception {// 分页数据int[] startIdAndCount = new int[2];startIdAndCount[0] = pageNo * pageSize;startIdAndCount[1] = pageSize;return studentDao.selectStudentsByPage(startIdAndCount);}dao层@Overridepublic List findByHqlPage(int[] startIdAndCount) throws Exception {String hql = "...";try {Query query = getSession().createQuery(hql);// 设置分页if (startIdAndCount != null && startIdAndCount.length > 0) {int rowStartIdx = Math.max(0, startIdAndCount[0]);if (rowStartIdx > 0) {query.setFirstResult(rowStartIdx);// 设置开始取值的索引}if (startIdAndCount.length > 1) {int rowCount = Math.max(0, startIdAndCount[1]);if (rowCount > 0) {query.setMaxResults(rowCount);// 设置结束取值的索引}}}return query.list();} catch (RuntimeException re) {log.error("分页查询失败!", re);throw re;}}三、截取List查询结果分页(简单粗暴)...List<StudentEnroll> students = studentlDao.getAllStudents();int count = 0;if(studentEnrolls != null && studentEnrolls.size() > 0) {count = studentEnrolls.size();int fromIndex = pageNo * pageSize;int toIndex = (pageNo + 1) * pageSize;if(toIndex > count) {toIndex = count;}List<StudentEnroll> pageList = studentEnrolls.subList(fromIndex, toIndex);...四、mybatis框架pageHelper插件分页Spring整合:导⼊pom.xml<!-- https:///artifact/com.github.pagehelper/pagehelper --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.2</version></dependency>配置项⽬配置⽂件(我在spring和mybatis整合的配置⽂件中配置的,如果在mybatis核⼼配置⽂件中配置,百度⼀下) <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 依赖数据源 --><property name="dataSource" ref="dataSource"/><!-- 注册加载myBatis映射⽂件 --><property name="mapperLocations"><array><value>classpath*:com/yyz/mapper/*Mapper.xml</value></array></property><!-- PageHelper分页配置 --><property name="plugins"><array><bean class="com.github.pagehelper.PageInterceptor"><property name="properties"><!--使⽤下⾯的⽅式配置参数,⼀⾏配置⼀个,后⾯会有所有的参数介绍 --><value><!--helperDialect属性来指定分页插件使⽤哪种⽅⾔。

java 集合分页方法

java 集合分页方法

java 集合分页方法在Java中,可以使用集合(Collection)和分页技术来实现分页功能。

以下是一个简单的Java分页方法的示例:```javaimport ;import ;public class PaginationHelper<T> {private int pageSize;private int currentPage;private List<T> dataList;public PaginationHelper(int pageSize, int currentPage, List<T> dataList) {= pageSize;= currentPage;= dataList;}public List<T> getPageData() {int start = (currentPage - 1) pageSize;int end = start + pageSize;if (start < 0) {start = 0;}if (end > ()) {end = ();}if (start >= end) {return new ArrayList<>();} else {return (start, end);}}}```这个`PaginationHelper`类包含一个泛型类型`T`,表示要分页的数据类型。

构造函数接受三个参数:每页的大小、当前页码和数据列表。

`getPageData()`方法返回当前页的数据列表。

它首先计算起始和结束索引,然后使用`subList()`方法从数据列表中提取出当前页的数据。

如果起始索引小于0或大于数据列表的大小,则返回一个空列表。

使用示例:```javaList<String> dataList = new ArrayList<>();// 添加数据到dataList中...PaginationHelper<String> paginationHelper = new PaginationHelper<>(10, 1, dataList);List<String> pageData = ();```在这个示例中,我们创建了一个`PaginationHelper`对象,将每页大小设置为10,当前页码设置为1,并将数据列表传递给构造函数。

java手动分页处理

java手动分页处理

java⼿动分页处理经常我们在操作数据库的时候都会⽤到分页,⽽且很多框架也提供了分页功能,像PageHelper.但是在有些项⽬中,需要将数据查询出来进⾏⼿动分页,那么原理是什么呢?
其实很简单,⾸先需要知道数据总量,如果不知道数据总量,那么就要指定数据总量:totalCount 然后每页查询多少条数据,需要指定.我们默认pageSize=100
然后就进⾏分页了,下⾯是分页的代码
// 分页
short pageSize = 100;
int pageNum = totalCount / pageSize;
int surplus = totalCount % pageSize;//是不是整除
if (surplus > 0) {
pageNum = pageNum + 1;
}
for(int i = 0; i < pageNum; i++){
int pageBegin = i * pageSize;
//传⼊pageBegin,pageSize进⾏业务逻辑处理
}
上⾯是将所有数据进⾏分页处理.然后通过jdbc操作数据库,查询出业务数据.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

package tee;import java.util.List;import ers.Constants;public class ss {private int count = 10;private int dataCount ;private List list;private int pageCount;private int currentPageIndex;private int startIndex;private int endIndex;public ss(int currentPageIndex,int dataCount ){this.currentPageIndex = currentPageIndex;this.dataCount =dataCount;pageCount = (dataCount +count-1 )/count;if(pageCount <5){startIndex = 1 ;endIndex = pageCount;}else{/*startIndex = Constants.getStartNumber();endIndex = Constants.getStartNumber();if(currentPageIndex == Constants.getStartNumber())*/{startIndex = currentPageIndex-1;endIndex = currentPageIndex+3;/*Constants.setStartNumber(Constants.getStartNumber()-1)*/ /*Constants.setEndtNumber(Constants.getEndNumber()-1)*/ }/*if(currentPageIndex == Constants.getEndNumber())*/{startIndex = currentPageIndex-3;endIndex = currentPageIndex+1;/*Constants.setStartNumber(Constants.getStartNumber()-1)*/ /*Constants.setEndtNumber(Constants.getEndNumber()-1)*/}if (startIndex<1){startIndex = 1;endIndex =5;/*Constants.setStartNumber();*//*Constants.setEndNumber();*/}if(endIndex>pageCount){startIndex = pageCount-4;endIndex = pageCount;/*Constants.setStartNumber(pageCount-4);*//*Constants.setEndNumber(pageCount);*/}}}}EL表达式<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"><title>Insert title here</title></head><script type="text/javascript">${ername};<%=request.getParameter("username")%>/* 当username为空的时候EL不显示而表达式会显示null */<%=request.getParameterValues("hobbies")[0]%>${paramValues.hobbies[0]} /* 返回一个数组当checkbox时候 */<%-- <%=((User)request.getAttribute("user")).getPwd()%> --%> ${er.pwd}${user.pwd} /* 当不指定范围的时候自动从pageScope开始查找,直到application, */${header.accept}/* 输出请求头accept的值 */${headerValues.cookie[0]}${ cookie.JSESSIONID.value}/* <!-- 配置上下文参宿 --><context-param><param-name>path</param-name><param-value>/WEB-INF/props</param-value></context-param> */${initParam.path}${pageContext.request} /* 方法输出请求对象 */ ${pageContext.request.remoteAddr} /* 输出127.0.0.1 */ ${19%2}/* %或mod方法是按求模 */${A?B:C}/* 如果a为true则执行b如果a为false则执行c */ ${requestScore.cust2.custname} 获取数据的方式/* ${requestScore["cust2"]["custname"]} *//* 只能使用[] 的情况 */${paramValues.hobbies[0]}${requestScope.list[1].custname}${param["user_name"]}${param[paramName]}${param.count+10}</script><body><div align="left"><font color="blue">访问次数<%=application.getAttribute("count") %></font></div><div align="right"><h1><font color="red">欢迎<%=session.getAttribute("userName") %>登录</font></h1></div>登录成功欢迎您:${ername}<br>您是第${applicationScope.count}位访者</body></html>servletpackage com.chinasofti.eec.servlet;import java.io.IOException;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/login")public class UserServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stubthis.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String btn = req.getParameter("btn");String name = req.getParameter("user");String pwd = req.getParameter("pwd");if("��¼".equals(btn)){if("admin".equals(name)&&"admin".equals(pwd)){ServletContext ctxt =this.getServletContext();int count = 0;if(ctxt.getAttribute("count")==null){count= 0;}else{count =Integer.parseInt(ctxt.getAttribute("count").toString());}count++;ctxt.setAttribute("count", count);String timeLength =req.getParameter("date");int days = 0;if(timeLength!=null){days = Integer.parseInt(timeLength);}if(days!=0){Cookie usernamecookie = newCookie("username",name);Cookie userpwd = newCookie("userpwd",pwd);usernamecookie.setMaxAge(days*24*3600);userpwd.setMaxAge(days*24*36000);resp.addCookie(usernamecookie);resp.addCookie(userpwd);}req.getSession().setAttribute("userName", name);resp.sendRedirect("index.jsp");}}}}JSTL赋值表达式<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"><title>Insert title here</title></head><script type="text/javascript">/* <uri> /jsp/jstl/core </uri> */**/使用jstl表达式<%-- <%@ taglib uri="/jsp/jstl/core" prefix = "c""%> --%></script><body></body></html>JSTL练习package Dao;import java.sql.Time;public class User {public User() {// TODO Auto-generated constructor stub}public User(String string, String string2, String string3, String string4, Time time) {// TODO Auto-generated constructor stub}private String userid;private String username;private String userage;private String userpwd;private String remark;private String useraddress;}DAO在UserDao中,定义selectAll方法,查询表user,返回所有记录,封装到集合中返回package Dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;public class UserDao {public List<User>selectAll(){List<User> userlist = new ArrayList<User>();Connection conn = null;String sql = "select * from User";PreparedStatement pstmt = null;ResultSet rs = null;User user = new User();try {pstmt = conn.prepareStatement(sql);rs = pstmt.executeQuery();while(rs.next()){user = newUser(rs.getString(1),rs.getString(2),rs.getString(3),rs.getString (4),rs.getTime(5));userlist.add(user);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return userlist;}}在UserService类中定义viewAllEmloyees方法package Dao;import java.util.List;public class UserService {private UserDao dao = new UserDao();public List<User> viewAllEmployees(){return dao.selectAll();}}创建ViewAllServlet调用UserService返回用户列表并跳转的jsp页面注意跳转路径package Dao;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;public class ViewAllServlet extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubthis.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stubUserService us = new UserService();List<User> list = us.viewAllEmployees();req.setAttribute("userlist", list);req.getRequestDispatcher("admin/viewemployeesold.jsp").forwa rd(req, resp);}}HttpServletpackage servlet;import java.io.IOException;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class html extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stubthis.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stubString btn = req.getParameter("btn");String name = req.getParameter("user");String pwd = req.getParameter("pwd");/*请求行请求方式(GET/POST)请求资源URL*/req.getMethod();req.getRequestURI();req.getProtocol();/*请求头键值队形式存在 */req.getHeader("name");req.getHeaderNames();/*获取参数数据 get或post*/req.getParameterNames(); /*所有参数*/req.getParameterValues("name");/* 多个值的参数*/req.getParameter("name"); /* 一个值的内容*/if("登录".equals(btn)){{if("admin".equals(name)&&"admin".equals(pwd)){ServletContext ctxt =this.getServletContext();int count = 0;if(ctxt.getAttribute("count")==null){count= 0;}else{count =Integer.parseInt(ctxt.getAttribute("count").toString());}count++;ctxt.setAttribute("count", count);}}}}}Infopackage servlet;import java.io.IOException;import java.util.HashMap;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ServieltInfo extends HttpServlet{private static final byte[] sa = null;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stubthis.doPost(req, resp);@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stubString m = req.getParameter("m");if("findAllUser".equals(m)){/*UserService us = new UserServiceImpl();List<User> list = us.findAllUserInfo(User user);*//*int count = us.getUserCountInfo();*/Map<String,Object> mapdata = newHashMap<String,Object>();/*mapdata.put("rows", list);mapdata.put("total", count);*/if(mapdata!=null){/*resp.getWriter().print(newGson().toJson(mapdata));*/resp.setStatus(0); /*相应行*/resp.setHeader("name", "value"); /*相应头*//*实体内容*/resp.getWriter().write("ss"); /*字符内容*/resp.getOutputStream().write(sa); /*字节内容*/}}}}Vo<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"><title>Insert title here</title></head><div align="left"><font color="blue">访问次数<%=application.getAttribute("count") %></font></div><div align="right"><h1><font color="red">欢迎<%=session.getAttribute("userName") %>登录</font></h1></div></body></html>Web.xml1<?xml version="1.0"encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance" xmlns="/xml/ns/javaee"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_1.xsd"id="WebApp_ID"version="3.1"><display-name></display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><filter><filter-name>userFilter</filter-name><filter-class>erFilter</filter-class></filter><filter-mapping><filter-name>userFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 配置一个xml --><servlet><servlet-name>ServletInfo</servlet-name><servlet-class>servlet.ServieltInfo</servlet-class></servlet><servlet-mapping><servlet-name>ServletInfo</servlet-name><url-pattern>/userservlet</url-pattern></servlet-mapping></web-app>一般xml是用来配置过滤器的,而真正的路径是由@注解来执行功能的Vo<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"><title>Insert title here</title></head><script type="text/javascript">$(function(){$("#saveBtn").click(function(){var data = { //把表单拿到的值通过变量键值放到data中username : $("#username").val(),userage : $("#userage").val(),userpwd : $("#userpwd").val(),useraddress:$("#useraddress").val(),remark : $("#remark").val()}通过回调函数flag把从servlet执行完功能的调入体现$.post('../userservlet?m=add',data,function(flag){if(flag=="true"){$("#dg").datagrid('reload');//刷新表格$("#form1").form('clear');//清除表单$("#dd").dialog({closed : true,//关闭添加窗口})$.messager.show({title:'添加用户',msg:'添加用户成功',timeout:3000,showType:'slide'});}else{$.messager.alert('添加书本','添加书本失败','error');}})})})</script><body><div align="left"><font color="blue">访问次数<%=application.getAttribute("count") %></font></div><div align="right"><h1><font color="red">欢迎<%=session.getAttribute("userName") %>登录</font></h1></div><form action=""id="form1">用户名称:<input type="text"id="username"><br/> <br/>用户年龄:<inputtype="text"id="userage"><br/><br/>用户密码:<inputtype="password"id="userpwd"><br/><br/>用户地址:<input type="text"id="useraddress"><br/><br/>用户备注:<input type="text"id="remark"><br/><br/></form></body></html>ServletInfopackage servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/userservlet") //这个东西是别人的,servlet要通过这个标记执行完功能后去找到有这个标记的public class ServieltInfo extends HttpServlet{private static final byte[] sa = null;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stubthis.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stubString m = req.getParameter("m");if("add".equals(m)){/*UserService us = new UserServiceImpl();boolean flag = us.saveUserInfo(newUser(req.getParameter("username"),Integer.parseInt(req.getParameter("userage")),req.getParameter("userpwd"),req.getParameter("remark"),req.getParameter("useraddress")));*//*if(flag){ //Dao和service中的返回值resp.getWriter().print(true);}else{resp.getWriter().print(false);}*/}}}Servlet测试笔记<?xml version="1.0"encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance" xmlns="/xml/ns/javaee"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_1.xsd"id="WebApp_ID"version="3.1"><display-name></display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><servlet><servlet-name>UserFilter</servlet-name><servlet-class>erFilter</servlet-class><!-- 包下的类名 --><init-param><param-name>name</param-name><param-value>张三丰</param-value></init-param><init-param><param-name>age</param-name><param-value>20</param-value></init-param><init-param><param-name>height</param-name><param-value>180</param-value></init-param></servlet></web-app>UserFilter.javapackage com.chinasofti.eec.filter;import java.io.IOException;import java.util.Enumeration;import javax.servlet.GenericServlet;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class UserFilter extends HttpServlet{private GenericServlet config;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stubthis.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub/*String name = config.getInitParameter("name");拿取单个参数System.out.println(name);*/String name = config.getInitParameter("name");Enumeration<String> enu =config.getInitParameterNames();while(enu.hasMoreElements()){System.out.println(name+":"+config.getInitParameter(name)); /*拿到所有参数*/}}}演示上次访问的时间。

相关文档
最新文档