版权声明:本文为博主原创文章,大家多多转载,相互学习! https://blog.csdn.net/qq_41893274/article/details/86479289
新建项目,目录结构如下所示
效果图
按班级查询
按班级查询实现二级联动显示该班学生
按性别查询
按总分或平均分查询
mysql数据库
实现全部源代码
前端test.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<%@page import="com.domain.Names"%>
<!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">
<script type="text/javascript" src="js/jquery-1.6.2.js"></script>
<script type="text/javascript" src="js/show.js"></script>
<link rel="stylesheet" type="text/css" href="style/show.css">
<title>实验测试3</title>
</head>
<body style="background-color:PaleGreen">
<s:a href="test.jsp">回首页</s:a><br>
<s:select id="grade" onchange="myfind()"
list="{'请选择班级..','ALL','First','Second','Three'}" name="grade" label="选择班级"></s:select>
<s:select id="stu" list="pList" listKey="id" listValue="name" label="学生"></s:select><br>
<s:radio name="sex" label="性别" list="#{'0':'男','1':'女' }" onclick="mysex(this)"></s:radio><br>
<input type="button" id="gradeaa" value="总分"/>
<input type="button" id="average" value="平均分"/>
<hr/>
<table border="1px black solid">
<tr>
<td>学号</td>
<td>姓名</td>
<td>性别</td>
<td>数学</td>
<td>语文</td>
<td>总分</td>
</tr>
<s:iterator id="listdata" value="listas">
<tr>
<td><s:property value="id"/></td>
<td><s:property value="name"/></td>
<td><s:property value="sex"/> </td>
<td><s:property value="math"/></td>
<td><s:property value="chinese"/></td>
<s:if test="score>170">
<td><s:property value="score"/></td>
</s:if>
<s:else>
<td style="color:red;border-color: black;"><s:property value="score"/> </td>
</s:else>
</tr>
</s:iterator>
</table>
<table border="1px black solid">
<tr>
<td>排名</td>
<td>班级</td>
<td>总分</td>
<td>平均分</td>
</tr>
<s:iterator value="ggList">
<tr>
<td><s:property value="rankg"/></td>
<td><s:property value="grade"/></td>
<s:if test="sum>320">
<td><s:property value="sum"/> </td>
</s:if>
<s:else>
<td style="color: red;border-color: black;"><s:property value="sum"/> </td>
</s:else>
<s:if test="average>170">
<td><s:property value="average"/></td>
</s:if>
<s:else>
<td style="color: red;border-color: black;"><s:property value="average"/> </td>
</s:else>
</tr>
</s:iterator>
</table>
</body>
</html>
test.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!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>首页</title>
</head>
<body style="background-color:PaleGreen">
<s:form action="First" method="post">
<s:select list="{'请选择班级..','ALL','First','Second','Three'}" name="grade" label="选择班级"></s:select>
<s:submit value="提交"></s:submit>
</s:form>
</body>
</html>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
show.js
function myfind(){
var select = document.getElementById("grade");
var grade = select.value;
switch(grade){
case "ALL":
var url = "First.action?grade=" + grade;
window.location.href=url;
break;
case "First":
var url = "First.action?grade=" + grade;
window.location.href=url;
break;
case "Second":
var url = "First.action?grade=" + grade;
window.location.href=url;
break;
case "Three":
var url = "First.action?grade=" + grade;
window.location.href=url;
break;
}
$("#div2").hide();
$("#div1").show();
}
function mysex(obj){
var sex=obj.value;
switch (sex) {
case "0":
var url = "Sex.action?sex=" + sex;
window.location.href=url;
break;
case "1":
var url = "Sex.action?sex=" + sex;
window.location.href=url;
break;
}
}
$(function(){
$("#partsex").live("click",function(){
$("#tr2").hide();
$("#tr1").show();
});
//总分
$("#gradeaa").live("click",function(){
var url = "Grade.action?m=" + "a";
window.location.href=url;
$("#div1").hide();
$("#div2").show();
});
//平均分
$("#average").click(function(){
var url = "Grade.action?m=" +"b";
window.location.href=url;
$("#div1").hide();
$("#div2").show();
});
});
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true"/>
<package name="student" namespace="/" extends="struts-default"> <!-- action的集合 -->
<action name="Student" class="com.action.StudentAction" method="ALLfind">
<result name="success">/show.jsp</result>
</action>
<action name="Sex" class="com.action.SexAction">
<result name="success">/show.jsp</result>
</action>
<action name="First" class="com.action.StudentAction" method="whichgrade">
<result name="grade">/show.jsp</result>
</action>
<action name="Grade" class="com.action.GradeAction">
<result name="average">/show.jsp</result>
</action>
</package>
</struts>
com.action
GradeAction.java
package com.action;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.dao.GradeDao;
import com.domain.Grade;
import com.domain.Names;
import com.domain.Student;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class GradeAction extends ActionSupport {
//使用域模型的方式
private String m;
private Grade grade1;
private List<Grade> ggList;
private List<Names> pList;
public String getM() {
return m;
}
public void setM(String m) {
this.m = m;
}
public Grade getGrade1() {
return grade1;
}
public void setGrade1(Grade grade1) {
this.grade1 = grade1;
}
public List<Grade> getGgList() {
return ggList;
}
public void setGgList(List<Grade> ggList) {
this.ggList = ggList;
}
public List<Names> getpList() {
return pList;
}
public void setpList(List<Names> pList) {
this.pList = pList;
}
@Override
public String execute() throws Exception {
ActionContext actionContext = ActionContext.getContext();
Map<String, Object> session = ActionContext.getContext().getSession();//struts2的内部命令
GradeDao dao=new GradeDao();
ggList=dao.selectGrade(m);
Iterator<Grade> it=ggList.iterator();
pList=new ArrayList<Names>();
while(it.hasNext()){
int i=1;i++;
Grade st=it.next();
pList.add(new Names(i,st.getGrade()));
}
actionContext.put("pList", pList);
session.put("ggList", ggList);
return "average";
}
public static void main(String[] args) {
GradeDao dao=new GradeDao();
dao.selectGrade("a");
}
}
SexAction.java
package com.action;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.dao.StudentDao;
import com.domain.Names;
import com.domain.Student;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class SexAction extends ActionSupport {
private String sex;
List<Student> listas;
private List<Names> pList;
public List<Names> getpList() {
return pList;
}
public void setpList(List<Names> pList) {
this.pList = pList;
}
public List<Student> getListas() {
return listas;
}
public void setListas(List<Student> listas) {
this.listas = listas;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
if("0".equals(sex))
sex="男";
else
sex="女";
this.sex = sex;
}
@Override
public String execute() throws Exception {
Student s=new Student();
System.out.println("按照性别查询数据库:"+sex);
//获取ActionContext
ActionContext actionContext = ActionContext.getContext();
StudentDao dao=new StudentDao();
Map<String, Object> session = ActionContext.getContext().getSession();//struts2的内部命令
listas=dao.selectSex(sex);
Iterator<Student> it=listas.iterator();
pList=new ArrayList<Names>();
while(it.hasNext()){
int i=1;i++;
Student st=it.next();
pList.add(new Names(i,st.getName()));
}
actionContext.put("pList", pList);
session.put("listas", listas);
return SUCCESS;
}
public static void main(String[] args) {
SexAction se=new SexAction();
System.out.println(se.sex);
}
}
StudentAction.java
package com.action;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.catalina.connector.Request;
import org.apache.struts2.ServletActionContext;
import com.dao.StudentDao;
import com.domain.Names;
import com.domain.Student;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class StudentAction extends ActionSupport{
private String sex;
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
private static List<Student> listas;
private String grade;
private List<Names> pList;
public List<Names> getpList() {
return pList;
}
public void setpList(List<Names> pList) {
this.pList = pList;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public List<Student> getListas() {
return listas;
}
public void setListas(List<Student> listas) {
this.listas = listas;
}
//获取ActionContext
ActionContext actionContext = ActionContext.getContext();
Map<String, Object> session = ActionContext.getContext().getSession();//struts2的内部命令
//全部查询
@SuppressWarnings("unused")
public String ALLfind() throws Exception {
System.out.println("Action中数据库操作ALL");
StudentDao dao=new StudentDao();
listas=dao.selectAll();
session.put("listas", listas);
return SUCCESS;
}
// //按照性别查询
// public String SexAction() throws Exception {
// Student s=new Student();
// System.out.println("按照性别查询数据库:"+sex);
// //获取ActionContext
// StudentDao dao=new StudentDao();
// listas=dao.selectSex(sex);
// session.put("listas", listas);
// return "sex";
// }
//按班查询
public String whichgrade(){
System.out.println("Action按班级查询:"+grade);
//grade=1;grade+="班";
StudentDao dao=new StudentDao();
listas=dao.selectGrade(grade);
Iterator<Student> it=listas.iterator();
pList=new ArrayList<Names>();
while(it.hasNext()){
int i=1;i++;
Student st=it.next();
pList.add(new Names(i,st.getName()));
}
actionContext.put("pList", pList);
session.put("listas",listas);
return "grade";
}
public static void main(String[] args) {
StudentDao dao=new StudentDao();
listas=dao.selectGrade("ALL");
}
}
com.dao
DBHand.java
package com.dao;
import java.sql.Connection;
import java.sql.DriverManager;
public class DBHand {
public static Connection getConnection() throws Exception{
//注册驱动//?characterEncoding=utf-8
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123456");
if (!conn.isClosed()) {
return conn;
}
return null;
}
public static void closeConnection(Connection conn) throws Exception{
if (conn!=null&&!conn.isClosed()) {
conn.close();
System.out.println("数据库已经被关闭");
}
}
}
GradeDao.java
package com.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;
import com.domain.Grade;
public class GradeDao {
private Connection conn;//数据库连接
private PreparedStatement ps;//执行数据库
private ResultSet rs;//执行结果
public GradeDao(){
try {
conn=DBHand.getConnection();
} catch (Exception e) {
e.printStackTrace();
System.out.println("grade数据库连接异常");
}
}
//查询班级
public List<Grade> selectGrade(String m){
List<Grade> listg=new ArrayList<Grade>();
String sql;
int i=0;
if(m.equals("a")){
sql="select rankg,grade,sum,average from test5979_grade order by sum ASC";
}else{
sql="select rankg,grade,sum,average from test5979_grade order by average ASC";
}
try {
ps=conn.prepareStatement(sql);//执行SQL语句
rs=ps.executeQuery();//返回查询结果
while(rs.next()){
Grade g=new Grade();
i++;
g.setRankg(i);
g.setGrade(rs.getString(2));
g.setSum(rs.getString(3));
g.setAverage(rs.getString(4));
listg.add(g);
System.out.println("GradeDao操作:"+g.getGrade());
}
System.out.println("查询数据库成功");
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("查询失败");
}
return listg;
}
public static void main(String[] args) {
GradeDao g=new GradeDao();
System.out.println("数据库操作");
g.selectGrade("a");
}
}
StudentDao.java
package com.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;
import com.domain.Student;
public class StudentDao {
private Connection conn;//数据库连接
private PreparedStatement ps;//执行数据库
private ResultSet rs;//执行结果
public StudentDao() {
try {
conn=DBHand.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
}
//数据全部查询操作
public List<Student> selectAll(){
List<Student> lists=new ArrayList<Student>();
String sql="select id,name,sex,math,chinese,score from test5979";
try {
ps=conn.prepareStatement(sql);//执行sql语句
rs=ps.executeQuery();//查得结果
while(rs.next()){
Student s=new Student();
s.setId(rs.getInt(1));
s.setName(rs.getString(2));
s.setSex(rs.getString(3));
s.setMath(rs.getString(4));
s.setChinese(rs.getString(5));
s.setScore(rs.getString(6));
lists.add(s);
//后台输出验证连通性
System.out.println("后台值班的人:"+s.getName());
}
System.out.println("查询数据库成功");
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("查询失败");
}
return lists;
}
//性别查询
public List<Student> selectSex(String sex){
List<Student> listsx=new ArrayList<Student>();
String sql="select id,name,sex,math,chinese,score from test5979 where sex=?";
try {
ps=conn.prepareStatement(sql);//执行sql语句
ps.setString(1, sex);
rs=ps.executeQuery();//查得结果
while(rs.next()){
Student s=new Student();
s.setId(rs.getInt(1));
s.setName(rs.getString(2));
s.setSex(rs.getString(3));
s.setMath(rs.getString(4));
s.setChinese(rs.getString(5));
s.setScore(rs.getString(6));
listsx.add(s);
//后台输出验证连通性
System.out.println("姓名:"+s.getName()+",性别:"+s.getSex());
}
System.out.println("按性别查询");
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("查询失败");
}
return listsx;
}
//按班级查询
public List<Student> selectGrade(String grade){
List<Student> listsg=new ArrayList<Student>();
String sql;
if(grade.equals("ALL")){
return selectAll();
}else{
sql="select id,name,sex,math,chinese,score,grade from test5979 where grade=?";
}
try {
ps=conn.prepareStatement(sql);//执行sql语句
ps.setString(1, grade);
rs=ps.executeQuery();//查得结果
while(rs.next()){
Student s=new Student();
s.setId(rs.getInt(1));
s.setName(rs.getString(2));
s.setSex(rs.getString(3));
s.setMath(rs.getString(4));
s.setChinese(rs.getString(5));
s.setScore(rs.getString(6));
listsg.add(s);
s.setGrade(rs.getString(7));
//后台输出验证连通性
System.out.println("姓名:"+s.getName()+",性别:"+s.getSex()+",班级:"+s.getGrade());
}
System.out.println("按班级查询");
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("查询失败");
}
return listsg;
}
public static void main(String[] args) {
StudentDao sDao=new StudentDao();
//sDao.selectAll();
//sDao.selectSex("女");
sDao.selectGrade("ALL");
}
}
com.domain
Grade.java
package com.domain;
public class Grade {
public int rankg;
public String grade;
public String sum;
public String average;
public String getSum() {
return sum;
}
public void setSum(String sum) {
this.sum = sum;
}
public String getAverage() {
return average;
}
public void setAverage(String average) {
this.average = average;
}
public int getRankg() {
return rankg;
}
public void setRankg(int rankg) {
this.rankg = rankg;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
}
Names.java
package com.domain;
public class Names {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Names(int id, String name) {
super();
this.id = id;
this.name = name;
}
}
Student.java
package com.domain;
import java.io.Serializable;
public class Student implements Serializable{
public int id;
public String name;
public String sex;
public String math;
public String chinese;
public String score;
public String grade;
public String all;
public int getId() {
return id;
}
public String getAll() {
return all;
}
public void setAll(String all) {
this.all = all;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getMath() {
return math;
}
public void setMath(String math) {
this.math = math;
}
public String getChinese() {
return chinese;
}
public void setChinese(String chinese) {
this.chinese = chinese;
}
public String getScore() {
return score;
}
public void setScore(String score) {
this.score = score;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public Student() {
super();
}
public Student(int id, String name) {
super();
this.id = id;
this.name = name;
}
}