Я отправляю flag = update, чтобы вызвать метод обновления с URL-адресом, а также отправить идентификатор текущую запись, которую пользователь хочет отредактировать запись. Здесь моя проблема в том, что я не могу получить значения параметров (fname, lname, email, pass, cno) из метода редактирования . Каждый раз, когда он возвращает null из метода обновления.Не удается получить данные из того же сервлета, используя request.getParameter() или request.getAttributes(), попробовал оба получить только нуль
Я думаю, что что-то не так в методе обновления или методе редактирования. Пожалуйста, изучите этот вопрос. Я хочу понять, почему эта проблема возникает с тех пор, как я пробую последние несколько часов.
Я знаю, что могу использовать request.getAttributes();
вместо request.getParameter();
, чтобы получить данные в том же сервлете, но дайте мне знать, если они есть какой-либо простой способ или нет? и, пожалуйста, помогите решить мою проблему. Заранее спасибо.
Registration.html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Registration Page</title>
</head>
<body>
<form action="Controller1" >
First Name : <input type="text" name="fName"><br/>
Last Name : <input type="text" name="lName"><br/>
Email : <input type="text" name="eMail"><br/>
Password : <input type="password" name="password"><br/>
Contact No : <input type="text" name="cNo"><br/><br/>
<input type="submit" value="Register">
<input type="hidden" name="flag" value="register">
<a href="Controller1?flag=login">Login</a>
</form>
</body>
</html>
login.html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Login Page</title>
</head>
<body>
<form action="Controller1">
Email : <input type="text" name="lin_Email" value="insert your registered EmailID"><br/>
Password : <input type="text" name="lin_Pass" value="enter your registered password"><br/>
<input type="submit" value="Login">
<input type="hidden" name="flag" value="loginValidate">
</form>
</body>
</html>
Controller1.java
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Controller1
*/
@WebServlet("/Controller1")
public class Controller1 extends HttpServlet {
private static final long serialVersionUID = 1L;
int id;
String fname, lname, email, pass, cno, flag;
PrintWriter out;
/**
* @see HttpServlet#HttpServlet()
*/
public Controller1() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
flag = request.getParameter("flag");
if (flag.equals("register")) {
register(request, response);
} else if (flag.equals("login")) {
response.sendRedirect("/JDBC_Registration/Login.html");
}
else if (flag.equals("loginValidate")) {
loginValidate(request, response);
} else if (flag.equals("view")) {
try {
view(request, response);
} catch (SQLException e) {
e.printStackTrace();
}
} else if (flag.equals("edit")) {
try {
edit(request, response);
} catch (SQLException e) {
e.printStackTrace();
}
} else if (flag.equals("delete")) {
delete(request, response);
}
else if (flag.equals("update")) {
try {
update(request, response);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private void update(HttpServletRequest request, HttpServletResponse response) throws IOException, SQLException, ServletException {
response.setContentType("text/html");
out = response.getWriter();
id = Integer.parseInt(request.getParameter("id"));
//
// String fname = request.getParameter("t1");
// String lname = request.getParameter("t2");
// String email = request.getParameter("t3");
// String pass = request.getParameter("t4");
// String cno = request.getParameter("t5");
fname = (String) request.getAttribute("t1");
lname = (String) request.getAttribute("t2");
email = (String) request.getAttribute("t3");
pass = (String) request.getAttribute("t4");
cno = (String) request.getAttribute("t5");
System.out.println("updated values... "+fname+" "+lname+" "+email+" "+pass+" "+cno);
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test2","root","root");
Statement stm = con.createStatement();
stm.executeUpdate("update registration set FirstName='"+fname+"',LastName='"+lname+"',Email='"+email+"',Password='"+pass+"',ContactNo='"+cno+"' where id='"+id+"'");
view(request, response);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
private void delete(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
out = response.getWriter();
id = Integer.parseInt(request.getParameter("id"));
System.out.println("delete record ID....."+id);
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test2","root","root");
Statement stm = con.createStatement();
stm.executeUpdate("delete from registration where id='"+id+"'");
System.out.println("successfully deleted...record ID : "+id);
view(request, response);
}catch (Exception e) {
System.out.println(e);
}
}
private void edit(HttpServletRequest request, HttpServletResponse response) throws IOException, SQLException {
response.setContentType("text/html");
out = response.getWriter();
id = Integer.parseInt(request.getParameter("id"));
System.out.println(""+id);
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test2","root","root");
Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery("select * from registration where id='"+id+"'");
out.println("<form action='Controller1'><table border=2>");
out.println(
"<tr><td>ID</td><td>FirstName</td><td>LastName</td><td>Email</td><td>Password</td><td>ContactNo</td><td>Action</td></tr>");
while (rs.next()) {
out.println("<tr><td>" + rs.getString(1) + "</td><td><input type='text' name='t1' value=" + rs.getString(2) + "></td><td><input type='text' name='t2' value=" + rs.getString(3) + "></td><td><input type='text' name='t3' value=" + rs.getString(4) + "></td><td><input type='text' name='t4' value=" + rs.getString(5) + "></td><td><input type='text' name='t5' value=" + rs.getString(6) + "></td><td> <a href=Controller1?flag=update&id=" + rs.getString(1)
+ ">Update</a> </td></tr>");
}
out.println("</table></form>");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
private void view(HttpServletRequest request, HttpServletResponse response)
throws SQLException, IOException, ServletException {
response.setContentType("text/html");
out = response.getWriter();
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test2", "root", "root");
Statement stmt = con.createStatement();
// RequestDispatcher rd =
// request.getRequestDispatcher("Welcome.html");
// rd.include(request, response);
ResultSet rs = stmt.executeQuery("select * from registration");
out.println("<form><table border=2>");
out.println(
"<tr><td>ID</td><td>FirstName</td><td>LastName</td><td>Email</td><td>Password</td><td>ContactNo</td><td>Action</td></tr>");
while (rs.next()) {
out.println("<tr><td>" + rs.getString(1) + "</td><td>" + rs.getString(2) + "</td><td>" + rs.getString(3)
+ "</td><td>" + rs.getString(4) + "</td><td>" + rs.getString(5) + "</td><td>" + rs.getString(6)
+ "</td><td> <a href=Controller1?flag=edit&id=" + rs.getInt(1)
+ ">Edit</a> <a href=Controller1?flag=delete&id=" + rs.getInt(1)
+ ">Delete</a> </td></tr>");
}
out.println("</table></form>");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
private void loginValidate(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
out = response.getWriter();
try {
email = request.getParameter("lin_Email");
pass = request.getParameter("lin_Pass");
System.out.println("" + email + pass);
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test2", "root", "root");
Statement stmt = con.createStatement();
ResultSet rs = stmt
.executeQuery("select * from registration where Email='" + email + "'and Password='" + pass + "'");
if (!rs.next()) {
out.println("<h4 style='color:red'>Please Enter correct Email ID & Password...sq</h4><br/><br/>");
// response.sendRedirect("/JDBC_Registration/Login.html");
RequestDispatcher rd = request.getRequestDispatcher("Login.html");
rd.include(request, response);
} else {
// System.out.println("else if called....");
out.println("<h1>Welcome User :</h1><h3>" + rs.getString(2)
+ "</h3> <a href=Controller1?flag=view>view</a>");
RequestDispatcher rd = request.getRequestDispatcher("Welcome.html");
rd.include(request, response);
}
} catch (Exception e) {
System.out.println(e);
}
}
private void register(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
out = response.getWriter();
try {
fname = request.getParameter("fName");
lname = request.getParameter("lName");
email = request.getParameter("eMail");
pass = request.getParameter("password");
cno = request.getParameter("cNo");
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test2", "root", "root");
Statement stmt = con.createStatement();
stmt.executeUpdate("insert into registration(FirstName,LastName,Email,Password,ContactNo) values('" + fname
+ "','" + lname + "','" + email + "','" + pass + "','" + cno + "')");
System.out.println(" INSERT : : : " + fname + " " + lname + " " + email + " " + pass + " " + cno);
response.sendRedirect("/JDBC_Registration/Login.html");
// view(request, response);
} catch (Exception e) {
System.out.println(e);
}
}
}
Знаете ли вы, что вы используете неправильные имена параметров при обновлении? Я имею в виду, что они называются fName и т. Д., И вы получаете доступ к t1, это просто, например, или во время выполнения? А также доступ к атрибутам, пока они фактически являются параметрами, неверен –
Он применим для выполнения. Но когда я попробовал его с Button вместо Hyperlink «Update», я получил параметры. поэтому я думаю, что возможно, я ошибаюсь при отправке параметров с URL-адресом. –
Пожалуйста, покажите нам страницу, из которой обновление называется –