MVC用户认证web应用部分三

这样的话,我们只要在checkservlet里面对SQLBean声明一个实例就可以完成一些列的操作啦!
好了,如果我们的用户是合法的用户,那么我们就需要将这个用户的信息作为一个对象存储起来,具体的所就是通过Request里的getSession()方法获取与客户端请求相联系的会话即session,在通过session中的setAttribute()方法将对象的值赋给该session变量。并通过Respone里的sendRedirect()方法进行重新定向,我们这里把index.jsp作为了重新定向的Location。
这样的话,我们在回头去看index.jsp就明白为什么要从session里面取值是否为空来判断用户是否合法了。

我们设置怎么一个用于存储用户对象,并通过对它的判断来得知用户的合法性,具体的是非空就合法,空就非法。刚才的SQLBean就用到了。这个很简单我们定义一个名为Userbean.java的Bean
----------------------------------------------------------
UserBean.java
----------------------------------------------------------
package com.teach.bean;
/*
用户Bean
*/
public class UserBean
{
    private String _userId;
 private String _userName;
    private String _password;
    private String _trueName;
    private String _userType;
   
    public UserBean(){}

    public void setUserId(String userId)
    {
        _userId = userId;
    }
   
    public void setUserName(String userName)
    {
        _userName = userName;
    }

    public void setPassword(String password)
    {
        _password = password;
    }

    public void setTrueName(String trueName)
    {
        _trueName = trueName;
    }
   
    public void setUserType(String userType)
    {
        _userType = userType;
    }
   
    public String getUserId()
    {
        return _userId;
    }
   
    public String getUserName()
    {
        return _userName;
    }

    public String getPassword()
    {
        return _password;
    }
   
    public String getTrueName()
    {
        return _trueName;
    }
   
    public String getUserType()
    {
        return _userType;
    }
}
----------------------------------------------------------
呵呵,这个Bean似乎方法有点多,有人说我们只需要用户名和密码就可以了。对!这个是为了以后我们考虑到数据的全面性。比如用户的真实姓名,用户的ID等等。


我们似乎很满意自己的思路,可是问题是,我们是用什么方法完成页面转发的呢?
很多人知道,在MVC的框架模式中,Servlet通常作为整个web应用的控制器来使用。大部分的请求信息都是递交给Servlet来处理,Servlet再根据不同的请求转发到不同的JSP。

我们回头看一下login.jsp。看这个代码片断<form name="form1" method="post"
我们的请求是以post的方式传递出去的。所以我们应该有个dopost的方法来处理这些请求。于是我们利用ControlServlet来进行对请求信息的处理。
----------------------------------------------------------
ControlServlet.java
----------------------------------------------------------
package com.teach.servlet;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
//import com.teach.bean.UserBean;

public final class ControlServlet extends HttpServlet {
 
 private static final long serialVersionUID = 1L; //为保持版本兼容性附给对象的唯一标识符
 
 protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException
        {
            String action = request.getParameter("action");
            String jspPage = "index.jsp";
           
            if ((action == null) || (action.length() < 1))
            {
                action = "default";
            }

            if ("default".equals(action))
            {
                jspPage = "index.jsp";
            }
            else if ("out".equals(action))
            {
                request.getSession().invalidate();
                jspPage = "login.jsp";
            }
         
            dispatch(jspPage, request, response);
        }

        protected void dispatch(String jsp, HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException
        {
            if (jsp != null)
            {
                RequestDispatcher rd = request.getRequestDispatcher(jsp);
                rd.forward(request, response);
            }
        }

        protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException
        {
            doPost(request, response);
        }

}
----------------------------------------------------------
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值