1、Classinfo getAll(); fenyeList(int page); int findCount();第四步.编写业务层.业务层用于业务数据的处理并完成相应的“业务层”功能。本例中的业务层是ClassinfoServiceImp.java。业务层编写完后以提供web层调用。第五步.编写表示层(web层).表示层是采用可视化的界面形式显示各种业务处理上的数据,它主要调用业务层中的ClassinfoServiceImp来完成数据操作功能,如增加、删除、查询、修改等。本例Web层程序是ClassinfoServlet.java。下面是核心代码解释:因为在修改时要解决中文乱码问题,所以先设
2、置request的编码格式。protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding(UTF-8); String method= request.getParameter(method if(method.equals(add) add(request,response); else if(method.equals(delete delete(request,r
3、esponse);listall listall(request,response);update update(request,response);fenye fenyelistall(request, response); 在增删改查中稍有困难的是删除和修改在一块实现。主要代码如下。 function CheckAll(elementsA, elementsB) for (i = 0; i elementsA.length; i+) elementsAi.checked = true; if (elementsB.checked = false) for (j = 0; j form ac
4、tion=$pageContext.request.contextPath/ClassinfoServlet?method=delete method=post name=frmtable frame=border width=60% 班级编号年级编号班级名称删除修改c:forEach var=c items=$Classinfos$c.classID$c.gradeID$c.classNameinput name=delid type=checkbox class=noborder value=$c.classIDa href=$pageContext.request.contextPath
5、/ChangeServlet?classID=$c.classID&kind=banji target=right/a/c:forEach/tablefooter onClick=CheckAll(frm.delid,frm.checkbox) 全选/反选 div width=98% align=centerpadding-top:10px; $bar!-层ch用于放置隐藏的checkbox控件,因为当表单中只是一个checkbox控件时,应用javascript获得其length属性值为undefine-/footer/form注:一个jsp里可以有多个表单。本例中还有一个值得学习的地方是把
6、数据分页。用mysql和sqlserver数据库实现的方式是不同的。本例还有两个filter类。CheckLoginFilter.java是用来阻止没有登录的用户进入后台管理。后来发现一个问题,就是在登录后,然后退出,再在浏览器里访问main.jsp还是可以进入后台,然后创建一个Nocachefilter.java来阻止浏览器缓存。对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。附录:1. 数据库连接对象(Dbconnection.java)package stu.utils;import jav
7、a.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import org.junit.Test;public class Dbconnection protected static String dbClassName = com.microsoft.sqlserver.jdbc.SQLServerDriver; protected static String dbUrl = jdbc:sql
8、server:/127.0.0.1:1433; + DatabaseName=DB_Student protected static String dbUser = sa protected static String dbPwd = 1234 public Connection connect = null; public Statement stmt=null; public ResultSet rs=null; Test public Connection getConnection() Connection conn = null; try if (conn = null) Class
9、.forName(dbClassName).newInstance(); catch (Exception ee) / System.exit(0); conn=DriverManager.getConnection(dbUrl,dbUser,dbPwd); if(conn=null) System.out.println(数据库名称错误 Statement st=conn.createStatement(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); System.out.pri
10、ntln(数据库连接错误 return conn; public ResultSet executeQuery(String sql) connect=getConnection(); stmt=connect.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); rs= stmt.executeQuery(sql); System.err.println(e.getMessage(); return rs; /执行添加 public int executeUpdate(String sql)
11、int result=0; try connect=getConnection(); stmt=connect.createStatement(); result=stmt.executeUpdate(sql); / System.out.print(添加成功 catch (SQLException e) / TODO Auto-generated catch block /e.printStackTrace(); result=0; stmt.close(); e.printStackTrace(); return result; public void close() if(rs!=nul
12、l) rs.close(); if(stmt! stmt.close(); if(connect! connect.close();2. 数据实体JavaBean(Classinfo.java)package stu.domain;public class Classinfo public static final int PAGE_SIZE = 2; private String classID; private String gradeID; private String className; public String getClassID() return classID; publi
13、c void setClassID(String classID) this.classID = classID; public String getGradeID() return gradeID; public void setGradeID(String gradeID) this.gradeID = gradeID; public String getClassName() return className; public void setClassName(String className) this.className = className;3. 抽象数据接口(Classinfo
14、Dao.java)package stu.dao;import java.util.List;import stu.domain.Classinfo;4. 数据访问层(Classinfoimp.java):实现了ClassinfoDao接口package stu.dao.imp;import java.sql.PreparedStatement;import java.util.ArrayList;import stu.dao.ClassinfoDao;import stu.domain.User;import stu.utils.Dbconnection;public class Class
15、infoimp implements ClassinfoDao public void add(Classinfo classinfo) Dbconnection conn=new Dbconnection(); String sql=Insert into tb_classinfo values(+classinfo.getClassID()+,+classinfo.getGradeID()+classinfo.getClassName()+) conn.executeUpdate(sql); conn.close(); public void delete(String classID)
16、delete tb_classinfo where classID=+classID+ public void uptate(String classID,String gradeID,String className)update tb_classinfo set gradeID=+gradeID+,className=+className+where classID= public Classinfo find(String classID) Classinfo cl=new Classinfo();select * from tb_classinfo where classID= Res
17、ultSet rs=conn.executeQuery(sql); while(rs.next() cl.setClassID(rs.getString(1); cl.setGradeID(rs.getString(2); cl.setClassName(rs.getString(3); cl.setClassID(classID); return cl; public List getAll()select * from tb_classinfo List list=new ArrayList(); Classinfo cl=new Classinfo(); list.add(cl); return list;/ SELECT TOP 30 *
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1