js和jstl显示表格数据servlet

用JSTL实现JSP分页显示数据代码(MySQL数据库) 用JSTL实现JSP分页显示数据代码,MySQL数据库,好用,有数据库和表创建代码!!! 立即下载

创建表

分析代码,在所使用数据库创建表

创建工程

eclipse或idea(web工程)

目录结构

src

在这里插入图片描述

web

在这里插入图片描述

代码

首页dxh.do

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>web508</display-name>
  <welcome-file-list>
    <welcome-file>dxh.do</welcome-file>  
  </welcome-file-list>
</web-app>

Servlet

package com.web508.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.jasper.JasperException;

import com.web508.dao.DxhDao;
import com.web508.model.Dxh;

@WebServlet(urlPatterns = { "/dxhAction", "/dxh.php", "/dxh.do" })
public class DxhServlet extends HttpServlet {	
	DxhDao dao=new DxhDao();
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		String op = req.getParameter("op");
		if (op == null)
			op = "";
		switch (op) {
		case "check":
            check(req,resp);
			break;
		case "insert":
			insert(req,resp);
			break;
		case "delete":
			delete(req,resp);
			break;
		case "select":
			select(req,resp);
			break;			
		default:
			select2(req,resp);
			break;
		}
	}
	private void select2(HttpServletRequest req, HttpServletResponse resp) throws IOException {
		PrintWriter out = resp.getWriter();
		String dxhb=req.getParameter("dxhb");
		if (dxhb==null) {
			dxhb="";
		}
		List<Dxh>  lst=dao.getDxh("select * from dxh where dxhb like '%"+dxhb+"%'");
		
		req.getSession().setAttribute("lstDxh", lst);
		resp.sendRedirect("showDxhByJava.jsp");
		
		
	}

	private void select(HttpServletRequest req, HttpServletResponse resp) throws IOException {
		PrintWriter out = resp.getWriter();
		resp.setCharacterEncoding("UTF-8");
		String dxhb=req.getParameter("dxhb");
		if (dxhb==null) {
			dxhb="";
		}
		List<Dxh>  lst=dao.getDxh("select * from dxh where dxhb like '%"+dxhb+"%'");
		out.print(lst);
		
	}
	private void delete(HttpServletRequest req, HttpServletResponse resp) {
		//调用dao执行删除sql语句,删除成功向浏览器输出success  失败输出failure
		
	}
	private void check(HttpServletRequest req, HttpServletResponse resp) throws IOException {
		PrintWriter out = resp.getWriter();
		String dxha=req.getParameter("dxha");
		if (dao.isExist("select * from dxh where dxha='"+dxha+"'")) {
			out.print("exist");
		} else {
			out.print("not");
		}
	}
	private void insert(HttpServletRequest req, HttpServletResponse resp) throws IOException, JasperException {
		PrintWriter out = resp.getWriter();
		Dxh dxh=new Dxh();		
		org.apache.jasper.runtime.JspRuntimeLibrary.introspect(dxh, req);
		
		String  sql="insert into dxh(dxha,dxhb,dxhc,dxhd) values(?,?,?,?)";
		if (dao.exeUpdate(sql, new Object[] {dxh.getDxha(),dxh.getDxhb(),dxh.getDxhc(),dxh.getDxhd()})) {
			out.print("success");
		} else {
			out.print("failure");
		}
		
	}

}

首页效果

执行select2

private void select2(HttpServletRequest req, HttpServletResponse resp) throws IOException {
		PrintWriter out = resp.getWriter();
		String dxhb=req.getParameter("dxhb");
		if (dxhb==null) {
			dxhb="";
		}
		List<Dxh>  lst=dao.getDxh("select * from dxh where dxhb like '%"+dxhb+"%'");
		
		req.getSession().setAttribute("lstDxh", lst);
		resp.sendRedirect("showDxhByJava.jsp");
		
		
	}

showDxhByJava.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ taglib  prefix="c"  uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
input[type=button]{
	background-color: #4CAF50;
	color:white;
}
</style>
</head>
<link rel="stylesheet" href="bootstrap.min.css">
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function allSel(allsel){
	$(".choice").prop("checked",allsel.checked);
}

function delOne(i){
	if(confirm("确定删除?")) {
		//发异步删除请求,若删除成功,则执行		$("#"+i).remove();
	}
}




function delSel(){
	if(!confirm("确定删除?")) return;
	$("input[name='chk']:checked").each(
		function(){
			var i=$(this).val();
			$("#"+i).remove();
		}
	);
}
</script>
</head>
<body>
	<div class="container">
	<div class="row clearfix">
	    <div class="col-md-12 column">
	    <nav class="navbar navbar-default" role="navigation">
				
				
				<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
					
					<form class="navbar-form navbar-left" action="dxhAction">
						<div class="form-group">
						<input type="text" class="form-control"   name="dxhb" placeholder="search by sencond field..." />
						</div> <button type="submit" class="btn btn-default">查询</button>
					</form>
					
				</div>
				
			</nav>

	    </div>
		<div class="col-md-12 column">
		
			<table id="tbl" class="table">
				<thead><tr><th>全选<input type="checkbox" value="全选" onclick="allSel(this)"></th>
						<th>编号	</th>	<th>	产品</th>		<th>交付时间	</th><th>状态</th><th>处理</th>
					</tr>				</thead>
					
				<tbody>
				<!--   使用java提供的标签来显示数据                    -->
				<%int i=1; %>				
				<c:forEach items="${sessionScope.lstDxh}"  var="dxh" varStatus="zz">				
			    <c:choose>
			    <c:when test="${zz.index mod 2  == 1}">
			    <tr id="${dxh.dxha}" class='success'> 
			    </c:when>
			    <c:otherwise>
			     <tr id="${dxh.dxha}" >
			    </c:otherwise>
			    </c:choose>
				
				   
				   <td style='padding-left:36px;'> <%=i++ %>   <input name='chk' class='choice' value="${dxh.dxha}" type='checkbox'></td>
				   <td>${dxh.dxha}</td><td>${dxh.dxhb}</td><td>${dxh.dxhc}</td>
				   <td>${dxh.dxhd}</td><td><a href='javascript:void(0)' onclick='delOne(${dxh.dxha})'>del</td>
				 </tr>
				</c:forEach>				
				</tbody>
			</table>
		</div>
		<div class="col-md-12 column">
			<input class="btn" type="button" value="删除所选" style="margin-right:20px" onclick="delSel()">
			<input class="btn" type="button" value="增&nbsp;&nbsp;&nbsp;加"  style="margin-right:20px" onclick="window.location.href='add.html'">
			<input class="btn" type="button" value="js显示数据"  style="padding:6px 20px" onclick="window.location.href='showDxhByJs.jsp'">
		</div>
		
	</div>
</div>

</body>
<script type="text/javascript">

</script>
</html>

效果

在这里插入图片描述

增加

代码view

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<title>Insert title here</title>
<style type="text/css">
div{
	border-radius:5px;
	background-color:#f2f2f2;
	paddig:20px;
}

input[type=text],input[type=date]{
	width: 100%;
	padding: 12px 20px;
	margin: 8px 0;
	display: inline-block;
	border: 1px solid #ccc;
	border-radius: 4px;
	box-sizing: border-box;
}

input[type=button]{
	width: 100%;
	background-color: grey;
	color: white;
	padding: 14px 20px;
	margin: 8px 0;
	border: none;
	border-radius: 4px;
	cursor: pointer;
}
</style>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
var dxha=$("#dxha").val();
var dxhb=$("#dxhb").val();
var dxhc=$("#dxhc").val();
var dxhd=$("#dxhd").val();
var flag=[false,false,false,false];

function changeBtn(){
	for(var i=0;i<flag.length;i++){
		if(!flag[i]) {
			$("#btn").prop("disabled",true);
			$("#btn").css("background-color","grey");
			return;
		}
	}
	$("#btn").prop("disabled",false);
	$("#btn").css("background-color","#4CAF50");
}

$(function(){
	$("#dxha").keyup(function(){
		dxha=$(this).val();
		if(dxha.length==0 || isNaN(dxha) || dxha<1000 || dxha>9999){
			$("#ats").html("请输入有效数字[1000,9999]");
			flag[0]=false;
			changeBtn();
			return;
		}
		$.ajax({
			//type:'post',
			url:"dxhAction?op=check&dxha="+dxha,
			success:function(res){
			  //  alert(res);
				if(res.indexOf("exist")!=-1){
					$("#ats").html("已被占用");
					flag[0]=false; return;
				}
			}
		})	
		flag[0]=true;
		$("#ats").html("*");
		changeBtn();
	});
	
	$("#btn").click(function(){
		$.ajax({
			url:"dxhAction?op=insert&dxha="+dxha+"&dxhb="+dxhb+"&dxhc="+dxhc+"&dxhd="+dxhd,
			success:function(res){		     
		        if(res.indexOf("success")!=-1){
		        	alert(res);
		        	if (!confirm("继续增加吗?")) {
		        		window.location.href="showDxh.jsp";
					}		        	
		        }else{
		        	alert(res);
		        }			
			}
		})
	});
	
	$("#dxhb").keyup(function(){
		dxhb=$(this).val();
		if(dxhb.length==0){
			$("#bts").html("不能为空");
			flag[1]=false;
			changeBtn();
			return;
		}
		flag[1]=true;
		$("#bts").html("*");
		changeBtn();
	});
	
	$("#dxhc").keyup(function(){
		dxhc=$(this).val();
		if(dxhc.length==0 || isNaN(dxhc) ){
			$("#cts").html("请输入有效数字");
			flag[2]=false;
			changeBtn();
			return;
		}
		flag[2]=true;
		$("#cts").html("*");
		changeBtn();
	});
	
	$("#dxhd").bind("change",function(){
		dxhd=$(this).val();
		if(dxhd.length<10){
			flag[3]=false;
			changeBtn();
			return;
		}
		flag[3]=true;
		$("#dts").html("*");
		changeBtn();
	});
	
	
});
</script>
</head>
<body>
<div>
<label for="dxha">DxhA</label> &nbsp;&nbsp;&nbsp;<font id="ats" color="red"></font> <br/>
<input id="dxha" placeholder="数字。。。" type="text"> <br/>
<label for="dxhb">DxhB</label> &nbsp;&nbsp;&nbsp;<font id="bts" color="red"></font> <br/>
<input id="dxhb" type="text"><br/>
<label for="dxhc">DxhC</label> &nbsp;&nbsp;&nbsp;<font id="cts" color="red"></font> <br/>
<input id="dxhc" type="text"><br/>
<label for="dxhd">DxhD</label> &nbsp;&nbsp;&nbsp;<font id="dts" color="red"></font> <br/>
<input id="dxhd" type="date"><br/>
<input id="btn" value="add" type="button" disabled="disabled">
<h1 id="abc"></h1>
</div>
</body>
</html>

校验

$("#dxha").keyup(function(){
		dxha=$(this).val();
		if(dxha.length==0 || isNaN(dxha) || dxha<1000 || dxha>9999){
			$("#ats").html("请输入有效数字[1000,9999]");
			flag[0]=false;
			changeBtn();
			return;
		}
		$.ajax({
			//type:'post',
			url:"dxhAction?op=check&dxha="+dxha,
			success:function(res){
			  //  alert(res);
				if(res.indexOf("exist")!=-1){
					$("#ats").html("已被占用");
					flag[0]=false; return;
				}
			}
		})	
		flag[0]=true;
		$("#ats").html("*");
		changeBtn();
	});
	private void check(HttpServletRequest req, HttpServletResponse resp) throws IOException {
		PrintWriter out = resp.getWriter();
		String dxha=req.getParameter("dxha");
		if (dao.isExist("select * from dxh where dxha='"+dxha+"'")) {
			out.print("exist");
		} else {
			out.print("not");
		}
	}

增加

$("#btn").click(function(){
		$.ajax({
			url:"dxhAction?op=insert&dxha="+dxha+"&dxhb="+dxhb+"&dxhc="+dxhc+"&dxhd="+dxhd,
			success:function(res){		     
		        if(res.indexOf("success")!=-1){
		        	alert(res);
		        	if (!confirm("继续增加吗?")) {
		        		window.location.href="showDxh.jsp";
					}		        	
		        }else{
		        	alert(res);
		        }			
			}
		})
	});
private void insert(HttpServletRequest req, HttpServletResponse resp) throws IOException, JasperException {
		PrintWriter out = resp.getWriter();
		Dxh dxh=new Dxh();		
		org.apache.jasper.runtime.JspRuntimeLibrary.introspect(dxh, req);
		
		String  sql="insert into dxh(dxha,dxhb,dxhc,dxhd) values(?,?,?,?)";
		if (dao.exeUpdate(sql, new Object[] {dxh.getDxha(),dxh.getDxhb(),dxh.getDxhc(),dxh.getDxhd()})) {
			out.print("success");
		} else {
			out.print("failure");
		}
		
	}

效果

在这里插入图片描述
在这里插入图片描述

其他代码

jar包

在这里插入图片描述

js显示数据

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
input[type=button]{
	background-color: #4CAF50;
	color:white;
}
</style>
</head>
<link rel="stylesheet" href="bootstrap.min.css">
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function allSel(allsel){
	$(".choice").prop("checked",allsel.checked);
}

function delOne(i){
	if(confirm("确定删除?")) {
		//发异步删除请求,若删除成功,则执行		$("#"+i).remove();
	}
}


function delSel(){
	if(!confirm("确定删除?")) return;
	$("input[name='chk']:checked").each(
		function(){
			var i=$(this).val();
			$("#"+i).remove();
		}
	);
}

function getDxh() {
	
	var dxhb=$("#dxhb").val();
	$.ajax({
		type:'post',
		url:"dxhAction?op=select&dxhb="+dxhb,
		success:function(res){
		    console.log(typeof res);    
			res=eval("("+res+")");  //返回的一串数据格式符合JavaScript的对象格式 {a:value,b:value}  ,使用eval函数将字符串转换为对象
		//	alert(typeof res);
		    var  dxhs="";
		    for (var i = 0; i < res.length; i++) {    //遍历数据
		    	var dxh=res[i];
				if (i%2==1) {
					dxhs=dxhs+	"<tr id="+dxh.dxha+" class='success'>";				
				} else {
					dxhs=dxhs+	"<tr id="+dxh.dxha+">";
				}
				dxhs=dxhs+"<td style='padding-left:36px;'><input name='chk' class='choice' value="+dxh.dxha+" type='checkbox'></td>";
				dxhs=dxhs+"<td>"+dxh.dxha+"</td><td>"+dxh.dxhb+"</td><td>"+dxh.dxhc+"</td>";
				dxhs=dxhs+"<td>"+dxh.dxhd+"</td><td><a href='javascript:void(0)' οnclick='delOne("+dxh.dxha+")'>del</td></tr>"
			}
		    $("#dxh").html(dxhs);  			
		}		
	});	
}

$(function(){
	getDxh();	
	$("#btnFind").click(
			function(){				
				getDxh();
			}
	
	);
});
</script>
</head>
<body>
	<div class="container">
	<div class="row clearfix">
	<div class="col-md-12 column">
	    <nav class="navbar navbar-default" role="navigation">
				
				
				<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
					
					<form class="navbar-form navbar-left" action="dxhAction">
						<div class="form-group">
						<input type="text" class="form-control" id="dxhb"  name="dxhb" placeholder="search by sencond field..." />
						</div> <button  id="btnFind" type="button" class="btn btn-default">查询</button>
					</form>
					
				</div>
				
			</nav>

	    </div>
	
		<div class="col-md-12 column">
		
		
		
			<table id="tbl" class="table">
				<thead><tr><th>全选<input type="checkbox" value="全选" onclick="allSel(this)"></th>
						<th>编号	</th>	<th>	产品</th>		<th>交付时间	</th><th>状态</th><th>处理</th>
					</tr>				</thead>
				<tbody  id="dxh">	</tbody>
			</table>
		</div>
		<div class="col-md-12 column">
			<input class="btn" type="button" value="删除所选" style="margin-right:20px" onclick="delSel()">
			<input class="btn" type="button" value="增&nbsp;&nbsp;&nbsp;加"  style="margin-right:20px" onclick="window.location.href='add.html'">
			<input class="btn" type="button" value="java显示数据"  style="padding:6px 20px" onclick="window.location.href='showDxhByJava.jsp'">
		</div>
	</div>
</div>
<h1 id="abc"></h1>
</body>

</html>

jstl显示数据

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ taglib  prefix="c"  uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
input[type=button]{
	background-color: #4CAF50;
	color:white;
}
</style>
</head>
<link rel="stylesheet" href="bootstrap.min.css">
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function allSel(allsel){
	$(".choice").prop("checked",allsel.checked);
}

function delOne(i){
	if(confirm("确定删除?")) {
		//发异步删除请求,若删除成功,则执行		$("#"+i).remove();
	}
}




function delSel(){
	if(!confirm("确定删除?")) return;
	$("input[name='chk']:checked").each(
		function(){
			var i=$(this).val();
			$("#"+i).remove();
		}
	);
}
</script>
</head>
<body>
	<div class="container">
	<div class="row clearfix">
	    <div class="col-md-12 column">
	    <nav class="navbar navbar-default" role="navigation">
				
				
				<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
					
					<form class="navbar-form navbar-left" action="dxhAction">
						<div class="form-group">
						<input type="text" class="form-control"   name="dxhb" placeholder="search by sencond field..." />
						</div> <button type="submit" class="btn btn-default">查询</button>
					</form>
					
				</div>
				
			</nav>

	    </div>
		<div class="col-md-12 column">
		
			<table id="tbl" class="table">
				<thead><tr><th>全选<input type="checkbox" value="全选" onclick="allSel(this)"></th>
						<th>编号	</th>	<th>	产品</th>		<th>交付时间	</th><th>状态</th><th>处理</th>
					</tr>				</thead>
					
				<tbody>
				<!--   使用java提供的标签来显示数据                    -->
				<%int i=1; %>				
				<c:forEach items="${sessionScope.lstDxh}"  var="dxh" varStatus="zz">				
			    <c:choose>
			    <c:when test="${zz.index mod 2  == 1}">
			    <tr id="${dxh.dxha}" class='success'> 
			    </c:when>
			    <c:otherwise>
			     <tr id="${dxh.dxha}" >
			    </c:otherwise>
			    </c:choose>
				
				   
				   <td style='padding-left:36px;'> <%=i++ %>   <input name='chk' class='choice' value="${dxh.dxha}" type='checkbox'></td>
				   <td>${dxh.dxha}</td><td>${dxh.dxhb}</td><td>${dxh.dxhc}</td>
				   <td>${dxh.dxhd}</td><td><a href='javascript:void(0)' onclick='delOne(${dxh.dxha})'>del</td>
				 </tr>
				</c:forEach>				
				</tbody>
			</table>
		</div>
		<div class="col-md-12 column">
			<input class="btn" type="button" value="删除所选" style="margin-right:20px" onclick="delSel()">
			<input class="btn" type="button" value="增&nbsp;&nbsp;&nbsp;加"  style="margin-right:20px" onclick="window.location.href='add.html'">
			<input class="btn" type="button" value="js显示数据"  style="padding:6px 20px" onclick="window.location.href='showDxhByJs.jsp'">
		</div>
		
	</div>
</div>

</body>
<script type="text/javascript">

</script>
</html>

dao

package com.web508.dao;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

import com.web508.model.Dxh;

public class DxhDao {
	private static String driver;
	private static String url;
	private static String user;
	private static String password;
	static{
		String sPath = Thread.currentThread().getContextClassLoader().getResource("").getPath();
		try {
			FileInputStream fin=new FileInputStream(sPath+"/db.properties");
			System.out.println(sPath);
			Properties prop=new Properties();
			prop.load(fin);
			driver=prop.getProperty("driver");
			url=prop.getProperty("url");
			user=prop.getProperty("user");
			password=prop.getProperty("password");
		} catch (Exception e) {
			System.err.println(e.getMessage());
		}
	}
	public DxhDao() {}
	private Connection getConn() {
		Connection con = null;
//		String driver = "com.mysql.cj.jdbc.Driver";
//		String url = "jdbc:mysql://localhost:3306/njdb?UseSSL=false&serverTimezone=Asia/Shanghai";
//		String user = "root";
//		String password = "123456";
		try {
			Class.forName(driver);
			con = DriverManager.getConnection(url, user, password);
		} catch (Exception e) {
			System.err.println(e.getMessage());
		}
		return con;

	}

	public boolean isExist(String sql) {

		Connection conn = getConn();
		Statement stmt = null;
		ResultSet rs = null;
		try {
			stmt = conn.createStatement();
			rs = stmt.executeQuery(sql);
			return rs.next();
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			return false;
		} finally {
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {

				}
			}
		}

	}

	public int isExist(String sql, Object[] obj) {
		int i = 0;
		Connection conn = getConn();
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		try {
			for (int j = 0; j < obj.length; j++) {
				pstmt = conn.prepareStatement(sql);
				pstmt.setObject(j, obj[j]);
			}
			rs = pstmt.executeQuery();
			while (rs.next()) {
				i++;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				if (rs != null)
					rs.close();
				if (pstmt != null)
					pstmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return i;
	}

	public boolean exeUpdate(String sql, Object[] obj) {
		int i = 0;
		Connection conn = getConn();
		PreparedStatement pstmt = null;
		try {
			pstmt = conn.prepareStatement(sql);
			for (int j = 0; j < obj.length; j++) {
				pstmt.setObject(j + 1, obj[j]);
			}
			i = pstmt.executeUpdate();
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			i = -1;
		} finally {
			try {
				if (pstmt != null)
					pstmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return i > 0;
	}

	public List<Dxh> getDxh(String sql) {
		List<Dxh> list = new ArrayList<Dxh>();
		Connection conn = getConn();
		Statement stmt = null;
		ResultSet rs = null;
		try {
			stmt = conn.createStatement();
			rs = stmt.executeQuery(sql);
			while (rs.next()) {
				Dxh dxh = new Dxh();
				dxh.setDxha(rs.getInt("dxha"));
				dxh.setDxhb(rs.getString("dxhb"));
				dxh.setDxhc(rs.getFloat("dxhc"));
				dxh.setDxhd(rs.getString("dxhd"));
				list.add(dxh);
			}
		} catch (Exception e) {
			System.err.println(e.getMessage());
		} finally {
			try {
				if (rs != null)
					rs.close();
				if (stmt != null)
					stmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return list;
	}

}

实体类(自己生成)

jquery v1.10.2

bootstrap v3.3.7

过滤器

package com.web508.filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

/**
 * Servlet Filter implementation class TestFilter
 */
@WebFilter("/*")
public class TestFilter implements Filter {

    /**
     * Default constructor. 
     */
    public TestFilter() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see Filter#destroy()
	 */
	public void destroy() {
		// TODO Auto-generated method stub
	}

	/**
	 * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
	 */
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
//		System.out.println(request.getProtocol());
		chain.doFilter(request, response);
	}

	/**
	 * @see Filter#init(FilterConfig)
	 */
	public void init(FilterConfig fConfig) throws ServletException {
		// TODO Auto-generated method stub
	}

}

分析运行代码补上所缺功能

使用枚举

package com.test.enuma;

public enum CRUD {
	INSERT("insert"), DELETE("delete"), UPDATE("update"), SELECT("select");

	private CRUD(String string) {
	}

	public static CRUD getValue(String opName) {
		for (CRUD crud : CRUD.values()) {
			if (crud.toString().equalsIgnoreCase(opName)) {
				return crud;
			}
		}
		return SELECT;
	}
}

YOLOv11安卓端部署终极指南:从训练到NCNN移植,30分钟搞定手机实时检测! 本文详细介绍了YOLOv11模型在安卓设备上的NCNN部署全流程。主要内容包括:1) 环境配置要求(Python3.8+、PyTorch、NCNN框架等);2) COCO2017数据集准备与配置;3) 模型训练建议(使用RTX3090,50-100个epoch);4) 模型导出转换步骤(ONNX格式转换、NCNN优化);5) 安卓端实现的关键优化(快速sigmoid实现、纯C++NMS等)。项目在安卓CPU模式下可实现20FPS的稳定检测,并提供了激活函数选择、模型量化等性能调优建议。通过参考多个开源项目, 阅读详情

相关推荐

CH592F RISC-V蓝牙LED灯设计:WS2812B驱动与微信小程序控制

蓝牙低功耗(BLE)是嵌入式物联网设备主流无线通信技术,其核心在于协议栈轻量化、射频稳定性与外设协同调度。基于RISC-V内核的蓝牙SoC(如CH592F)凭借高集成度、低待机电流和免外部巴伦的射频设计,显著降低硬件复杂度与BOM成本;而WS2812B作为单线级联RGB LED,依赖微秒级精准时序,需借助定时器+DMA机制规避CPU干预,保障动态效果流畅性。该方案融合电容触摸交互、GATT服务自定义与微信小程序标准Bluetooth API对接,适用于智能照明、DIY彩灯及教学实践等场景,是BLE+LED实

weixin_31163455的博客 433

JavaScript

定义方式一return x;} }一旦执行到return代表函数结束,返回结果!如果没有执行return,函数执行完也会返回结果,结果就是undefined定义方式二return x;} }function(x){…}这是一个匿名函数,但是可以把结果赋值给abs,通过abs就可以调用函数!调用函数参数问题:JavaScript可以传任意个参数,也可以不传参数假如不存在参数,如何避免?

余杯冷饮的博客 7万+

PTA编程—币值转换

我对于这个题的主要思想就是把九位数分三块,对每块进行处理后,再合并。有了这个思想就开始写代码,后面就是哪有洞补哪,哪个测试用例没通过就对其特殊处理…。反正最后测试用例全通过了。 #include<iostream> #include <string> #include <algorithm> using namespace std; char a[10]={'a','b','c','d','e','f','g','h','i','j'}; //既然题目说了最多9位

uyo9ko的博客 990

JavaScript和JAVA有什么区别

Node.js的出现使得JavaScript能够在服务器端上运行,不仅可以进行网站的构建,还可以进行其他类型的应用程序开发,包括实时通信和数据处理等等。因此,JavaScript不仅可以用于网页开发,还可以用于其他类型的应用程序开发,为开发人员提供了广泛的应用领域。此外,JavaScript还具有一些特殊的功能,例如闭包和原型继承,这些功能在JAVA中并不存在。JavaScript和JAVA是两种不同的编程语言,尽管它们在名称上有一些相似之处,但它们的设计目的和用途是不同的。

2301_77769537的博客 8249

【汇编】TSR内存驻留程序实现与删除及热键设置——以实现时钟为例

【汇编】TSR内存驻留程序实现与删除及热键设置——以实现时钟为例 最近完成了一个关于时钟中断驻留的汇编大作业,对于TSR很是感兴趣,查阅了不少资料,发现现在很少相关的内容资料。尤其是TSR删除这一块几乎找不到在低的水平完全正确的做法,下面我对于TSR的删除我会介绍一种几乎小程序可以完成的方法。当然,标题中的TSR实现,热键设置我也会一一介绍。

cly116的博客 3971

Chroma向量数据库实战:用Python快速搭建本地知识库(附中文诗词检索案例)

本文详细介绍了如何使用Chroma向量数据库和Python快速搭建本地知识库,并附有中文诗词检索的实战案例。通过解析核心概念、数据准备、向量化及智能检索实现,展示了Chroma在处理中文语义搜索时的轻量级与易用性,为开发者构建AI应用原型提供了实用指南。

weixin_29221753的博客 480

JavaScript[基础语法]

文章目录一、初识JavaScript1.JavaScript是什么2.JavaScript运行过程3.JavaScript的组成二、前置知识1.第一个程序2.JavaScript的书写形式三、输入输出1.输入:prompt2.输出:alert3.输出:console.log2.读入数据总结 一、初识JavaScript 1.JavaScript是什么 JavaScript(简称JS) 是世界上最流行的编程语言之一 是一个脚本语言,通过解

m0_51405559的博客 8220

【AUTOSAR-DEM】-2.1-APP SWC设置UDS/OBD DTC检出和恢复

点击返回「《Autosar_BSW高阶配置》总目录」 案例背景(共6页精讲): DEM模块提供两种不同类型的Event: • BSW-related events:DEM_EVENT_KIND_BSW(通过C-API报告 - Dem_SetEventStatus) • SW-C-related events:DEM_EVENT_KIND_SWC(通过RTE operation - SetEventStatus) 下面我们讲讲在APP SWC中设置BusOff(总线关闭) DTC故障成立/恢复(其它

「汽车电子助手」的博客 3944

free video java hd_0326 iframe和video experience

1 form 表单标签:五个属性2 name、action、method、enctype3 4 提交方式:"method"(默认get提交)">5 1.get:6 所有表达方式以键值成对的方式 key=value 传递后台。所有信息都在地址栏全部显示 url:7 2.post 不会显示表单数据 安全,传递内容大小无限制8 -------------------------...

weixin_39743622的博客 11万+

手把手教你学Simulink——逆变器场景:基于PR控制器的单相逆变器并网控制策略仿真

摘要:本文详细介绍基于PR控制器的单相逆变器并网控制策略的Simulink仿真实现。首先分析PR控制器在单相逆变应用中的优势,然后逐步讲解模型搭建过程,包括主电路设计(直流电源、全桥逆变器、L滤波器)、控制回路实现(参考电流生成、坐标变换、PR控制器设计)以及关键参数设置。通过仿真验证了PR控制器对电网频率的精确跟踪能力,并网电流THD<3%。最后提出优化建议,如加入状态观测器、自适应参数整定等改进方向。该建模方法为可再生能源系统中的逆变器控制提供了有效验证手段。

MHD0815的博客 497

FPGA实现PID算法

PID 控制器表达式如下(引用某硕士论文 《基于FPGA的PID控制器研究与实现》): 其中,Kp为比例增益,Ti为积分时间常数,Td为微分时间常数,u(t)为控制量,e(t)为偏差。 在数字控制系统中,PID控制规律的实现必须用数值逼近的方法。当采样周期相当短时,用求和代替积分、用后向差分代替微分,使模拟PID离散化变为差分方程。 本文使用并行结构来实现。具有延时小,计算速度快的特点,但需要资源比较多。 利用图3.2所示并行结构实现方法 ,进一步将3.8式分解: ...

nxin168的博客 1万+

JavaWeb开发 —— JavaScript(JS)

介绍JavaScript、 引入方式、基础语法、函数、对象以及时间监听

hdakj22的博客 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

AJax 遍历json对象数组 和Jstl遍历以及json解决日期转换

AJax 遍历json对象数组 和Jstl遍历以及json解决日期转换

just_learing的博客 1462

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

jstl-将List中的数据展示到表格中

功能: 使用jstl将List中的数据动态展示到Jsp表格中,并实现隔行换色功能。 效果图: Jsp代码: <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.List" %> <%@ page import="cn.ytmj.el.User" %> <%@ p...

dingliuji5223的博客 932

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

servlet读取数据库数据显示到jsp表格中

问题描述 这一篇讲到的问题是上一篇文章的下半部分。上一篇已经把数据存储到数据库中了,本篇文章将要实现: 1.servlet从数据库中读取数据并存为JavaBean对象,插入到list中,然后将list插入到session,将请求转发到jsp; 2.jsp读取session里面的list,把list中的数据显示在一个表格上。 解决过程 1.servlet获取数据库数据比较容易,存为JavaBean对象:用接收到的数据库数据实例化一个JavaBean对象。然后把这些对象插入到list中,用setAttribut

weixin_43823997的博客 5606

用c:forEach页面中的表格不显示后台获取到的数据

找了半天,代码完全没啥错,在页面害f12看了也获取到了数据,但是就是不显示到表格中,最后发现是没有导入jstl的依赖,害。 解决方法: 先在pom.xml导入JSTL依赖: <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId...

仙女的博客 3423

JSTL小练习-在浏览器显示姓名,年龄的表格

在浏览器显示如下效果 具体代码如下 <%@ page import="cn.itcast.domain.User" %> <%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.Date" %&g...

u010632547的博客 440

EL和JSTL

​ 上一章说到了,为了把jsp和Java代码分开,我们提取出来一个中间产物Servlet,用Servlet就可以实现URL和后端业务的映射,那么前端jsp页面的显示数据也是Java代码,我们的本意就是不让他有Java代码和html代码混合,那该怎么优化呢?

NoKris的博客 629

手把手教你如何在JSP页面显示数据库的表单

1.结果显示 和数据库中显示相差无几,如果利用CSS样式可以显示得更漂亮。 2.思路总结 在一个页面上写一个链接,链接到实现功能的Servlet——》Servlet中实现数据库的链接和数据获取——》在新的页面显示获取的数据 3. 首先写第一个页面 <%@ page language="java" contentType="text/html; charset=UTF-8" ...

nairuozi的博客 5034

JSTL与EL的用法和区别

一、关于JSTL和EL: 什么是JSTL?   JSTL( JSP Standard Tag Library)是JSP标准 标签库,由apache实现。 什么是EL?   EL(Expression Language)表达式语言。 两者关系?   JSTL在赋值时会大量用到EL表达式。可以简单理解成,EL只是JSTL中的一部分。 作用:   简化js

yuj9006的专栏 3179

servlet处理数据库表中所有数据,在jsp页面表格中用jst forEach输出解决办法

我用servlet处理数据库表中所有数据,在jsp页面表格中用jstl  forEach输出    在jsp页面中我用了  anlist=(List)request.getAttribute("admin");   %>   接收servlet传来的已经转化好了的adminList,再用jstl 的 forEach循环输出数据                anlist} "  var="it

i_wolfer的博客 4122

EL和JSTL表达式

1.EL表达式 1.1EL表达式定义 Expression Language(表达式语言) 1.2EL功能 替代JSP页面中数据访问时的复杂编码 1.3为什么使用EL <%= ( (User)request.getAttribute("user") ).getName() %> 等价于: ${user.name} 1.4表达式语法 ${} 2.JSTL表达式: 2.1JSTL定义: JSP标签标准库(JSP Standard Tag Library) 2.2为什么使

m0_56557880的博客 265

JavaWeb基础(2):熟悉HTML&CSS、Servlet、JSP、EL、JSTL、会话控制、jQuery、JSON、Filter、Listener

熟悉HTML&CSS、Servlet、JSP、EL、JSTL、会话控制、jQuery、JSON、Filter、Listener

qq_43265673的博客 568

J2EE5 servlet el表达式 JSTL标准标签库

el表达式 使用 ${作用域.key} 忽略作用域访问顺序pageScope>requestScope>sessionScope>applicationScope 关系运算符 > 或者 gt, 例如:${8>9} 或者 ${8 gt 9 } >= 或者 ge, 例如:${45>=9} 或者 ${45 ge 9 } < 或者 lt, 例如:${4<9} 或者 ${4 lt 9 } <= 或者 le, 例如:${9<=8} 或者 ${9

lx1315998513的博客 206

javaweb中用jstl遍历list集合

首先所涉及到知识点:Javase部分的list,map,html前端css和table表格 servlet中配置list和map集合 package com.servlet; import java.io  .IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.u

six_666666的博客 2424

笔记:JSTL

JSTL 使用JSPT(JSP标准标签库)要先导入jar包 之后常用的标签有两个以及一个运算 if forEach empty(是否为空) <%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %><%-- Created by IntelliJ IDEA. User: dell Date: 2020/10/13 Time: 9:33 To change this

qq_45080791的博客 175
上一篇: jquery访问服务器
下一篇: servlet实践
caststudy
博客等级 码龄19年 181粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值