javaWeb实现自动登录功能

1:首先在eclipse中建立一个Web工程

2:创建一个登陆界面(login.jsp)和一个登录成功回显的页面(success.jsp)

3:创建一个Servlet用于接受前台数据和负责数据的验证,再创建一个Filter用于拦截请求,判断是否进行自动登录。

4 : 记住在Web.xml中配置Filter,否则无法发挥作用。

5:如图所示

     

 

6 部分代码展示

loginServlet代码展示:

package cm.itcast.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //设置字符编码
        request.setCharacterEncoding("utf-8");
        //收集数据
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        HttpSession session = request.getSession();
        // 进行验证
        if ("username".equals(username) && "password".equals(password))
           {
               String autoLogin = request.getParameter("autoLogin");
               String rememberName = request.getParameter("rememberName");
               //是否选择自动登录    
               if( autoLogin!=null)
                   {
                    //如果选择自动登录,存储到cookie中
                    Cookie cookies_username = new Cookie("username", username); 
                    Cookie cookies_password = new Cookie("password", password);
                    //设置持久化时间
                    cookies_username.setMaxAge(60*60);
                    cookies_password.setMaxAge(60*60);
                    //设置cookie携带路径
                    cookies_password.setPath("/");
                    cookies_password.setPath("/");
                    //发送cookie到浏览器,也就是 回写cookie
                    response.addCookie(cookies_username);
                    response.addCookie(cookies_password);
                    session.setAttribute("username", username);
                    session.setAttribute("password", password);
                   }
                   if(rememberName!=null)
                     {
                       session.setAttribute("username", username);
                       session.setAttribute("password", password);
                     }
                    //验证通过,跳转到登录后的页面
                    response.sendRedirect(request.getContextPath()+"/success.jsp");
                    return;
             }else
               {
               //验证没有通过,再次跳转到登录页面,进行登录
               request.getRequestDispatcher("/login.jsp").forward(request, response);
                }
        }
}
 

7:Filter代码展示

    

package cm.itcast.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * 实现自动登录
 */
public class loginFilter implements Filter {

    // 初始化执行方法
    public void init(FilterConfig arg0) throws ServletException {
        System.out.println("拦截到了");
    }

    // 拦截方法
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {

        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse rep = (HttpServletResponse) response;
        HttpSession session = req.getSession();

        String cookie_username = null;
        String cookie_password = null;

        if (req.getCookies() != null){
            Cookie[] cookie = req.getCookies();
            for (Cookie cookies : cookie) 
             {
                if ("username".equals(cookies.getName()))
                    cookie_username = cookies.getValue();

                if ("password".equals(cookies.getName()))
                    cookie_password = cookies.getValue();
             }
            if (cookie_username != null && cookie_password != null) 
              {
                if (cookie_username.equals("username") && cookie_password.equals("password")) 
                   {
                    session.setAttribute("username", cookie_username);
                    session.setAttribute("password", cookie_password);
                    req.getRequestDispatcher("/success.jsp").forward(req, rep);
                  }
            }else
               {
                req.getRequestDispatcher("/LoginServlet").forward(req, rep);
               }
            
        }
        chain.doFilter(request, response);
    }

    // 销毁执行方法
    public void destroy() {
        System.out.println("拦截结束了");
    }

}
 

8 login.jsp代展示

      

<form action="${pageContext.request.contextPath}/LoginServlet"  method="post">
        <center>
        <table border="1" width="30%">
            <tr>
                <td>帐号</td>
                <td><input type="text" name="username" value="${username}"></td>
            </tr>

            <tr>
                <td>密码</td>
                <td><input type="password" name="password" value="${password}"></td>
            </tr>
            
            <tr>
                 <td colspan="2">
                    记住用户名
                    <input type="checkbox" name="rememberName" value="rememberName">
    
                    自动登录 
                    <input type="checkbox" name="autoLogin" value="autoLogin">
                  </td>
            </tr>

            <tr>
                <td><input type="submit" value="提交"></td>
                <td><input type="reset" value="重置"></td>
            <tr>
        </table>
        </center>
    </form>

9: success.jsp代码展示

     <h1>登录成功</h1>
      <h1>用户名 :${sessionScope.username}</h1>

10:自己也是新手,参考别人的一些代码,最后终于实现了,这不是最新的技术,仅供参考,欢迎大家留言讨论。

 

 

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 要实现JavaWeb登录和注册功能,可以按照以下步骤进行: 1. 创建数据库表格,用于存储用户注册的信息,如用户名、密码等。 2. 在JavaWeb项目中创建登录和注册页面,可以使用HTML和CSS进行页面设计。 3. 在JavaWeb项目中创建一个Servlet,用于处理用户的登录和注册请求。可以使用JDBC连接数据库,从而实现对用户注册信息的插入和查询操作。 4. 在Servlet中处理用户登录和注册请求时,需要对用户输入的用户名和密码进行验证,验证成功后再执行登录或注册操作。 5. 在登录成功后,可以将用户信息保存在Session中,方便在其他页面进行身份验证。 6. 在JavaWeb项目中,还可以使用Filter实现用户身份验证、权限控制等功能。 通过以上步骤的实现,就可以完成JavaWeb登录和注册功能。 ### 回答2: 要实现JavaWeb登录和注册功能,可以按照以下步骤进行: 1. 创建数据库表格:在数据库中创建一个用户表,包含字段如:用户ID、用户名、密码等。 2. 创建JavaBean类:根据用户表的字段,创建一个对应的JavaBean类,用于封装用户的信息。 3. 编写登录页面:创建一个登录页面,包含用户名和密码的输入框,以及一个登录按钮。 4. 编写后台处理逻辑:在后台获取用户输入的用户名和密码,并与数据库中的数据进行比对,判断用户是否存在。如果存在,则登录成功,可以跳转到其他页面;如果不存在,则登录失败,可以返回相应的错误提示。 5. 创建注册页面:创建一个注册页面,包含用户名、密码、确认密码等输入框,以及一个注册按钮。 6. 编写注册逻辑:在后台获取用户输入的注册信息,并进行相应的验证,如检查用户名是否已存在、密码是否一致等。如果验证通过,则将用户信息插入数据库中,并返回注册成功提示;如果验证不通过,则返回相应的错误提示。 7. 设置用户管理:通过在session中存储用户登录状态信息,可以实现登录状态的保持,以及在其他页面中获取当前登录的用户信息。 8. 添加其他功能:根据实际需求,可以为登录和注册功能添加其他附加功能,如记住密码功能、用户信息修改功能等。 以上是简要的实现JavaWeb登录和注册功能的步骤,可以根据具体需求进行相应的补充和改进。 ### 回答3: 要实现JavaWeb登录和注册功能,首先需要创建一个Web应用程序。可以使用Java的Servlet和JSP技术来实现。 1. 注册功能: - 创建一个RegisterServlet来处理注册请求。在这个Servlet中,我们可以通过接收表单提交的数据来获取用户输入的注册信息,例如用户名、密码和邮箱等。 - 在RegisterServlet中,可以进行一些验证,如检查用户名是否已经存在,检查密码是否符合要求等。 - 如果注册信息合法且通过验证,可以将用户信息保存到数据库中,可以使用JDBC或其他ORM框架处理数据库操作。 2. 登录功能: - 创建一个LoginServlet来处理登录请求。在这个Servlet中,我们可以接收用户提交的用户名和密码。 - 在LoginServlet中,可以根据用户输入的用户名去数据库中查找对应的用户记录,并将用户提交的密码与数据库中的密码进行比对。 - 如果比对成功,表示用户输入的用户名和密码正确,可以将用户登录状态保存在Session中,以便于在其他页面进行相关操作。 - 如果比对失败,可以返回错误信息给用户,或者重定向到登录页面。 除了以上的基本功能,还可以进行一些扩展和优化,如添加验证码功能、密码加密、记住密码和自动登录等。 最后,需要在Web页面中设计好注册和登录的界面,包括表单的布局、样式和交互效果等,使用HTML、CSS和JavaScript来实现。同时,确保后端与前端的数据传输和验证安全性,防止恶意攻击或非法操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值