首先我们在在File中选择new在选择java project在任意取一个名字,如图:
选择才创建的项目userManager,在src下分别创建dao包,DBHelper包(可直接在其他项目中把它复制过来),entity包和servlet包,如图:
打开entity,在它下面new一个class,命名为User,然后定义三个变量代码如下:
package entity; public class User { private String userID; private String username; private String userword; public String getUserID() { return userID; } public void setUserID(String userID) { this.userID = userID; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getUserword() { return userword; } public void setUserword(String userword) { this.userword = userword; } }
打开DAO,在它下面new一个class,命名为Userdao,代码如下:
package dao; import java.util.*; import java.sql.*; import entity.*; import DBHelper.*; public class Userdao { public List getAllUser() { String SQL = "SELECT * FROM user"; ResultSet rs = DBHelper.getResultSet(SQL); return tools.ResultSettoList(rs, User.class); // try{ // String SQL="SELECT*FROM user"; // ResultSet rs= DBHelper.getResultSet(SQL); // List users=new ArrayList(); // while(rs.next()) // { // User u=new User(); // u.setUserID(rs.getString("userID")); // u.setUsername(rs.getString("userName")); // u.setUserword(rs.getString("password")); // users.add(u); // } // return users; // }catch(Exception ex){return null; // } // } public boolean insert(User u){ String SQL="INSERT INTO user(userID,username,userword) VALUES(?,?,?)"; Object[] params=new Object[]{u.getUserID(),u.getUsername(),u.getUserword()}; int n=DBHelper.ExecSql(SQL,params); if(n>0) return true; else return false; } public boolean update(User u){ String sql="update user set username=?,userword=? where userID=?"; Object[] obj=new Object[]{u.getUsername(),u.getUserword(),u.getUserID()}; int rs=DBHelper.ExecSql(sql,obj); if(rs==1) return true; else return false; } public boolean delete(User u){ String sql="delete from user where userID=?"; Object[] obj=new Object[]{u.getUserID()}; int rs=DBHelper.ExecSql(sql,obj); if(rs==1) return true; else return true; } }
接着还需要在DAO下创建一个类,命名为testdao,用于测试Userdaobao的代码,代码如下:
package dao; import java.sql.SQLException; import java.util.List; import entity.User; public class testDAO { public static void main(String[] args) throws SQLException { // TODO Auto-generated method stub // 测试查询 // Userdao dao= new Userdao(); // List list =dao.getAllUser(); // System.out.println(list.size()); // 测试添加: Userdao dao=new Userdao(); User u= new User(); // u.setUserID("d"); // u.setUsername("d"); // u.setUserword("d"); // dao.insert(u); // // 测试删除: // u.setUserID("d"); // dao.delete(u); // System.out.println("u"); // 测试修改 u.setUserID("c"); u.setUserword("q"); u.setUsername("q"); dao.update(u); System.out.println("u"); } }
打开servlet,在它下面new一个servlet,命名为UserServlet,把 pageEncoding改成UTF0-8;删除doGet和doPost里的内容,doGet和doPost里的代码如下:
package servlet; import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import dao.*; import entity.*; import DBHelper.*; public class Userservlet extends HttpServlet { /** * Constructor of the object. */ public Userservlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Userdao dao=new Userdao(); List users=dao.getAllUser(); request.getSession().setAttribute("users", users); response.sendRedirect("show.jsp"); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } }
在WebRoot下创建一个user命名的目录,然后在user下new一个show.jsp。先导入entity包,在把 pageEncoding改成UTF0-8;然后再body里写输出的样式,代码如下:
<%@ page language="java" import="java.util.*,dao.*,DBHelper.*,entity.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <title>User.jsp</title> </head> <body> <% List<User>users = (List<User>)session.getAttribute("users"); //String uid=request.getParameter("userID"); //String uname=request.getParameter("username"); //String password=request.getParameter("password"); //out.print("用户ID:"+uid+"<hr/>"); //out.print("姓名:"+uname+"<hr/>"); //out.print("密码:"+password+"<hr/>"); out.print("<table border=1 cellspacing=1>"); out.print("<tr><td>id</td><td>用户名</td><td>密码</td></tr>"); for(User u:users) { out.print("<tr>"); out.print("<td>"+u.getUserID()+"</td>"); out.print("<td>"+u.getUsername()+"</td>"); out.print("<td>"+u.getUserword()+"</td>"); out.print("</tr>"); } out.print("</table>"); %> </body> </html>
记得一定要将链接sql的驱动文件复制在WebRoot下的WEB-INF里的lib下面。
打开WebRoot下的WEB-INF,打开web.xml,复制其路径,开启服务,输入网址(网址如http://localhost:8080/userManager/servlet/UserServlet)即可查看。路径如图: