如何在数据库中保存值并在jsp中更新?

时间:2013-09-10 17:25:33

标签: jsp servlets

我唯一的问题是我想知道如何使用servlet在数据库中保存值。这是一个使用servlet的登录示例。

这是我的servlet代码。

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.swing.SwingUtilities;


public class UserController extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private static final int Id = 0;
    private static final String Password = null;
    private static final String Username = null;
    private static final int Userid = 0;
    private static String INSERT_OR_EDIT = "/user.jsp";
    private static String LIST_USER = "/listUser.jsp";
    public static String PARAM_USERNAME = "uname";
    public static String PARAM_PASSWORD = "pass";
    private UserDao dao;
    private Connection connection;


    public UserController() {
        super();
        dao = new UserDao();
    }


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        String forward="";
String act = request.getParameter("act");
         if (act != null && !act.equalsIgnoreCase("null") && act.equalsIgnoreCase("login")) {
            forward= "/Login.jsp";
            }

         else if (act != null && !act.equalsIgnoreCase("null") && act.equalsIgnoreCase("delete"))
        {
            int userId = Integer.parseInt(request.getParameter("userId"));
            dao.deleteUser(userId);
            forward = LIST_USER;
            request.setAttribute("users", dao.getAllUsers());    
        } else if (act!=null && !act.equalsIgnoreCase("null") && act.equalsIgnoreCase("edit")){
            forward = INSERT_OR_EDIT;
            int userId = Integer.parseInt(request.getParameter("userId"));
            User user1 = dao.getUserById(userId);
            request.setAttribute("user", user1);
        } else if (act!=null && !act.equalsIgnoreCase("null") && act.equalsIgnoreCase("listUser")){
            forward = LIST_USER;
            request.setAttribute("users", dao.getAllUsers());
        } else if (act!=null && !act.equalsIgnoreCase("null") && act.equalsIgnoreCase("register")){
            forward = "/reg.jsp";
           // request.setAttribute("users", dao.getAllUsers());
        } else 
            forward = "/Login.jsp";

        RequestDispatcher view = request.getRequestDispatcher(forward);
        view.forward(request, response);
        } 



    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out=response.getWriter();

        String act = request.getParameter("act");
        if (act != null && !act.equalsIgnoreCase("null") && act.equalsIgnoreCase("login")) {

            String str=request.getParameter("username");
            String str1=request.getParameter("password");


            if(str.equalsIgnoreCase("hi")&&str1.equalsIgnoreCase("hello"))
            {        
                System.out.println("Login!");
                   request.setAttribute("users",dao.getAllUsers());
                    request.getRequestDispatcher("/listUser.jsp").forward(request, response); 

            }else
             {
                  System.out.println("Login failed!");

              }
        }
        else
        {

        }
        User user = new User();
        Details details = new Details();
        user.setFirstName(request.getParameter("firstName"));
        user.setLastName(request.getParameter("lastName"));
        details.setUsername(request.getParameter("uname"));
        details.setPassword(request.getParameter("pass"));


        if (act != null && !act.equalsIgnoreCase("null") && act.equalsIgnoreCase("register"))
        {

            String userid=request.getParameter("userid");
            String username=request.getParameter("username");
            String password=request.getParameter("password");
            String id=request.getParameter("id");

            if(userid.equals("") || username.equals("") || password.equals("") || id.equals(""))
            { 
                out.println("Please insert valid data");
            }
            RequestDispatcher rd = request.getRequestDispatcher("/listUser.jsp");
            rd.include(request, response); 
            }

        else
        {
            RequestDispatcher rd = request.getRequestDispatcher("/listUser.jsp");
            rd.include(request, response); 

        try {
            PreparedStatement preparedStatement = connection.
                    prepareStatement("select * from details where id=?");
            preparedStatement.setInt(1, Id);
            ResultSet rs = preparedStatement.executeQuery();

            if (rs.next()) {
                details.setUserid(rs.getInt("userid"));
                details.setUsername(rs.getString("username"));
                details.setPassword(rs.getString("password"));
                details.setId(rs.getInt("id"));
            }


        PreparedStatement preparedStatement1 = connection.
                prepareStatement( "insert into details values(?,?,?,?)");
        preparedStatement1.setInt(1, Userid);
        preparedStatement1.setString(2, Username);
        preparedStatement1.setString(3, Password);
        preparedStatement1.setInt(4, Id);

        int i=preparedStatement1.executeUpdate(); 
        if(i>0)
        {
      System.out.print("Student record successfully inserted");
            RequestDispatcher rd1 = request.getRequestDispatcher("/listUser.jsp");
            rd1.include(request, response);
        }
      }
        catch (Exception e)
        {
            System.out.println(e);
        }
        } 
    } 
}

这是我的注册jsp。

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Registration</title>


  </head>
    <body>
        <form method="post" action="/SimpleJspServletDB2/UserController?act=save">
            <center>
            <table border="1" width="30%" cellpadding="5">
                <thead>
                    <tr>
                        <th colspan="2">Enter Information Here</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>userid</td>
                        <td><input type="int" name="userid" value="" /></td>
                    </tr>
                    <tr>
                        <td>username</td>
                        <td><input type="text" name="username" value="" /></td>
                    </tr>
                    <tr>
                        <td>password</td>
                        <td><input type="text" name="password" value="" /></td>
                    </tr>
                    <tr>
                        <td>id</td>
                        <td><input type="int" name="id" value="" /></td>
                    </tr>
                    <tr>
                        <td><input type="submit" value="Submit" /></td>
                        <td><input type="reset" value="Reset" /></td>
                    </tr>
                    <tr>
                        <td colspan="2">Already registered!! <a href="index.jsp">Login Here</a></td>
                    </tr>
                </tbody>
            </table>
            </center>
        </form>
    </body>
</html>

我在servlet中添加了一个注册操作,它有助于细节,但是我无法弄清楚如何在数据库中保存细节并使用数据库访问它。

1 个答案:

答案 0 :(得分:0)

您在POST中传递了一个查询字符串参数(act=save),但这不起作用。

此外,您的Java代码正在检查值registerlogin的参数,而不是save