我想要这个具有多个用户的登录页面,例如,如果管理员已登录,我需要转到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
本文介绍了我想要这个具有多个用户的登录页面,例如,如果管理员已登录,我需要转到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();
}
}
解决方案
你应该有角色每个用户在表中定义的code>(如管理员或用户)。
当用户登录系统时,您还将获取角色
该用户。
如果角色
是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 haveRoles
(like Admin or User) defined in the Table for each user.
When, user logins into the system, you will also fetchRole
of that user.
If theRole
is "admin", then redirect toadminhome.java
, else ifRole
is "user", then redirect touser.java
.
这篇关于我想要这个具有多个用户的登录页面,例如,如果管理员已登录,我需要转到adminhome.java,如果是用户则转到user.java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文