我想要这个具有多个用户的登录页面,例如,如果管理员已登录,我需要转到adminhome.java,如果是用户则转到user.java [英] I want this login page with multiple user, such as if the admin is logged in, i need to go to adminhome.java and if it's a user go to user.java

查看:105
本文介绍了我想要这个具有多个用户的登录页面,例如,如果管理员已登录,我需要转到adminhome.java,如果是用户则转到user.java的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

index.html

< form action =servlet1method =post> 
名称:< input type =textname =username/>< br />< br />
密码:< input type =passwordname =userpass/>< br />< br />
< input type =submitvalue =login/>
< / form>





FirstServlet.java

 import java.io.IOException; 
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


公共类FirstServlet扩展HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse response)
抛出ServletException,IOException {

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

String n = request.getParameter(username);
String p = request.getParameter(userpass);

if(LoginDao.validate(n,p)){
RequestDispatcher rd = request.getRequestDispatcher(servlet2);
rd.forward(请求,回复);
}
else {
out.print(抱歉用户名或密码错误);
RequestDispatcher rd = request.getRequestDispatcher(index.html);
rd.include(请求,回复);
}

out.close();
}
}
LoginDao.java
import java.sql。*;

public class LoginDao {
public static boolean validate(String name,String pass){
boolean status = false;
try {
Class.forName(oracle.jdbc.driver.OracleDriver);
Connection con = DriverManager.getConnection(
jdbc:oracle:thin:@localhost:1521:xe,system,oracle);

PreparedStatement ps = con.prepareStatement(
select * from userreg where name =?and pass =?);
ps.setString(1,name);
ps.setString(2,pass);

ResultSet rs = ps.executeQuery();
status = rs.next();

} catch(例外e){System.out.println(e);}
返回状态;
}
}
WelcomeServlet.java
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

公共类WelcomeServlet扩展HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {

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

String n = request.getParameter(username);
out.print(欢迎+ n);

out.close();
}

}

解决方案

你应该有角色(如管理员或用户)。

当用户登录系统时,您还将获取角色该用户。



如果角色是admin,则重定向到 adminhome.java ,否则如果角色是user,则重定向到 user.java

index.html

<form action="servlet1" method="post">  
Name:<input type="text" name="username"/><br /><br />  
Password:<input type="password" name="userpass"/><br /><br />  
<input type="submit" value="login"/>  
</form>  



FirstServlet.java

import java.io.IOException;  
import java.io.PrintWriter;  
  
import javax.servlet.RequestDispatcher;  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
  
public class FirstServlet extends HttpServlet {  
public void doPost(HttpServletRequest request, HttpServletResponse response)  
        throws ServletException, IOException {  
  
    response.setContentType("text/html");  
    PrintWriter out = response.getWriter();  
          
    String n=request.getParameter("username");  
    String p=request.getParameter("userpass");  
          
    if(LoginDao.validate(n, p)){  
        RequestDispatcher rd=request.getRequestDispatcher("servlet2");  
        rd.forward(request,response);  
    }  
    else{  
        out.print("Sorry username or password error");  
        RequestDispatcher rd=request.getRequestDispatcher("index.html");  
        rd.include(request,response);  
    }  
          
    out.close();  
    }  
}  
LoginDao.java
import java.sql.*;  
  
public class LoginDao {  
public static boolean validate(String name,String pass){  
boolean status=false;  
try{  
Class.forName("oracle.jdbc.driver.OracleDriver");  
Connection con=DriverManager.getConnection(  
"jdbc:oracle:thin:@localhost:1521:xe","system","oracle");  
      
PreparedStatement ps=con.prepareStatement(  
"select * from userreg where name=? and pass=?");  
ps.setString(1,name);  
ps.setString(2,pass);  
      
ResultSet rs=ps.executeQuery();  
status=rs.next();  
          
}catch(Exception e){System.out.println(e);}  
return status;  
}  
}  
WelcomeServlet.java
import java.io.IOException;  
import java.io.PrintWriter;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
public class WelcomeServlet extends HttpServlet {  
public void doPost(HttpServletRequest request, HttpServletResponse response)  
    throws ServletException, IOException {  
  
    response.setContentType("text/html");  
    PrintWriter out = response.getWriter();  
          
    String n=request.getParameter("username");  
    out.print("Welcome "+n);  
          
    out.close();  
    }  
  
}

解决方案

You should have Roles (like Admin or User) defined in the Table for each user.
When, user logins into the system, you will also fetch Role of that user.

If the Role is "admin", then redirect to adminhome.java, else if Role is "user", then redirect to user.java.


这篇关于我想要这个具有多个用户的登录页面,例如,如果管理员已登录,我需要转到adminhome.java,如果是用户则转到user.java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆