Java 在servlet中传递JSP中的值,并使用会话在servlet中的不同方法中保留这些值
我有一个jsp页面,它将显示来自数据库的记录。仅当username=admin和password=admin时,才启用编辑和删除按钮,而对于其他用户,则禁用编辑和删除按钮。现在,当我使用管理员凭据输入login.jsp时,按钮在编辑/更新或删除记录后立即被禁用。这是因为update和delete块中的用户名和密码得到的是空值。如果我可以保留登录的值,那么它可以正常工作,但我不知道如何实现它 在用户登录后,如何在servlet中的update和delete方法中保留用户名和密码 这是我的servlet代码Java 在servlet中传递JSP中的值,并使用会话在servlet中的不同方法中保留这些值,java,jsp,session,servlets,Java,Jsp,Session,Servlets,我有一个jsp页面,它将显示来自数据库的记录。仅当username=admin和password=admin时,才启用编辑和删除按钮,而对于其他用户,则禁用编辑和删除按钮。现在,当我使用管理员凭据输入login.jsp时,按钮在编辑/更新或删除记录后立即被禁用。这是因为update和delete块中的用户名和密码得到的是空值。如果我可以保留登录的值,那么它可以正常工作,但我不知道如何实现它 在用户登录后,如何在servlet中的update和delete方法中保留用户名和密码 这是我的servl
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
HttpSession session = request.getSession(false);
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String query;
Connection conn;
Statement stmt;
ResultSet res;
DatabaseConnection dbconn;
List lst=new ArrayList();
String id ;
String username="";
String hiddenname = request.getParameter("hiddenname");
username = request.getParameter("username");
String password = request.getParameter("password");
session.setAttribute("uname", username);
session.setAttribute("upass", password);
Connection con = dbconnection.getCon();
PreparedStatement statemt = null;
if ("login".equals(hiddenname))
{
try {
statemt = con.prepareStatement("select User_name,Password from login_details where User_name = ? and Password = ?");
statemt.setString(1, username);
statemt.setString(2, password);
ResultSet rs = statemt.executeQuery();
if (rs.next() == false)
{
out.write("Invalid user name or password. Please press back button to login again");
}
else
{
try
{
String login_name=(String) session.getAttribute("uname");
String login_password=(String) session.getAttribute("upass");
request.setAttribute("UserName", login_name);
request.setAttribute("UserPassword", login_password);
dbconn=new DatabaseConnection();
conn=dbconn.setConnection();
stmt=conn.createStatement();
query="select * from mpi";
res=dbconn.getResultSet(query, conn);
while(res.next())
{
lst.add(res.getString("UniqueID"));
lst.add(res.getString("Phylum"));
lst.add(res.getString("Family"));
lst.add(res.getString("Genus"));
lst.add(res.getString("NCBI_Taxnomy_ID"));
lst.add(res.getString("16s_Sanger_seq"));
lst.add(res.getString("Genome_Sequencing_Batch"));
lst.add(res.getString("Stock_number"));
lst.add(res.getString("Stock_Location"));
lst.add(res.getString("Soil_batch"));
lst.add(res.getString("Host"));
lst.add(res.getString("Operator"));
lst.add(res.getString("GPS_coordinates"));
lst.add(res.getString("Greenhouse_or_Natural_sites"));
lst.add(res.getString("Isolation_procedure"));
lst.add(res.getString("Date_of_isolation"));
lst.add(res.getString("Previous_Ids"));
lst.add(res.getString("Compartment"));
lst.add(res.getString("Publication"));
lst.add(res.getString("Strain_Derivatives"));
lst.add(res.getString("Growth_conditions"));
lst.add(res.getString("Natural_antibiotic_resistance"));
lst.add(res.getString("Colony_morphology"));
}
res.close();
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
request.setAttribute("UserData", lst);
RequestDispatcher rd=request.getRequestDispatcher("/displayrecord.jsp");
rd.forward(request, response);
lst.clear();
out.close();
}
}
con.close();
}
catch (SQLException e)
{
e.printStackTrace();
}
}
else if("update".equals(hiddenname))
{
String UniqueID,Phylum,Family,Genus,NCBI_Taxnomy_ID,s16_Sanger_seq,Genome_Sequencing_Batch,Stock_number,
Stock_Location,Soil_batch,Host,Operator,GPS_coordinates,Greenhouse_or_Natural_sites,
Isolation_procedure,Date_of_isolation,Previous_Ids,Compartment,Publication,Strain_Derivatives,Growth_conditions,
Natural_antibiotic_resistance,Colony_morphology,Comments;
response.setContentType("text/html;charset=UTF-8");
String login_name=(String) session.getAttribute("uname");
String login_password=(String) session.getAttribute("upass");
request.setAttribute("UserName", login_name);
request.setAttribute("UserPassword", login_password);
try{
dbconn=new DatabaseConnection();
conn=dbconn.setConnection();
UniqueID=request.getParameter("UniqueID").toString();
Phylum=request.getParameter("Phylum");
Family=request.getParameter("Family");
Genus=request.getParameter("Genus");
NCBI_Taxnomy_ID=request.getParameter("NCBI_Taxnomy_ID");
s16_Sanger_seq=request.getParameter("s16_Sanger_seq");
Genome_Sequencing_Batch=request.getParameter("Genome_Sequencing_Batch");
Stock_number=request.getParameter("Stock_number");
Stock_Location=request.getParameter("Stock_Location");
Soil_batch=request.getParameter("Soil_batch");
Host=request.getParameter("Host");
Operator=request.getParameter("Operator");
GPS_coordinates=request.getParameter("GPS_coordinates");
Greenhouse_or_Natural_sites=request.getParameter("Greenhouse_or_Natural_sites");
Isolation_procedure=request.getParameter("Isolation_procedure");
Date_of_isolation=request.getParameter("Date_of_isolation");
Previous_Ids=request.getParameter("Previous_Ids");
Compartment=request.getParameter("Compartment");
Publication=request.getParameter("Publication");
Strain_Derivatives=request.getParameter("Strain_Derivatives");
Growth_conditions=request.getParameter("Growth_conditions");
Natural_antibiotic_resistance=request.getParameter("Natural_antibiotic_resistance");
Colony_morphology=request.getParameter("Colony_morphology");
stmt=conn.createStatement();
query="update mpi set Phylum='"+Phylum+"',Family='"+Family+"',Genus='"+Genus+"',NCBI_Taxnomy_ID='"+NCBI_Taxnomy_ID+"',16s_Sanger_seq='"+s16_Sanger_seq+"',Genome_Sequencing_Batch='"+Genome_Sequencing_Batch+"',Stock_number='"+Stock_number+"',Stock_Location='"+Stock_Location+"',Soil_batch='"+Soil_batch+"',Host='"+Host+"',Operator='"+Operator+"',GPS_coordinates='"+GPS_coordinates+"',Greenhouse_or_Natural_sites='"+Greenhouse_or_Natural_sites+"',Date_of_isolation='"+Date_of_isolation+"',Isolation_procedure='"+Isolation_procedure+"',Previous_Ids='"+Previous_Ids+"',Compartment='"+Compartment+"',Publication='"+Publication+"',Strain_Derivatives='"+Strain_Derivatives+"',Growth_conditions='"+Growth_conditions+"',Natural_antibiotic_resistance='"+Natural_antibiotic_resistance+"',Colony_morphology='"+Colony_morphology+"' where UniqueID='"+UniqueID+"'";
int i=stmt.executeUpdate(query);
query="select * from mpi";
res=dbconn.getResultSet(query, conn);
while(res.next())
{
lst.add(res.getString("UniqueID"));
lst.add(res.getString("Phylum"));
lst.add(res.getString("Family"));
lst.add(res.getString("Genus"));
lst.add(res.getString("NCBI_Taxnomy_ID"));
lst.add(res.getString("16s_Sanger_seq"));
lst.add(res.getString("Genome_Sequencing_Batch"));
lst.add(res.getString("Stock_number"));
lst.add(res.getString("Stock_Location"));
lst.add(res.getString("Soil_batch"));
lst.add(res.getString("Host"));
lst.add(res.getString("Operator"));
lst.add(res.getString("GPS_coordinates"));
lst.add(res.getString("Greenhouse_or_Natural_sites"));
lst.add(res.getString("Isolation_procedure"));
lst.add(res.getString("Date_of_isolation"));
lst.add(res.getString("Previous_Ids"));
lst.add(res.getString("Compartment"));
lst.add(res.getString("Publication"));
lst.add(res.getString("Strain_Derivatives"));
lst.add(res.getString("Growth_conditions"));
lst.add(res.getString("Natural_antibiotic_resistance"));
lst.add(res.getString("Colony_morphology"));
}
res.close();
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
request.setAttribute("UserData", lst);
RequestDispatcher rd=request.getRequestDispatcher("/displayrecord.jsp");
rd.forward(request, response);
lst.clear();
out.close();
}
}
else {
try
{
dbconn=new DatabaseConnection();
conn=dbconn.setConnection();
stmt=conn.createStatement();
query="select * from mpi";
res=dbconn.getResultSet(query, conn);
String login_name=(String) session.getAttribute("uname");
String login_password=(String) session.getAttribute("upass");
request.setAttribute("UserName", login_name);
request.setAttribute("UserPassword", login_password);
while(res.next())
{
lst.add(res.getString("UniqueID"));
lst.add(res.getString("Phylum"));
lst.add(res.getString("Family"));
lst.add(res.getString("Genus"));
lst.add(res.getString("NCBI_Taxnomy_ID"));
lst.add(res.getString("16s_Sanger_seq"));
lst.add(res.getString("Genome_Sequencing_Batch"));
lst.add(res.getString("Stock_number"));
lst.add(res.getString("Stock_Location"));
lst.add(res.getString("Soil_batch"));
lst.add(res.getString("Host"));
lst.add(res.getString("Operator"));
lst.add(res.getString("GPS_coordinates"));
lst.add(res.getString("Greenhouse_or_Natural_sites"));
lst.add(res.getString("Isolation_procedure"));
lst.add(res.getString("Date_of_isolation"));
lst.add(res.getString("Previous_Ids"));
lst.add(res.getString("Compartment"));
lst.add(res.getString("Publication"));
lst.add(res.getString("Strain_Derivatives"));
lst.add(res.getString("Growth_conditions"));
lst.add(res.getString("Natural_antibiotic_resistance"));
lst.add(res.getString("Colony_morphology"));
}
res.close();
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
request.setAttribute("UserData", lst);
RequestDispatcher rd=request.getRequestDispatcher("/displayrecord.jsp");
rd.forward(request, response);
lst.clear();
out.close();
}
}
}
}
login.jsp如下所示:
<form name="frm" action="DisplayData" method="post" onsubmit="return Validate()">
<table align="center">
<tr>
<td align="left">UserName:</td>
<td><input type="text" name="username" value=""></input></td>
</tr>
<tr>
<td align="left">Password:</td>
<td><input type="password" name="password" value=""></input> </td>
</tr>
</table>
<%
String name = request.getParameter("username");
String password = request.getParameter("password");
session.setAttribute("name",name);
session.setAttribute("pass", password);
%>
<table align="center">
<tr>
<input type="hidden" name="hiddenname" value="login">
<td><input align="middle" type="submit" name="Sign_in" value="Sign_in" onclick="return Validate()"></input></td>
<td><input type="button" value="Signup" onClick="javascript:window.location='Signup.jsp';"></input></td>
</tr>
</table>
</form>
在通过登录页面登录之后,您就可以重定向到servlet了 在servlet中 设置一个属性,类似于标志变量 对于管理员
boolean flagVar=true;
request.setAttribute("flag" , flagVar);
在jsp页面中获取从servlet转发的变量,并使用jquery启用/禁用按钮
希望这有帮助 你正在会话中保存用户名和密码,对吗?@Santino'sony'Corleone是的。。但是当我试图在update或delete方法中获取它时,我得到的值是null。如果我可以保留方法中的值,那么它将很好地工作。哪里有更新/删除方法?我不能在你的更新和删除方法中调用会话…你是否可以在你的代码上放置一个标记或其他东西,指示用户NAM密码的使用。你可以展示你的JSP代码,尤其是表单部分吗?