@Override
public User login(User user) {
return dao.findUserByUsernameAndPassword(user.getUsername(),user.getPassword());
}
3:UserDaoImpl(findUserByUsernameAndPassword)
@Override
public User findUserByUsernameAndPassword(String username, String password) {
try {
String sql = "select * from user where username = ? and password = ?";
User user = template.queryForObject(sql, new BeanPropertyRowMapper(User.class), username, password);
return user;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.调用UserService完成查询
UserService service = new UserServiceImpl();
List users = service.findAll();
//2.将list存入request域
request.setAttribute("users",users);
//3.转发到list.jsp
request.getRequestDispatcher("/list.jsp").forward(request,response);
}
2:UserServiceImpl(findAll)
@Override
public List findAll() {
//调用Dao完成查询
return dao.findAll();
}
3:UserDaoImpl(findAll)
@Override
public List findAll() {
//使用JDBC操作数据库...
//1.定义sql
String sql = "select * from user";
List users = template.query(sql, new BeanPropertyRowMapper(User.class));
return users;
}
window.onload = function(){
//给删除选中按钮添加单击事件
document.getElementById("delSelected").onclick = function(){
if(confirm("您确定要删除选中条目吗?")){
var flag = false;
//判断是否有选中条目
var cbs = document.getElementsByName("uid");
for (var i = 0; i < cbs.length; i++) {
if(cbs[i].checked){
//有一个条目选中了
flag = true;
break;
}
}
if(flag){//有条目被选中
//表单提交
document.getElementById("form").submit();
}
}
}
}
2:删除选中时可以添加全部选中
//1.获取第一个cb
document.getElementById("firstCb").onclick = function(){
//2.获取下边列表中所有的cb
var cbs = document.getElementsByName("uid");
//3.遍历
for (var i = 0; i < cbs.length; i++) {
//4.设置这些cbs[i]的checked状态 = firstCb.checked
cbs[i].checked = this.checked;
}
}
(二):后端代码实现
1:删除选中的思路分析
2:DelSelectedServlet
public class DelSelectedServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.获取所有id
String[] ids = request.getParameterValues("uid");
//2.调用service删除
UserService service = new UserServiceImpl();
service.delSelectedUser(ids);
//3.跳转查询所有Servlet
response.sendRedirect(request.getContextPath()+"/findUserByPageServlet");
}
3:UserService(delSelectedUser)
//删除选中用户
@Override
public void delSelectedUser(String[] ids) {
if(ids != null && ids.length > 0){
//1.遍历数组
for (String id : ids) {
//2.调用dao删除
dao.delete(Integer.parseInt(id));
}
}
}
二:分页查询
(一):分页查询页面
1:在list.jsp中添加组件分页栏
(二):后端代码实现
1:分页查询实体类的思路分析
1:添加一个分页查询相关的类
public class PageBean {
private int totalCount; // 总记录数
private int totalPage ; // 总页码
private List list ; // 每页的数据
private int currentPage ; //当前页码
private int rows;//每页显示的记录数
//分页条件查询
@Override
public PageBean findUserByPage(String _currentPage, String _rows, Map condition) {
int currentPage = Integer.parseInt(_currentPage);
int rows = Integer.parseInt(_rows);
//第1页的上一页永远返回1
if(currentPage <=0) {
currentPage = 1;
}
//1.创建空的PageBean对象
PageBean pb = new PageBean();
//2.设置参数
pb.setCurrentPage(currentPage);
pb.setRows(rows);
//3.调用dao查询总记录数
int totalCount = dao.findTotalCount(condition);
pb.setTotalCount(totalCount);
//4.调用dao查询List集合
//计算开始的记录索引
int start = (currentPage - 1) * rows;
List list = dao.findByPage(start,rows,condition);
pb.setList(list);
//5.计算总页码
int totalPage = (totalCount % rows) == 0 ? totalCount/rows : (totalCount/rows) + 1;
pb.setTotalPage(totalPage);
return pb;
}
5:UserDaoImpl(findTotalCount)
//查询总记录数
@Override
public int findTotalCount() {
//1.定义模板初始化sql
String sql = "select count(*) from user";
return template.queryForObject(sql,Integer.class);
}
6:UserDaoImpl(findByPage)
//分页条件查询
@Override
public List findByPage(int start, int rows) {
String sql = "select * from user limit?,? ;
return template.query(sql,new BeanPropertyRowMapper,start,rows);
}
三:复杂条件查询
(一):复杂条件查询界面
1:复杂条件查询的界面展示
2:复杂条件查询的jsp代码
(二):后端代码实现
1:复杂条件查询的思路分析
2:在分页查询的FindUserByPageServlet基础上查询复杂条件的参数集合并传参
//获取条件查询参数
Map condition = request.getParameterMap();
//2.调用service查询
UserService service = new UserServiceImpl();
PageBean pb = service.findUserByPage(currentPage,rows,condition);
System.out.println(pb);
3:在分页查询的UserService(findUserByPage) 的基础上传参
//3.调用dao查询总记录数
int totalCount = dao.findTotalCount(condition);
pb.setTotalCount(totalCount);
//4.调用dao查询List集合
//计算开始的记录索引
int start = (currentPage - 1) * rows;
List list = dao.findByPage(start,rows,condition);
pb.setList(list);
//查询总记录数
@Override
public int findTotalCount(Map condition) {
//1.定义模板初始化sql
String sql = "select count(*) from user where 1 = 1 ";
StringBuilder sb = new StringBuilder(sql);
//2.遍历map
Set keySet = condition.keySet();
//定义参数的集合
List
#!/bin/bash
address="192.168.150.128:6666,192.168.150.128:6666"
hosts=(${address//,/ })
sfile="staticts.log"
for hostitem in ${hosts[@]}
do
ipport=(${hostitem
提高代码质量的插件1. FindBugsFindBugs可以帮你找到Java代码中的bug,它使用Lesser GNU Public License的自由软件许可。2. CheckstyleCheckstyle插件可以集成到Eclipse IDE中去,能确保Java代码遵循标准代码样式。3. ECLemmaECLemma是一款拥有Eclipse Public License许可的免费工具,它提供了
一、对分组的记录取前N条记录:例如:取每组的前3条最大的记录 1.用子查询: SELECT * FROM tableName a WHERE 3> (SELECT COUNT(*) FROM tableName b WHERE b.id=a.id AND b.cnt>a. cnt) ORDER BY a.id,a.account DE
HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务,HTTP目前协议的版本是1.1.HTTP是一种无状态的协议,无状态是指Web浏览器和Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后We
感谢http://www.w3school.com.cn提供的资料
HTML 文档中的每个成分都是一个节点。
节点
根据 DOM,HTML 文档中的每个成分都是一个节点。
DOM 是这样规定的:
整个文档是一个文档节点
每个 HTML 标签是一个元素节点
包含在 HTML 元素中的文本是文本节点
每一个 HTML 属性是一个属性节点
注释属于注释节点
Node 层次
var formData = new FormData($("#inputFileForm")[0]);
$.ajax({
type:'post',
url:webRoot+"/electronicContractUrl/webapp/uploadfile",
data:formData,
async: false,
ca