将servlet中提交的表单值传递给java类,然后插入数据库
表单值被提交到servlet,我需要将这些值检索到一个类“RegisterDetails”中,然后插入数据库“userdetails”。。我使用session存储值,然后在类文件中检索它。这是一次失败。我应该如何将这些值带入类文件???稍后,我还需要将这些值传递到jsp中。请指示我。如果有任何错误,请帮助我 Servlet:p1.java将servlet中提交的表单值传递给java类,然后插入数据库,java,jsp,servlets,Java,Jsp,Servlets,表单值被提交到servlet,我需要将这些值检索到一个类“RegisterDetails”中,然后插入数据库“userdetails”。。我使用session存储值,然后在类文件中检索它。这是一次失败。我应该如何将这些值带入类文件???稍后,我还需要将这些值传递到jsp中。请指示我。如果有任何错误,请帮助我 Servlet:p1.java import java.io.IOException; import java.sql.Connection; import javax.servlet.R
import java.io.IOException;
import java.sql.Connection;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
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 reg.common.Co;
//import agge.db.geg;
//import agge.model.m_login;
import reg.db.RegisterDetails;
/**
* Servlet implementation class p1
*/
@WebServlet("/p1")
public class p1 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public p1() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
String a=request.getParameter("username1");
String b=request.getParameter("password1");
String c = request.getParameter("confirmpassword1");
String d = request.getParameter("email1");
String ee = request.getParameter("mob1");
String f =request.getParameter("address1");
System.out.println("Hai User "+a);
System.out.println("Password is "+b);
session.setAttribute("de", a);
session.setAttribute("de1", b);
session.setAttribute("de2", c);
session.setAttribute("de3", d);
session.setAttribute("de4", ee);
session.setAttribute("de5",f);
RegisterDetails details = new RegisterDetails();
session.setAttribute("details", details);
getServletContext().getRequestDispatcher("/jsp/Welcome.jsp").forward(request, response);
}
}
package reg.db;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpSession;
import java.sql.*;
public class RegisterDetails {
String user13;
String pass13;
String confpassword13;
String email13;
String mobile13;
String address13;
private ServletRequest session;
String n=(String)session.getAttribute("de");
String n1=(String)session.getAttribute("de1");
String n2=(String)session.getAttribute("de2");
String n3=(String)session.getAttribute("de3");
String n4=(String)session.getAttribute("de4");
String n5=(String)session.getAttribute("de5");
public boolean insertDB() throws Exception {
Connection conn=null;
PreparedStatement st = null;
st=conn.prepareStatement("insert into user_details(username, password, confpassword, email,mobile, address) values ('" + n + "','" + n1 + "','" + n2 + "','" + n3 + "','" + n4 + "',' "+n5+ "')");
ResultSet rs =st.executeQuery();
boolean l_status=false;
while(rs.next()){
user13 = rs.getString("username");
pass13 = rs.getString("password");
confpassword13 = rs.getString("confpassword");
email13 = rs.getString("email");
mobile13 = rs.getString("mobile");
address13 = rs.getString("address");
}
return l_status=true;
}
}
package reg.common;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Dbconnect {
Connection conn=null;
public Connection getConnection() {
try {
String driverName = "org.postgresql.Driver";
Class.forName(driverName).newInstance();
conn=DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres","postgres", "postgres");
}
catch (ClassNotFoundException e) {e.printStackTrace();
System.out.println("db Error1");
}
catch (SQLException e) {
e.printStackTrace();
System.out.println("DB Error 2");
}
catch (Exception e) {
}
return conn;
}
public void closeConnection(Connection connection) {
try{
connection.close();
}
catch (Exception e) {
}
}
}
类:RegisterDetails.java
import java.io.IOException;
import java.sql.Connection;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
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 reg.common.Co;
//import agge.db.geg;
//import agge.model.m_login;
import reg.db.RegisterDetails;
/**
* Servlet implementation class p1
*/
@WebServlet("/p1")
public class p1 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public p1() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
String a=request.getParameter("username1");
String b=request.getParameter("password1");
String c = request.getParameter("confirmpassword1");
String d = request.getParameter("email1");
String ee = request.getParameter("mob1");
String f =request.getParameter("address1");
System.out.println("Hai User "+a);
System.out.println("Password is "+b);
session.setAttribute("de", a);
session.setAttribute("de1", b);
session.setAttribute("de2", c);
session.setAttribute("de3", d);
session.setAttribute("de4", ee);
session.setAttribute("de5",f);
RegisterDetails details = new RegisterDetails();
session.setAttribute("details", details);
getServletContext().getRequestDispatcher("/jsp/Welcome.jsp").forward(request, response);
}
}
package reg.db;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpSession;
import java.sql.*;
public class RegisterDetails {
String user13;
String pass13;
String confpassword13;
String email13;
String mobile13;
String address13;
private ServletRequest session;
String n=(String)session.getAttribute("de");
String n1=(String)session.getAttribute("de1");
String n2=(String)session.getAttribute("de2");
String n3=(String)session.getAttribute("de3");
String n4=(String)session.getAttribute("de4");
String n5=(String)session.getAttribute("de5");
public boolean insertDB() throws Exception {
Connection conn=null;
PreparedStatement st = null;
st=conn.prepareStatement("insert into user_details(username, password, confpassword, email,mobile, address) values ('" + n + "','" + n1 + "','" + n2 + "','" + n3 + "','" + n4 + "',' "+n5+ "')");
ResultSet rs =st.executeQuery();
boolean l_status=false;
while(rs.next()){
user13 = rs.getString("username");
pass13 = rs.getString("password");
confpassword13 = rs.getString("confpassword");
email13 = rs.getString("email");
mobile13 = rs.getString("mobile");
address13 = rs.getString("address");
}
return l_status=true;
}
}
package reg.common;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Dbconnect {
Connection conn=null;
public Connection getConnection() {
try {
String driverName = "org.postgresql.Driver";
Class.forName(driverName).newInstance();
conn=DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres","postgres", "postgres");
}
catch (ClassNotFoundException e) {e.printStackTrace();
System.out.println("db Error1");
}
catch (SQLException e) {
e.printStackTrace();
System.out.println("DB Error 2");
}
catch (Exception e) {
}
return conn;
}
public void closeConnection(Connection connection) {
try{
connection.close();
}
catch (Exception e) {
}
}
}
数据库连接:Dbconnect.java
import java.io.IOException;
import java.sql.Connection;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
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 reg.common.Co;
//import agge.db.geg;
//import agge.model.m_login;
import reg.db.RegisterDetails;
/**
* Servlet implementation class p1
*/
@WebServlet("/p1")
public class p1 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public p1() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
String a=request.getParameter("username1");
String b=request.getParameter("password1");
String c = request.getParameter("confirmpassword1");
String d = request.getParameter("email1");
String ee = request.getParameter("mob1");
String f =request.getParameter("address1");
System.out.println("Hai User "+a);
System.out.println("Password is "+b);
session.setAttribute("de", a);
session.setAttribute("de1", b);
session.setAttribute("de2", c);
session.setAttribute("de3", d);
session.setAttribute("de4", ee);
session.setAttribute("de5",f);
RegisterDetails details = new RegisterDetails();
session.setAttribute("details", details);
getServletContext().getRequestDispatcher("/jsp/Welcome.jsp").forward(request, response);
}
}
package reg.db;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpSession;
import java.sql.*;
public class RegisterDetails {
String user13;
String pass13;
String confpassword13;
String email13;
String mobile13;
String address13;
private ServletRequest session;
String n=(String)session.getAttribute("de");
String n1=(String)session.getAttribute("de1");
String n2=(String)session.getAttribute("de2");
String n3=(String)session.getAttribute("de3");
String n4=(String)session.getAttribute("de4");
String n5=(String)session.getAttribute("de5");
public boolean insertDB() throws Exception {
Connection conn=null;
PreparedStatement st = null;
st=conn.prepareStatement("insert into user_details(username, password, confpassword, email,mobile, address) values ('" + n + "','" + n1 + "','" + n2 + "','" + n3 + "','" + n4 + "',' "+n5+ "')");
ResultSet rs =st.executeQuery();
boolean l_status=false;
while(rs.next()){
user13 = rs.getString("username");
pass13 = rs.getString("password");
confpassword13 = rs.getString("confpassword");
email13 = rs.getString("email");
mobile13 = rs.getString("mobile");
address13 = rs.getString("address");
}
return l_status=true;
}
}
package reg.common;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Dbconnect {
Connection conn=null;
public Connection getConnection() {
try {
String driverName = "org.postgresql.Driver";
Class.forName(driverName).newInstance();
conn=DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres","postgres", "postgres");
}
catch (ClassNotFoundException e) {e.printStackTrace();
System.out.println("db Error1");
}
catch (SQLException e) {
e.printStackTrace();
System.out.println("DB Error 2");
}
catch (Exception e) {
}
return conn;
}
public void closeConnection(Connection connection) {
try{
connection.close();
}
catch (Exception e) {
}
}
}
jsp:Welcome.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="reg.db.RegisterDetails" %>
<!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>
Hai
<% RegisterDetails details = (RegisterDetails)session.getAttribute("details");%>
</body>
</html>
在此处插入标题
海
在您的p1
servlet中,您正在使用RegisterDetails
的新实例设置会话属性“details”,而不设置该对象的任何属性(即用户名等)
相反,您将这些属性设置为具有神秘名称的会话属性(“de”、“de1”等等)
这可能会导致您的问题(除了架构或安全性方面的所有考虑因素),因为您检索的RegisterDetails
实际上是一个空对象 试试这几个步骤。。。
1.您应该设置RegisterDetails对象的数据成员的值,而不是将参数值存储在各种字符串对象中
您正在将servlet中接收的参数设置为其他会话属性,并设置一个空的
RegisterDetails
对象。而是在servlet中设置在RegisterDetails
对象中接收的值。大概是这样的:-
RegisterDetails details = new RegisterDetails();
details.user13=request.getParameter("username1");
details.pass13=request.getParameter("password1");
details.confpassword13= request.getParameter("confirmpassword1");
details.email13= request.getParameter("email1");
details.mobile13 = request.getParameter("mob1");
details.address13 =request.getParameter("address1");
这应该可以解决您的问题,但除此之外,我建议重新设计您的解决方案并遵循编码最佳实践。Alteast为您生成getter/setter方法RegisterDetails
类,然后使用该方法设置对象数据memeber值,而不必直接访问它们
编辑:-似乎
RegisterDetails
的数据成员的访问说明符是default
,将其更改为public
以访问和分配值,因为servlet和RegisterDetails类位于不同的包中。尽管建议的方法是将它们设置为private
,并生成公共getter/setter。yeah@Mena发现了问题……应进行哪些更改。