首先我们在在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)即可查看。路径如图: