假设你的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"%>然后在页面中具体使用。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)