jsp+DAO+servlet+sqlserver2000的session 分页(CRUD)例子

jsp+DAO+servlet+sqlserver2000的session 分页(CRUD)例子

 

 好久没有做过这个框架了.

 这个框架用了以下设计模式.

 1.工厂模式. 

 2. 单例模式的懒汉模式(很多程序员说的单态模式即本框架中的单例模式)

 3. 模板模式

 

   以下源代码的架构.

 

jsp_servlet_DAO

---src

     ----dao

           ----dao.impl

      ---facade 

      ---persistent   

      ---servlet

     ---servlet.helper

     ---util

     --config.properties

 

以下是这个框架的源代码

dao package

 

 第一,定义一个抽像的工厂,用于产生工厂的工厂

AbstractFactory.java

 

package dao;

import java.util.Properties;

public abstract class AbstractFactory
{
 private static AbstractFactory factory;
 public abstract UserDao  getUserDao(); 
 public static AbstractFactory newInstance() throws Exception
 {
  if(factory==null)
  {
   Properties p=new Properties();
   p.load(AbstractFactory.class.getResourceAsStream("/config.properties"));
   factory=(AbstractFactory)Class.forName(p.getProperty("daoFactory")).newInstance();
  }
  return factory;
 }
}

 

Dao.java  接口

 

 

第二,定义个具体的业务接口

package dao;

 

public interface Dao
{
 public void insert(Object con,Object o) throws Exception;
 public void update(Object con,Object o) throws Exception;
 public void delete(Object con,Object o) throws Exception;
 public Object select(Object con,Object o) throws Exception;
}

 

 

第三,定义JDBC工厂,继承AbstractFactory.

JDBCDaoFactory.java

 

package dao;

import dao.impl.UserDaoImpl;

public class JDBCDaoFactory extends AbstractFactory
{
 private UserDao userDao;
 public UserDao getUserDao()
 {
  if(userDao==null)
  {
   return new UserDaoImpl();
  }
  return userDao;
 }

}


UserDao.java

 

第四,定义用户接口继承业务接口.使用户接口加强.

package dao;

import java.util.List;

public interface UserDao extends Dao
{
 public Object login(Object con,Object o) throws Exception;
 public List getAll(Object con) throws Exception;
}

 

 

dao.impl 包

(DAO,UserDao接口的具体实现类)

第五, UserDaoImpl 具体实现类

package dao.impl;

import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import persistent.UserPersistent;
import persistent.UserVO;
import dao.UserDao;

public class UserDaoImpl implements UserDao
{
 private UserPersistent up;
 public UserDaoImpl()
 {
  up=new UserPersistent();
 }
 public List getAll(Object con) throws Exception
 {
  String sql="select * from users";
  Connection con1=(Connection)con;
  ResultSet rs=con1.prepareStatement(sql).executeQuery();
  ArrayList al=new ArrayList();
  while(rs.next())
  {
   al.add(up.select(rs));
  }
  return al;
 }

 public Object login(Object con, Object o) throws Exception
 {
  UserVO user=(UserVO)o;
  String sql="select * from users where userName='"+user.getUserName()+"' and pwd='"+user.getPwd()+"'";
  Connection con1=(Connection)con;
  ResultSet rs=con1.prepareStatement(sql).executeQuery();
  if(rs.next())
  {
   return up.select(rs);
  }
  throw new Exception("用户名或密码错误,无法登陆");
 }

 public void delete(Object con, Object o) throws Exception
 {
  up.delete(con, o);
  
 }

 public void insert(Object con, Object o) throws Exception
 {
  up.insert(con, o);
  
 }

 public Object select(Object con, Object o) throws Exception
 {
  return up.select(con, o);
 }


 public void update(Object con, Object o) throws Exception
 {
   up.update(con, o); 
 }

}

 

 

facade 包

 

 

第六, 定义facade接中针对用户的接口的实现类

 

 

package facade;

import java.util.List;

import dao.AbstractFactory;
import dao.UserDao;

public class Facade implements IFacade
{
 private UserDao userDao;
 public Facade() throws Exception
 {
  userDao=AbstractFactory.newInstance().getUserDao();
 }
 public void deleteUser(Object con, Object o) throws Exception
 {
  this.userDao.delete(con, o);
  
 }

 public List getAll(Object con) throws Exception
 {
  // TODO Auto-generated method stub
  return this.userDao.getAll(con);
 }

 public void inserUser(Object con, Object o) throws Exception
 {
  this.userDao.insert(con, o);
  
 }

 public Object login(Object con, Object o) throws Exception
 {
  // TODO Auto-generated method stub
  return this.userDao.login(con, o);
 }

 public void updateUser(Object con, Object o) throws Exception
 {
  this.userDao.update(con, o);
 }

}

 

第七, 定义业务工厂,同样也使用了单例模式(整个JVM只有一个实列,有则用已有的实例,没有则实例化一个新的实列,这样性能开销相对较少)

 

package facade;

public class FacadeFactory
{
 private static IFacade facade=null;
 public static IFacade getFacade() throws Exception
 {
  if(facade==null)
  {
   facade=new Facade();
  }
  return facade;
 }
}

 

第八,定义具体的业务接口

 

 

package facade;

import java.util.List;

public interface IFacade
{
 public void inserUser(Object con,Object o) throws Exception;
 public void deleteUser(Object con,Object o) throws Exception;
 public void updateUser(Object con,Object o) throws Exception;
 public Object login(Object con,Object o) throws Exception;
 public List getAll(Object con) throws Exception;
}

 

persistent 包(具体针对jdbc的持久层包)


第九,  定义一个javaBean

 

package persistent;

import java.sql.Date;

public class UserVO
{
 private String userName;
 private String pwd ;
 private Date birthday ;
 private String trade;
 private String sex ;
 public Date getBirthday()
 {
  return birthday;
 }
 public void setBirthday(Date birthday)
 {
  this.birthday = birthday;
 }
 public String getPwd()
 {
  return pwd;
 }
 public void setPwd(String pwd)
 {
  this.pwd = pwd;
 }
 public String getSex()
 {
  return sex;
 }
 public void setSex(String sex)
 {
  this.sex = sex;
 }
 public String getTrade()
 {
  return trade;
 }
 public void setTrade(String trade)
 {
  this.trade = trade;
 }
 public String getUserName()
 {
  return userName;
 }
 public void setUserName(String userName)
 {
  this.userName = userName;
 }
 
}
第十,定义一个持久层的包(与facade 包中的IFacade中的接中一一对应)

Persistent.java 接口

 

package persistent;

import java.sql.ResultSet;

public interface Persistent
{
 public void insert(Object con,Object o) throws Exception;
 public void update(Object con,Object o) throws Exception;
 public void delete(Object con,Object o) throws Exception;
 public Object select(Object con,Object o) throws Exception;
 public Object select(ResultSet rs) throws Exception;
}

 

 

十一,具体的UserPersistent 实现类

 

package persistent;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class UserPersistent implements Persistent
{

 public void delete(Object con, Object o) throws Exception
 {
  UserVO user=(UserVO)o;
  String sql="delete from users where userName='"+user.getUserName()+"'";
  Connection con1=(Connection)con;
  con1.prepareStatement(sql).executeUpdate();
 }

 public void insert(Object con, Object o) throws Exception
 {

  UserVO user=(UserVO)o;
  String sql="insert into  users(userName,sex,trade,pwd,birthday) values(?,?,?,?,?)";
    Connection con1=(Connection)con;
  PreparedStatement ps=con1.prepareStatement(sql);
  ps.setString(1, user.getUserName());
  ps.setString(2, user.getSex());
  ps.setString(3, user.getTrade());
  ps.setString(4, user.getPwd());
  ps.setDate(5, user.getBirthday());
  ps.executeUpdate();
 }

 public Object select(Object con, Object o) throws Exception
 {
  UserVO user=(UserVO)o;
  String sql="select *  from users where userName='"+user.getUserName()+"'";
  Connection con1=(Connection)con;
  ResultSet rs=con1.prepareStatement(sql).executeQuery();
  if(rs.next())
  {
   return select(rs);
  }
  else
  {
   throw new Exception("没有找到对应的用户");
  }
 }

 public Object select(ResultSet rs) throws Exception
 {
  UserVO user=new UserVO();
  user.setBirthday(rs.getDate("birthday"));
  user.setSex(rs.getString("sex"));
  user.setUserName(rs.getString("userName"));
  user.setTrade(rs.getString("trade"));
  user.setPwd(rs.getString("pwd"));
  return user;
 }

 public void update(Object con, Object o) throws Exception
 {
  UserVO user=(UserVO)o;
  String sql="update users set sex=?,trade=?,pwd=?,birthday=? where userName=?";
  Connection con1=(Connection)con;
  PreparedStatement ps=con1.prepareStatement(sql);
  ps.setString(1, user.getSex());
  ps.setString(2, user.getTrade());
  ps.setString(3, user.getPwd());
  ps.setDate(4,user.getBirthday());
  ps.setString(5, user.getUserName());
  ps.executeUpdate();
  
 }

}

 

servlet 包

十二

BaseServlet.java (父类提供抽象方法及具体方法,抽象方法由子类实现,父类的具体方法为子类实现的抽象方法提供相关服务。)

 

package servlet;

import java.io.IOException;
import java.sql.Connection;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import util.ConManager;

public abstract class BaseServlet extends HttpServlet
{

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException
 {
  doPost(request,response);
 }
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException
 {
  request.setCharacterEncoding("utf-8");
  Connection con=null;
  try
  {
   con=ConManager.getConnect();
   con.setAutoCommit(false);
   String resultPage=process(request,response,con);
   con.commit();
   request.getRequestDispatcher(resultPage).forward(request, response);
  }
  catch (Exception e)
  {
   try
   {
    con.rollback();
   }
   catch(Exception e1)
   {
    e1.printStackTrace();
   }
   request.setAttribute("error", e.getMessage());
   request.getRequestDispatcher("error.jsp").forward(request, response);
  }
  finally
  {
   try
   {
    con.close();
   }
   catch(Exception e)
   {
    e.printStackTrace();
   }
  }
  
 }
 public abstract String process(HttpServletRequest request, HttpServletResponse response,Object con)
 throws Exception;
}

十三

 

package servlet;


import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import servlet.helper.MakeUser;
import facade.FacadeFactory;

public class DeleteUser   extends BaseServlet
{
 public String process(HttpServletRequest request, HttpServletResponse response, Object con) throws Exception
 { 
  FacadeFactory.getFacade().deleteUser(con, MakeUser.getUser(request, response));
  return "succ.jsp";
 }

}

 

十四

 

package servlet;


import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import servlet.helper.MakeUser;
import facade.FacadeFactory;

public class GetAll extends BaseServlet
{
 public String process(HttpServletRequest request, HttpServletResponse response, Object con) throws Exception
 { 
  request.getSession().setAttribute("users", FacadeFactory.getFacade().getAll(con));
  return "getPage";
 }

}

 

十五

 

package servlet;


import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class GetPage extends BaseServlet
{
 public String process(HttpServletRequest request, HttpServletResponse response, Object con) throws Exception
 { 
  int pageSize=2;
  List users=(List)request.getSession().getAttribute("users");
  int pageCount=users.size()/pageSize+(users.size()%pageSize==0?0:1);
  int currentPage=1;
  if(request.getParameter("page")!=null)
  {
   currentPage=Integer.parseInt(request.getParameter("page"));
  }
  if(currentPage<1)
  {
   currentPage=1;
  }
  if(currentPage>pageCount)
  {
   currentPage=pageCount;
  }
  int currentPageFirstRow=(currentPage-1)*pageSize;
  ArrayList pageRows=new ArrayList();
  for (int i = currentPageFirstRow; i < currentPageFirstRow+pageSize; i++)
  {
   if(i>=users.size())
   {
    break;
   }
   pageRows.add(users.get(i));
  }
  request.setAttribute("pageRows", pageRows);
  String pageHtml="";
  if(currentPage!=1)
  {
   pageHtml=pageHtml+"<a href=/"getPage?page=1/">首页</a>";
   pageHtml=pageHtml+"<a href=/"getPage?page="+(currentPage-1)+"/">上一页</a>";
  }
  if(currentPage!=pageCount)
  {
   pageHtml=pageHtml+"<a href=/"getPage?page="+(currentPage+1)+"/">下一页</a>";
   pageHtml=pageHtml+"<a href=/"getPage?page="+(pageCount)+"/">尾页</a>";
  }
  request.setAttribute("pageHtml", pageHtml);
  return "userList.jsp";
 }

}

 

十六

 

package servlet;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import persistent.UserVO;
import servlet.helper.MakeUser;
import facade.FacadeFactory;

public class InsertUser extends BaseServlet
{
 public String process(HttpServletRequest request, HttpServletResponse response, Object con) throws Exception
 { 
  FacadeFactory.getFacade().inserUser(con, MakeUser.getUser(request, response));
  return "succ.jsp";
 }

}

 

十七

 

package servlet;


import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import servlet.helper.MakeUser;
import facade.FacadeFactory;

public class Login  extends BaseServlet
{
 public String process(HttpServletRequest request, HttpServletResponse response, Object con) throws Exception
 { 
  request.getSession().setAttribute("user", FacadeFactory.getFacade().login(con, MakeUser.getUser(request, response)));
  return "index.jsp";
 }

}

十八

 

package servlet;


import java.sql.Date;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import persistent.UserVO;
import servlet.helper.MakeUser;
import facade.FacadeFactory;

public class UpdateUser  extends BaseServlet
{
 public String process(HttpServletRequest request, HttpServletResponse response, Object con) throws Exception
 { 
  FacadeFactory.getFacade().updateUser(con, MakeUser.getUser(request, response));
  return "succ.jsp";
 }

}

 

 

servlet.helper 包(将请求的参数包装成一个类,不用每次都包装,)

 

十九

 

package servlet.helper;

import java.sql.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import persistent.UserVO;

public class MakeUser
{
 public static UserVO getUser(HttpServletRequest request,HttpServletResponse response) throws Exception
 {
  UserVO user=new UserVO();
  user.setUserName(request.getParameter("userName"));
  user.setPwd(request.getParameter("pwd"));
  user.setTrade(request.getParameter("trade"));
  user.setSex(request.getParameter("sex"));
  if(request.getParameter("birthday")!=null && request.getParameter("birthday").length()>1)
  {
   user.setBirthday(Date.valueOf(request.getParameter("birthday")));
  }
  return user;
 }

}

 

二十 属性文件 config.properties

 

driver=com.microsoft.jdbc.sqlserver.SQLServerDriver
url=jdbc:microsoft:sqlserver://localhost:1433;databaseName=pubs;selectMethod=cursor
uid=sa
pwd=
daoFactory=dao.JDBCDaoFactory

 

具体的 jsp文件

 

deleteuser.jsp

 

<%@page contentType="text/html;charset=utf-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>

<body>
 <form name="form1" method="post" action="deleteUser">
 请输入客户的名称:

   <input type="text" name="userName">
   <input type="submit" name="Submit" value="删除">
</form>
</body>
</html>

 

 

error.jsp

 

<%@page contentType="text/html;charset=utf-8"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>

<body>
${requestScope.error}
</body>
</html>

 

index.jsp

 

<%@page contentType="text/html;charset=utf-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>�ޱ����ĵ�</title>
</head>

<frameset rows="*" cols="204,*" framespacing="1" frameborder="yes" border="1">
  <frame src="left.jsp" name="leftFrame" frameborder="yes" scrolling="yes">
  <frame src="loginsucc.jsp" name="mainFrame" frameborder="yes" scrolling="yes">
</frameset>
<noframes><body>
</body></noframes>
</html>

 

 

left.jsp

 

<%@page contentType="text/html;charset=utf-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>

<body>
 <p><a href="loginsucc.jsp" target="mainFrame">个人页面</a></p>
 <p><a href="getAll" target="mainFrame">客户查询</a></p>
 <p><a href="deleteuser.jsp" target="mainFrame">删除客户信息</a></p>
</body>
</html>

 

login.jsp

 

<%@page contentType="text/html;charset=utf-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>

<body>
<form name="form1" method="post" action="login">
  <table width="60%" border="0" align="center">
    <tr>
      <td width="23%">用户名</td>
      <td width="77%"><input name="userName" type="text" id="userName">
        <a href="register.jsp">注册</a> </td>
    </tr>
    <tr>
      <td>密码</td>
      <td><input name="pwd" type="text" id="pwd"></td>
    </tr>
    <tr>
      <td colspan="2"><input type="submit" name="Submit" value="提交"></td>
    </tr>
  </table>
</form>
<p>&nbsp;</p>
</body>
</html>

 

 

register.jsp

 

<%@page contentType="text/html;charset=utf-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>

<body>
<form name="form1" method="post" action="insertUser">
  <table width="80%" border="0" align="center">
    <tr>
      <td width="22%">姓名</td>
      <td width="34%"><input name="userName" type="text" id="userName"></td>
      <td width="19%">性别</td>
      <td width="25%">

 <select name="sex">
  <option value="01">男</option>
  <option value="02">女</option>
 </select>
 </td>
    </tr>
    <tr>
      <td>生日</td>
      <td><input name="birthday" type="text" id="birthday"></td>
      <td>密码</td>
      <td><input name="pwd" type="text" id="pwd"></td>
    </tr>
    <tr>
      <td>确认密码</td>
      <td colspan="3"><input name="pwd1" type="text" id="pwd1"></td>
    </tr>
    <tr>
      <td>行业</td>
      <td colspan="3"><textarea name="trade" id="trade"></textarea></td>
    </tr>
    <tr>
      <td colspan="4"><div align="center">
        <input type="submit" name="Submit" value="提交">
        <input type="reset" name="Submit2" value="重置">
      </div></td>
    </tr>
  </table>
</form>
</body>
</html>

 

regsucc.jsp

 

<%@page contentType="text/html;charset=utf-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>

<body>
注册成功  <a href="login.jsp">登陆</a></body>
</html>

 

 

update.jsp

<%@page contentType="text/html;charset=utf-8"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>

<body>
<form name="form1" method="post" action="updateUser">
  <table width="80%" border="0" align="center">
    <tr>
      <td width="22%">姓名</td>
      <td width="34%"><input name="userName" type="text" id="userName" value="${sessionScope.user.userName}"></td>
      <td width="19%">性别</td>
      <td width="25%"><input name="sex" type="text" id="sex" value="${sessionScope.user.sex}"></td>
    </tr>
    <tr>
      <td>生日</td>
      <td><input name="birthday" type="text" id="birthday" value="${sessionScope.user.birthday}"></td>
      <td>密码</td>
      <td><input name="pwd" type="text" id="pwd" value="${sessionScope.user.pwd}"></td>
    </tr>
    <tr>
      <td>确认密码</td>
      <td colspan="3"><input name="pwd1" type="text" id="pwd1" value="${sessionScope.user.pwd}"></td>
    </tr>
    <tr>
      <td>行业</td>
      <td colspan="3"><textarea name="trade" id="trade">${sessionScope.user.trade}</textarea></td>
    </tr>
    <tr>
      <td colspan="4"><div align="center">
        <input type="submit" name="Submit" value="提交">
        <input type="reset" name="Submit2" value="重置">
      </div></td>
    </tr>
  </table>
</form>
</body>
</html>

 

userList.jsp

 

<%@page contentType="text/html;charset=utf-8"%><html>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"  %>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>

<body>
<table width="100%" border="0">
  <tr>
    <td width="31%">客户姓名</td>
    <td width="18%">性别</td>
    <td width="17%">生日</td>
    <td width="17%">行业</td>
    <td width="17%">密码</td>
  </tr>
  <c:forEach items="${requestScope.pageRows}" var="user1">
  <tr>
    <td>${user1.userName}</td>
    <td>${user1.sex}</td>
    <td>${user1.birthday}</td>
    <td>${user1.trade}</td>
    <td>${user1.pwd}</td>
  </tr>
  </c:forEach>
  <tr>
   <td colspan="5">
    ${pageHtml}
   </td>
  </tr>
</table>
</body>
</html>

 

 

web.xml配置

 

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <servlet>
    <servlet-name>BaseServlet</servlet-name>
    <servlet-class>servlet.BaseServlet</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>insertUser</servlet-name>
    <servlet-class>servlet.InsertUser</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>UpdateUser</servlet-name>
    <servlet-class>servlet.UpdateUser</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>deleteUser</servlet-name>
    <servlet-class>servlet.DeleteUser</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>Login</servlet-name>
    <servlet-class>servlet.Login</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>GetAll</servlet-name>
    <servlet-class>servlet.GetAll</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>GetPage</servlet-name>
    <servlet-class>servlet.GetPage</servlet-class>
  </servlet>

 

 

 

  <servlet-mapping>
    <servlet-name>BaseServlet</servlet-name>
    <url-pattern>/BaseServlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>insertUser</servlet-name>
    <url-pattern>/insertUser</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>UpdateUser</servlet-name>
    <url-pattern>/updateUser</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>deleteUser</servlet-name>
    <url-pattern>/deleteUser</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Login</servlet-name>
    <url-pattern>/login</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>GetAll</servlet-name>
    <url-pattern>/getAll</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>GetPage</servlet-name>
    <url-pattern>/getPage</url-pattern>
  </servlet-mapping>

</web-app>

 

需要的jar包

jstl.jar
standard.jar

 

sqlserver 2000的jar包

msbase.jar
mssqlserver.jar
msutil.jar

 

以下源代码没有经过美化,还相应的验证



 

 

 






 

 

 

 

 

 

 

 


 

 

 

 

 

 


 


 

 

 


 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值