web Services的使用

web Services的使用

1.UserDao.java    用于对数据库进行操作

package com.mobiletrain.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.mobiletrain.pojo.Users;
import com.sun.org.apache.bcel.internal.generic.GETSTATIC;

public class UserDao {
    Connection conn;
    Statement st;// PreparedStatement
    ResultSet rs;

    public void getSatement() {
        // 加载驱动
        try {
            Class.forName("org.sqlite.JDBC");
            // 获得COnnection对象
            conn = DriverManager.getConnection("jdbc:sqlite:d:/mytest.db");
            st = conn.createStatement();

        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    public void closeConn() {
        if (st != null) {
            try {
                st.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    public void createUserTable() {
        getSatement();
        try {
            st.execute(
                    "create table if not exists users(_id integer primary key autoincrement,uname string,pwd string)");
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            closeConn();
        }

    }

    public boolean addUser(String name, String pwd) {
        getSatement();

        try {
            // insert into users(uname,pwd) values('admin','admin')
            int count = st.executeUpdate("insert into users(uname,pwd) values('" + name + "','" + pwd + "')");
            if (count > 0) {
                return true;
            }

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            closeConn();
        }
        return false;

    }

    // 是否能登录
    public boolean isLogin(String name, String pwd) {
        getSatement();
        try {
            rs = st.executeQuery("select pwd from users where uname='" + name + "'");
            while (rs.next()) {
                if (pwd.equals(rs.getString("pwd"))) {
                    return true;
                }

            }

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            closeConn();
        }

        return false;
    }

    public List<Users> getAllUsers() {
        getSatement();
        List<Users> list = new ArrayList<Users>();
        try {
            rs = st.executeQuery("select * from users");
            while (rs.next()) {
                Users users = new Users();
                users.setId(rs.getInt("_id"));
                users.setName(rs.getString("uname"));
                users.setPwd(rs.getString("pwd"));
                list.add(users);

            }

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return list;

    }
    
    public  boolean delete(int id){
        getSatement();
        try {
            int i=st.executeUpdate("delete from users where _id="+id);
            if (i>0) {
                return true;
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            closeConn();
        }
        return false;
        
    }
    
    public boolean update(String uname,String pwd,int id){
        getSatement();
        try {
            int i=st.executeUpdate("update users set uname='"+uname+"',pwd='"+pwd+"' where _id="+id);
            if (i>0) {
                return true;
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            closeConn();
        }
        
        return false;
    }

    public Users getUsersById(int id){
        getSatement();
        try {
            rs=st.executeQuery("select * from users where _id="+id);
            if (rs.next()) {
                Users u = new Users();
                u.setId(rs.getInt("_id"));
                u.setName(rs.getString("uname"));
                u.setPwd(rs.getString("pwd"));
                
                return u;
            }
        
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            closeConn();
        }
        return null;
        
    }
    public static void main(String[] args) {
        UserDao dao = new UserDao();
        dao.createUserTable();
//         dao.addUser("张三", "admin");
//         dao.addUser("里斯", "maxiaoyun");
//         dao.addUser("王二麻子", "liyanhong");   事先想数据库加入数据  为用户登录的数据做比较
        if (dao.isLogin("admin", "admin")) {
            System.out.println("登录成功!");
        }
        
        if (dao.delete(1)) {
            System.out.println("删除成功");
        }
        if (dao.update("李四", "lisi", 5)) {
            System.out.println("修改成功");
        }
        
        System.out.println(dao.getUsersById(2));
        System.out.println("----------");
        List<Users> list = dao.getAllUsers();
        for (Users users : list) {
            System.out.println(users);
        }

    }

}

2.Users.java   封装用户信息

package com.mobiletrain.pojo;

public class Users {

    private int id;
    private String name;
    private String pwd;

    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;
    }

    @Override
    public String toString() {
        return "Users [id=" + id + ", name=" + name + ", pwd=" + pwd + "]";
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

}

3.DeleteServlet.java        后台处理删除操作

package com.mobiletrain.web;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.mobiletrain.dao.UserDao;

/**
 * Servlet implementation class DeleteServlet
 */
@WebServlet("/delete")
public class DeleteServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public DeleteServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //接受传过来的参数
        String id = request.getParameter("id");
        int  _id = Integer.parseInt(id);
        UserDao dao = new UserDao();
        if (dao.delete(_id)) {
            request.getRequestDispatcher("userList.jsp").forward(request, response);
        }else {
            response.sendRedirect("error.html");
        }
        
        
    }

    

}

4.DoUpdateServlet.java        后台处理更新操作

package com.mobiletrain.web;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.mobiletrain.dao.UserDao;

/**
 * Servlet implementation class DoUpdateServlet
 */
@WebServlet("/doUpdate")

public class DoUpdateServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public DoUpdateServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int id = Integer.parseInt(request.getParameter("id"));
        String name = request.getParameter("name");
        String pwd = request.getParameter("pwd");
        UserDao dao = new UserDao();
        if (dao.update(name, pwd, id)) {
            response.sendRedirect("userList.jsp");
            
        }else {
            response.sendRedirect("error.jsp");
        }
        
        
        
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}

5.LoginServlet.java     后台处理登录操作         程序运行的 第二步:request.getRequestDispatcher("userList.jsp").forward(request, response);   方法指定运行userList.jsp页面

package com.mobiletrain.web;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.websocket.Session;

import com.mobiletrain.dao.UserDao;

/**
 * Servlet implementation class LoginServlet
 */
// URL Mapping
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * HttpServletRequest request 处理请求 HttpServletResponse response,响应
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 接受客户端传过来的用户名 和密码
        String name = request.getParameter("uname");// 用户名
        //name.getBytes("iso-8859-1")  按照iso-8859-1编码解码
        //get请求的汉字乱码的处理
        name = new String(name.getBytes("iso-8859-1"),"utf-8");
        String pwd = request.getParameter("pwd");// 密码
        System.out.println(name + "----" + pwd);
        // 连接数据库
        UserDao dao = new UserDao();
        if (dao.isLogin(name, pwd)) {// 登录成功
            // 页面跳转 1) 转发 可以携带数据 2) 重定向 不能带参数
            // 转发到success.html
            HttpSession session = request.getSession();
            session.setAttribute("uname", name);
            request.getRequestDispatcher("userList.jsp").forward(request, response);

        } else {// 登录失败
            // 重定向到登录页面
            response.sendRedirect("login.html");
        }

    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

 

6.UpdateServlet.java

package com.mobiletrain.web;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.mobiletrain.dao.UserDao;
import com.mobiletrain.pojo.Users;

/**
 * Servlet implementation class UpdateServlet
 */
@WebServlet("/update")
public class UpdateServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public UpdateServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int id = Integer.parseInt(request.getParameter("id"));
        UserDao dao = new UserDao();
        Users u = dao.getUsersById(id);
        if (u!=null) {
            //给request对象设置一个属性
             request.setAttribute("u", u);
             request.getRequestDispatcher("update.jsp").forward(request, response);
        }else{
            response.sendRedirect("error.jsp");
        }
        
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}

7.error.jsp             前台的显示错误的页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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>Insert title here</title>
</head>
<body>

 <h1>Sorry,操作失败!!!</h1>

</body>
</html>

8.login.html    第一步  先运行该程序,执行登录页面,当点击提交按钮时 通过action="login"属性 从后台的java代码中找到   @WebServlet("/login")  然后执行该java代码

说明:运行的时候数据库应该事先具有数据,可以后台运行main方法为数据库添加几条数据,这样在登陆页面输入用户名和密码时才能与数据库进行比较

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 <!-- 
 get:参数的参数会在地址栏显示
     获取数据
     携带的参数的大小有限制
     不安全
 post:不会显示
      提交数据  上次文件
      post无限制
      安全
  -->
     <form action="login" method="get">
         <table>
             <tr>
                 <td>用户名:</td>
                 <!-- 如果文本框输入的值需要传递给服务端,则必须设置name属性  服务端根据name属性的值来获取客户端的值 -->
                 <td><input type="text" name="uname">  </td>
             </tr>
             <tr>
                 <td>密  码:</td>
                 <!-- 如果文本框输入的值需要传递给服务端,则必须设置name属性  服务端根据name属性的值来获取客户端的值 -->
                 <td><input type="password" name="pwd">  </td>
             </tr>
             <tr>
                 <td><input type="submit" value="登录"> </td>
                 <td><input type="reset" value="重置">  </td>
             </tr>    
         </table>
     </form>
</body>
</html>

9.success.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>Insert title here</title>
</head>
<body>
<!--   嵌套java代码 -->
<%=request.getParameter("uname")
%>,登录成功!

</body>
</html>

10.update.jsp            前台的更新数据页面

<%@page import="com.mobiletrain.pojo.Users"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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>Insert title here</title>
</head>
<body>
<% Users u = (Users)request.getAttribute("u"); %>
<form action="doUpdate">
    <table border="1">
        <tr>
            <td>编号</td>
            <td><input type="text" value="<%=u.getId() %>" name="id" readonly="readonly">   </td>
        </tr>
        <tr>
            <td>用户名</td>
            <td><input type="text" value="<%=u.getName() %>" name="name">   </td>
        </tr>
        <tr>
            <td>密码</td>
            <td><input type="password" value="<%=u.getPwd() %>" name="pwd">   </td>
        </tr>
        <tr>
            <td><input type="submit" value="确定">   </td>
        </tr>    
    </table>
</form>

</body>
</html>

11.userList.jsp             显示数据表

<%@page import="com.mobiletrain.dao.UserDao"%>
<%@page import="com.mobiletrain.pojo.Users"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<div align="center">
<a href="javaScript:if(confirm('确认退出吗?'))location.href='login.html';">退出</a>
<table border="1">
    <tr>
        <td>编号</td>
        <td>用户名</td>
        <td>密   码</td>
        <td>操作</td>
    </tr>
    <%
    List<Users> list = new UserDao().getAllUsers();
    for(Users u:list){
    %>
    <tr>
        <td><%=u.getId() %> </td>
        <td><%=u.getName() %> </td>
        <td><%=u.getPwd() %> </td>
        <td>
            <a href="javaScript:if(confirm('是否删除?'))location.href='delete?id=<%=u.getId() %>';">删除</a>
            <a href="javaScript:if(confirm('是否修改?'))location.href='update?id=<%=u.getId() %>';">修改</a>
        </td>
    </tr>    
    
    <%
    }
    %>
    
    

</table>
</div>
</body>
</html>

 

posted @ 2016-05-24 16:44  ts-android  阅读(148)  评论(0编辑  收藏  举报