如何用JSP实现普通用户和管理员登录跳转到不同的页面

如何用JSP实现普通用户和管理员登录跳转到不同的页面,第1张

select元素的每一个option项都有一个值。

假设你的select是这样写的

普通用户

管理员

在servlet中使用

String type=request.getParameter("type")

if("1".equals(type)){

//跳转到普通用户的页面

}else{

//跳转到管理员的页面

}

在jsp中可以通过角色控制表跳转不同的页面。

参考代码如下:

package myservlet

import mybean.*

import java.io.*

import javax.servlet.*

import javax.servlet.http.*

import java.sql.*

public class IsLogin extends HttpServlet{

public void init(ServletConfig config) throws ServletException{

super.init(config)

}

public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

//接收参数

String user=request.getParameter("user")

String password=request.getParameter("password")

String actor=request.getParameter("actor")

//加载驱动,建立连接

Connection con

Statement sql

ResultSet rs

try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")

}catch(Exception e){

System.out.print(e)

}

try{

String uri="jdbc:sqlserver://127.0.0.1:1433DatabaseName=student"

con=DriverManager.getConnection(uri,"sa","940712")//数据库的登录名 sa 940712

sql=con.createStatement()

//通过if语句判断角色,将其账号密码与数据库的userInf内的信息进行比对(角色的账号密码统一存储在UserInf表中)

//若正确,转发至角色对应的登录成功界面;若没有,统一转发至出错界面,提供返回链接供重新登录

if(actor=="student"){

rs=sql.executeQuery("select userIs,password from userInf where actor='student'")

while(rs.next()){

if(user==rs.getString(1) &&password==rs.getString(2)){

RequestDispatcher dispatcher=request.getRequestDispatcher("loginSuccessS.jsp")

dispatcher.forward(request,response)

}

}

RequestDispatcher dispatcher=request.getRequestDispatcher("loginError.jsp")

dispatcher.forward(request,response)

}

//普通用户角色控制

else if(actor=="teacher"){

rs=sql.executeQuery("select userIs,password from userInf where actor='teacher'")

while(rs.next()){

if(user==rs.getString(1) &&password==rs.getString(2)){

RequestDispatcher dispatcher=request.getRequestDispatcher("loginSuccessT.jsp")

dispatcher.forward(request,response)

}

}

RequestDispatcher dispatcher=request.getRequestDispatcher("loginError.jsp")

dispatcher.forward(request,response)

}

//管理员角色控制

else if(actor=="admin"){

rs=sql.executeQuery("select userIs,password from userInf where actor='admin'")

while(rs.next()){

if(user==rs.getString(1) &&password==rs.getString(2)){

RequestDispatcher dispatcher=request.getRequestDispatcher("loginSuccessA.jsp")

dispatcher.forward(request,response)

}

}

RequestDispatcher dispatcher=request.getRequestDispatcher("loginError.jsp")

dispatcher.forward(request,response)

}

}catch(SQLException e){

//System.out.print("您的账号或密码错误,请返回重新输入")

RequestDispatcher dispatcher=request.getRequestDispatcher("loginError.jsp")

dispatcher.forward(request,response)

}

}

}

我来分析下,首先你直接跳转到 login.jsp 进行登录

点击登录 到后台action或servlet

然后是跳转到login.jsp 把登录的页面内容换成登录成功的

我觉得可以这样

<logic:Empty name="后台参数">

<div align="right">//你的登录div

...

</logic:Empty>

<logic:notEmpty name="后台参数">

登录成功相关样式内容

</logic:notEmpty>

原理是这样的

1、用户进入到登录页面

<logic:Empty>判断到后台参数为空(直接跳转到页面没有在后台封装参数,当然为空了)

所以页面会显示<logic:Empty>里的内容

点击登录 跳转到后台处理 封装一个后台参数 request。setAttribute("后台参数","Status")

当跳转会该登录页面时 发现 后台参数有值

所以<logic:Empty>里的内容不会显示 而<logic:notEmpty>的内容显示

效果实现!

<logic: 是struts标签 只要你的项目添加了Struts支持 都可以在jsp页面头部导入<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>然后在页面中具体使用。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/465430.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-05
下一篇2023-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存