java 自动登录代码

javaBean的代码

 

package bean;

 

import java.io.Serializable;

 

public class Admin implements Serializable{

     

    /**

     

     */

    private static final long serialVersionUID = 1L;

    private Integer id;

    private String name;

    private String pass;

 

    public Admin() {

        super();

        // TODO Auto-generated constructor stub

    }

 

    public Admin(Integer id, String name, String pass) {

        super();

        this.id = id;

        this.name = name;

        this.pass = pass;

    }

 

    public Integer getId() {

        return id;

    }

 

    public void setId(Integer id) {

        this.id = id;

    }

 

    public String getName() {

        return name;

    }

 

    public void setName(String name) {

        this.name = name;

    }

 

    public String getPass() {

        return pass;

    }

 

    public void setPass(String pass) {

        this.pass = pass;

    }

 

    @Override

    public String toString() {

        return "AdminBean [id=" + id + ", name=" + name + ", pass=" + pass

                + "]";

    }

 

}

dao的基础接口类

 

package dao;

 

import java.util.List;

 

public interface BaseDao<T, PK> {

    /**

     * 插入数据

     */

    boolean insert(T entity);

 

    /**

     * 根据实体删除数据

     */

    boolean delete(T entity);

 

    /**

     * 根据ID删除数据

     */

    boolean deleteById(PK id);

 

    /**

     * 修改数据

     */

    boolean update(T entity);

 

    /**

     * 查询所有数据

     */

    List<T> findAll();

 

    /**

     * 根据ID查询数据

     */

    T findById(PK id);

 

    /**

     * 根据当前页查询数据

     */

    List<T> findNowPageInfo(int nowpage, int pagesize,String sortName,String sortOrder);

 

    /**

     * 返回总页数

     */

    Integer getCountPage(int pagesize);

 

    /**

     * 批量删除

     */

 

    boolean deletes(Object ids[]);

 

}

对admin操作的接口类,继承自basedao

 

package dao;

 

import bean.Admin;

 

public interface AdminDao extends BaseDao {

    Admin checkLogin(String name,String pass);

    Admin checkLogin(String name);

     

}

dao操作实体的实现类

 

package daoImpl;

 

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.List;

 

import util.JdbcUtil;

import bean.Admin;

import dao.AdminDao;

 

public class AdminDaoImpl implements AdminDao {

 

    private Connection conn;

    private PreparedStatement pstmt;

    private ResultSet rs;

 

    @Override

    public boolean insert(Admin entity) {

        return JdbcUtil.upDate("insert into admin (name,pass) values (?,?)",

                new Object[] { entity.getName(), entity.getPass() });

    }

 

    @Override

    public boolean delete(Admin entity) {

        // TODO Auto-generated method stub

        return deleteById(entity.getId());

    }

 

    @Override

    public boolean deleteById(Integer id) {

        // TODO Auto-generated method stub

        return JdbcUtil.upDate("delete from admin where id=?",

                new Object[] { id });

    }

 

    @Override

    public boolean update(Admin entity) {

        // TODO Auto-generated method stub

        return JdbcUtil.upDate(

                "update admin set name=?,pass=? where id=?",

                new Object[] { entity.getName(), entity.getPass(),

                        entity.getId() });

    }

 

    @Override

    public List findAll() {

        // TODO Auto-generated method stub

        return null;

    }

 

    @Override

    public Admin findById(Integer id) {

        // TODO Auto-generated method stub

        return null;

    }

 

    @Override

    public List findNowPageInfo(int nowpage, int pagesize,

            String sortName, String sortOrder) {

        // TODO Auto-generated method stub

        return null;

    }

 

    @Override

    public Integer getCountPage(int pagesize) {

        // TODO Auto-generated method stub

        return null;

    }

 

    @Override

    public boolean deletes(Object[] ids) {

        // TODO Auto-generated method stub

        return false;

    }

 

    @Override

    public Admin checkLogin(String name, String pass) {

        // TODO Auto-generated method stub

        Admin entity = null;

        String sql = "select * from admin where name=? and pass=?";

        conn = JdbcUtil.getConn();

        try {

            pstmt = conn.prepareStatement(sql);

            int index = 1;

            pstmt.setString(index++, name);

            pstmt.setString(index++, pass);

            rs = pstmt.executeQuery();

 

            if (rs.next()) {

                entity = new Admin();

                entity.setId(rs.getInt("id"));

                entity.setName(rs.getString("name"));

                entity.setPass(rs.getString("pass"));

            }

        } catch (SQLException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } finally {

            JdbcUtil.release(rs, pstmt);

        }

        return entity;

    }

 

    @Override

    public Admin checkLogin(String name) {

        Admin entity = null;

        String sql = "select * from admin where name=?";

        conn = JdbcUtil.getConn();

        try {

            pstmt = conn.prepareStatement(sql);

            int index = 1;

            pstmt.setString(index++, name);

            rs = pstmt.executeQuery();

            if (rs.next()) {

                entity = new Admin();

                entity.setId(rs.getInt("id"));

                entity.setName(rs.getString("name"));

                entity.setPass(rs.getString("pass"));

            }

        } catch (SQLException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } finally {

            JdbcUtil.release(rs, pstmt);

        }

        return entity;

    }

 

}

服务器接口类,用来将操作数据库的方法与记录历史的方法或其他的方法分离开,作用是增强代码的可读性以及条理性,

 

package service;

 

import java.util.List;

 

public interface BaseService<T, PK> {

    /**

     * 插入数据

     */

    boolean insert(T entity);

 

    /**

     * 根据实体删除数据

     */

    boolean delete(T entity);

 

    /**

     * 根据ID删除数据

     */

    boolean deleteById(PK id);

 

    /**

     * 修改数据

     */

    boolean update(T entity);

 

    /**

     * 查询所有数据

     */

    List<T> findAll();

 

    /**

     * 根据ID查询数据

     */

    T findById(PK id);

 

    /**

     * 根据当前页查询数据

     */

    List<T> findNowPageInfo(int nowpage, int pagesize,String sortName,String sortOrder);

 

    /**

     * 返回总页数

     */

    Integer getCountPage(int pagesize);

 

    /**

     * 批量删除

     */

 

    boolean deletes(Object ids[]);

 

}

 

package service;

 

import bean.Admin;

 

public interface AdminService extends BaseService {

    Admin checkLogin(String name,String pass);

    Admin checkLogin(String name);

}

实现服务器接口方法的实现类

 

package serviceImpl;

 

import java.util.List;

 

import dao.AdminDao;

import daoImpl.AdminDaoImpl;

 

import bean.Admin;

import service.AdminService;

 

public class AdminServiceImpl implements AdminService {

    AdminDao adminDao = new AdminDaoImpl();

 

    @Override

    public boolean insert(Admin entity) {

        return adminDao.insert(entity);

    }

 

    @Override

    public boolean delete(Admin entity) {

        return false;

    }

 

    @Override

    public boolean deleteById(Integer id) {

        return false;

    }

 

    @Override

    public boolean update(Admin entity) {

        return false;

    }

 

    @Override

    public List findAll() {

        return null;

    }

 

    @Override

    public Admin findById(Integer id) {

        return null;

    }

 

    @Override

    public List findNowPageInfo(int nowpage, int pagesize,

            String sortName, String sortOrder) {

        return null;

    }

 

    @Override

    public Integer getCountPage(int pagesize) {

        return null;

    }

 

    @Override

    public boolean deletes(Object[] ids) {

        return false;

    }

 

    @Override

    public Admin checkLogin(String name, String pass) {

        Admin entity = adminDao.checkLogin(name, pass);

        return entity;

    }

 

    @Override

    public Admin checkLogin(String name) {

        Admin entity = adminDao.checkLogin(name);

        return entity;

    }

 

}

用来将页面传入的信息进行分析处理的服务器类,

package servlet;

 

import java.io.IOException;

import java.net.URLEncoder;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

 

import javax.jms.Message;

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 com.sun.mail.util.BASE64DecoderStream;

import com.sun.mail.util.BASE64EncoderStream;

 

import service.AdminService;

import serviceImpl.AdminServiceImpl;

import sun.misc.BASE64Decoder;

import sun.misc.BASE64Encoder;

import bean.Admin;

 

public class AdminServlet extends HttpServlet {

 

    private AdminService adminService = new AdminServiceImpl();

 

    // 规定时间常量,为一天

    private final int EXPIRES =  60 * 60 * 24;

 

    public void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        // request.setCharacterEncoding("UTF-8");

 

        String oper = request.getParameter("oper");

        if ("adminLogin".equals(oper)) {

            adminLogin(request, response);

        }

        if ("login".equals(oper)) {

            request.getRequestDispatcher("./login.jsp").forward(request,

                    response);

        }

 

    }

 

    private void adminLogin(HttpServletRequest request,

            HttpServletResponse response) throws ServletException, IOException {

         

        //获取表单提交的数据

        String name = request.getParameter("name");

        String pass = request.getParameter("pass");

        String mark = request.getParameter("mark");

        String day = request.getParameter("day");

 

//      System.out.println(name + "====" + pass + "====" + mark

//              + "============" + day);

 

        //根据获取的数据向数据库发送数据请求,

        Admin entity = adminService.checkLogin(name, pass);

 

        //判断查询结果

        if (entity != null) {

            //判断用户是否进行记录密码和自动登陆的操作

            if ("mark".equals(mark)) {

                // 获取当前的时间并加上要保存的时间长度

                long time = System.currentTimeMillis()

                        + (EXPIRES * Integer.valueOf(day)*1000);

 

                // 声明cookie

                Cookie autoCookie = null;

                // 获取所有的cookie的数组

                Cookie cookies[] = request.getCookies();

                // 遍历判断

                for (Cookie cookie : cookies) {

                    // 判断是否已经存在cookie记录

                    if ("autoLogin".equals(cookie.getName())) {

                        // 存在即直接赋值

                        autoCookie = cookie;

                        // 并改变内容

                        String newValue = name

                                + ":"

                                + time

                                + ":"

                                + md5Value(pass + ":" + name + ":" + time

                                        + ":donghongyujava");

                        autoCookie.setValue(newValue);

                    } else {

                        String cookieValue = name

                                + ":"

                                + time

                                + ":"

                                + md5Value(pass + ":" + name + ":" + time

                                        + ":donghongyujava");

                        /*

                         * Control character in cookie value or attribute.

                         * 当存入的数据是中文时,cookie会出现乱码现象 需要进行编码的转换

                         */

                        autoCookie = new Cookie("autoLogin", URLEncoder.encode(

                                cookieValue, "UTF-8"));

                    }

                }

                // 设置cookie的最长的存活时间

                autoCookie.setMaxAge(EXPIRES * Integer.valueOf(day));

                response.addCookie(autoCookie);

            }

            // 将admin存入到session

            request.getSession().setAttribute("admin", entity);

            // 设置成功后就登陆操作

            request.getRequestDispatcher("./sc.jsp").forward(request, response);

        } else {

             

            request.setAttribute("msg", "用户名或密码错误请重试");

            request.getRequestDispatcher("./login.jsp").forward(request,

                    response);

        }

    }

 

    public void doPost(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        this.doGet(request, response);

    }

 

    //加密的操作方法

    public String md5Value(String value) {

        try {

            // 获取md5加密的对象

            MessageDigest digest = MessageDigest.getInstance("md5");

            // 将传入的数据装换为byte字节,在用digest进行转换(加密)成新的字节数组,

            byte result[] = digest.digest(value.getBytes());

            //需要的jdk版本myeclipse2013中自带的com.sun.java.jdk.win32.x86_64_1.6.0.u43

            //jdk1.7.0_25没有相关的包

            BASE64Encoder encoder = new BASE64Encoder();

            // 返回加密后的数据

            return encoder.encode(result);

        } catch (NoSuchAlgorithmException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        return "";

    };

 

}

过滤器类,用来设置请求的编码

package 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.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class EncodingFilter implements Filter {

    private FilterConfig filterConfig;

 

    @Override

    public void destroy() {

        // TODO Auto-generated method stub

    }

 

    @Override

    public void doFilter(ServletRequest req, ServletResponse res,

            FilterChain chain) throws IOException, ServletException {

        HttpServletRequest request = (HttpServletRequest) req;

        HttpServletResponse response = (HttpServletResponse) res;

        // 编码的设置

        request.setCharacterEncoding(filterConfig.getInitParameter("encoding"));

        chain.doFilter(request, response);

    }

 

    @Override

    public void init(FilterConfig filterConfig) throws ServletException {

        // TODO Auto-generated method stub

        this.filterConfig=filterConfig;

    }

 

}

自动登录的过滤类,用来控制用户的自动的登录操作的相关

 

package filter;

 

import java.io.IOException;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

 

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 bean.Admin;

 

import service.AdminService;

import serviceImpl.AdminServiceImpl;

import sun.misc.BASE64Encoder;

 

public class AutoLoginFilter implements Filter {

 

    @Override

    public void destroy() {

        // TODO Auto-generated method stub

    }

 

    @Override

    public void doFilter(ServletRequest req, ServletResponse res,

            FilterChain chain) throws IOException, ServletException {

        // 强制造型为子类型

        HttpServletRequest request = (HttpServletRequest) req;

        HttpServletResponse response = (HttpServletResponse) res;

        // 1.首先判断session

        Object object = request.getSession().getAttribute("admin");

 

        if (object != null) {

            request.getRequestDispatcher("./sc.jsp").forward(request, response);

            return;

        }

 

        // 2.判断cookie中是否存在用户的记录

        Cookie autoCookie = null;

        // 获取所有的cookie进行遍历判断

        Cookie cookies[] = request.getCookies();

        if (cookies != null) {

            for (Cookie cookie : cookies) {

                // 判断是否已经存贮用户记录

                if ("autoLogin".equals(cookie.getName())) {

                    autoCookie = cookie;

                }

            }

 

            // 判断是否存在用户自动登录记录

            if (autoCookie == null) {

                chain.doFilter(request, response);

                return;

            }

 

            // 3.判断cookie的值

            // 获取cookie值

            String value = autoCookie.getValue();

            // 拆分

            String temps[] = value.split(":");

 

            // 判断长度是否是自定义的长度

            if (temps.length != 3) {

                chain.doFilter(request, response);

                return;

            }

            // 获取拆分后的数据

            String name = temps[0];

             

            String time = temps[1];

             

            String service_md5Value = temps[2];

 

            // 4.根据时间判断是否失效

            if (Long.valueOf(time) <= System.currentTimeMillis()) {

                chain.doFilter(request, response);

                return;

            }

 

            // 5.根据用户名查询数据

            AdminService adminService = new AdminServiceImpl();

            // 向数据库发送数据请求

            Admin entity = adminService.checkLogin(name);

            if (entity == null) {

                chain.doFilter(request, response);

                return;

            }

 

            // 6.拼接字符串在进行二次判断,

            String md5Temp = entity.getPass() + ":" + entity.getName() + ":"

                    + time + "donghongyujava";

            if (!(md5Value(md5Temp).equals(service_md5Value))) {

                chain.doFilter(request, response);

                return;

            }

 

            // 7.如果以上的判断都通过,那么就发送成功的转跳连接

            request.getSession().setAttribute("admin", entity);

            request.getRequestDispatcher("./sc.jsp").forward(request, response);

        } else {

            chain.doFilter(request, response);

            return;

        }

    }

 

    @Override

    public void init(FilterConfig arg0) throws ServletException {

        // TODO Auto-generated method stub

 

    }

 

    // 加密的操作函数

    public String md5Value(String value) {

        try {

            // 获取md5加密的对象

            MessageDigest digest = MessageDigest.getInstance("md5");

            // 将传入的数据装换为byte字节,在用digest进行转换(加密)成新的字节数组,

            byte result[] = digest.digest(value.getBytes());

            BASE64Encoder encoder = new BASE64Encoder();

            // 返回加密后的数据

            return encoder.encode(result);

 

        } catch (NoSuchAlgorithmException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        return "";

    };

 

}

web的配置,主要配置的是servlet和filter的配置

<?xml version="1.0" encoding="UTF-8"?>

<?XML:NAMESPACE PREFIX = [default] http://java.sun.com/xml/ns/javaee NS = "http://java.sun.com/xml/ns/javaee" /><web-app id=WebApp_ID xmlns="http://java.sun.com/xml/ns/javaee" version="3.0" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <display-name>jqueryeasyui</display-name>

    <servlet>

        <servlet-name>AdminServlet</servlet-name>

        <servlet-class>servlet.AdminServlet</servlet-class>

    </servlet>

 

    <servlet-mapping>

        <servlet-name>AdminServlet</servlet-name>

        <url-pattern>/AdminOPer.do</url-pattern>

    </servlet-mapping>

 

 

    <filter>

        <filter-name>AutoLoginFilter</filter-name>

        <filter-class>filter.AutoLoginFilter</filter-class>

    </filter>

 

    <filter-mapping>

        <filter-name>AutoLoginFilter</filter-name>

        <url-pattern>/AdminOPer.do</url-pattern>

    </filter-mapping>

 

 

    <filter>

        <filter-name>EncodingFilter</filter-name>

        <filter-class>filter.EncodingFilter</filter-class>

        <!-- 设置传入的参数是UTF-8 -->

        <init-param>

            <param-name>encoding</param-name>

            <param-value>UTF-8</param-value>

        </init-param>

    </filter>

 

    <!-- 设置所有的请求操作都进行这个过滤的操作 -->

    <filter-mapping>

        <filter-name>EncodingFilter</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

 

    <welcome-file-list>

        <welcome-file>index.html</welcome-file>

        <welcome-file>index.htm</welcome-file>

        <welcome-file>index.jsp</welcome-file>

        <welcome-file>default.html</welcome-file>

        <welcome-file>default.htm</welcome-file>

        <welcome-file>default.jsp</welcome-file>

    </welcome-file-list>

</web-app>

用来跳转的jsp代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

 

 

<HTML>

  <HEAD>

    <BASE href="<%=basePath%>">

     

     

     

    <META content=no-cache http-equiv=pragma>

    <META content=no-cache http-equiv=cache-control>

    <META content=0 http-equiv=expires>    

    <META content=keyword1,keyword2,keyword3 http-equiv=keywords>

    <META content="This is my page" http-equiv=description>

    <!--

    <link rel="stylesheet" type="text/css" href="styles.css">

    -->

 

   

   

   

   登录操作

要登陆的表单界面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

 

<%@include file="/common/tag.jsp"%>

<%@include file="/common/jquery.jsp"%>

 

 

 

<html>

<HEAD>

 

 

<META content=no-cache http-equiv=pragma>

<META content=no-cache http-equiv=cache-control>

<META content=0 http-equiv=expires>

<META content=keyword1,keyword2,keyword3 http-equiv=keywords>

<META content="This is my page" http-equiv=description>

<!--

    <link rel="stylesheet" type="text/css" href="styles.css">

    -->

 

 

 

    <DIV>

        <!-- 登录错误时的提示操作 -->

        <B>${requestScope.msg}</B>

        <!-- ${pageContext.request.contextPath}代表当前项目路径下的操作 -->

        <FORM method=post action=${pageContext.request.contextPath}/AdminOPer.do>

            <TABLE border=1><TBODY><TR><TD>用户名:</TD><TD><INPUT type=text name=name></TD></TR><TR><TD>密码:</TD><TD><INPUT type=text name=pass></TD></TR><TR><TD align=right><INPUT value=mark type=checkbox name=mark></TD><TD>下次记住密码</TD></TR><TR><TD colSpan=2><INPUT value=1 type=radio name=day>一天

                        <INPUT value=3 type=radio name=day>三天 <INPUT value=7 CHECKED type=radio name=day>一周</TD></TR><TR><TD colSpan=2 align=middle><INPUT id=submit value=登录 type=submit><INPUT id=reset value=重置 type=reset></TD></TR></TBODY></TABLE>

            <INPUT value=adminLogin type=hidden name=oper>

        </FORM>

    </DIV>

成功登录后的界面jsp代码

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

    String path = request.getContextPath();

    String basePath = request.getScheme() + "://"

            + request.getServerName() + ":" + request.getServerPort()

            + path + "/";

%>

 

 

<HTML>

<HEAD>

<BASE href="<%=basePath%>">

 

 

 

<META content=no-cache http-equiv=pragma>

<META content=no-cache http-equiv=cache-control>

<META content=0 http-equiv=expires>

<META content=keyword1,keyword2,keyword3 http-equiv=keywords>

<META content="This is my page" http-equiv=description>

<!--

    <link rel="stylesheet" type="text/css" href="styles.css">

    -->

 

 

 

 

<!-- 从session域中取出已经存入的用户对象 -->

    欢迎  <B>${sessionScope.admin.name}</B>进入

时间: 2024-08-28 05:49:01

java 自动登录代码的相关文章

java自动生成代码

看到这个标题,如果你以为真的可以完全自动生成,那你就太Naive啦 我这里想介绍的是,利用模板生成我们需要的代码 一.模板 首先来说说模板,常见的java模板有:FreeMarker.Velocity.Jamon.JByte等等. 不熟悉的可以百度下,其实我了解也不多,哈哈. 二.原理 其实就是利用模板,填充数据,得到我们需要的代码.即:输出=模板+数据 三.实例 实例利用FreeMarker来做的,所以你需要先导入freemarker的jar包 假设我们需要自动生成一个java bean,那么

[Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍

目录(?)[+] 前三篇文章介绍了安装过程和通过Selenium实现访问Firefox浏览器并自动搜索"Eastmount"关键字及截图的功能.而这篇文章主要简单介绍如何实现自动登录163邮箱,同时继续介绍Selenium+Python官网Locating Elements部分内容.        希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~        [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)        

java代码实现自动登录功能

通常我们登录某网站,会有选择保存几天,或者是几个星期不用登录,之后输入该网站地址无需登录直接进入主页面,那么这就叫做自动登录,怎么实现呢,下面我以一个小例子来演示一下 登录页面:login.jsp Html代码   <SPAN style="FONT-SIZE: medium"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"

[原创]java WEB学习笔记29:Cookie Demo 之自动登录

1. 自动登录 的需求 ① 不需要填写用户名和密码等信息,可以自动登录到系统 ②  login.jsp  hello.jsp login.jsp 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01

Java Web 自动登录

一.客户端选择自动登录复选框,LoginServlet得到数据后,判断是否选择了复选框,若成功选中则创建cookies对象,并添加到响应头中 1 //若用户选择自动登录,则生成cookies保存必要信息 2 if("auto".equals(autoLogin)){ 3 Cookie cookie = new Cookie("username", username); 4 Cookie cookie2 = new Cookie("password"

Java进阶之 如何自动生成代码

一.前言:为什么要有代码的自动生成? 对于这个问题 最简洁直接的回答就是:代替手动编写代码.提高工作效率. 什么样的场景和代码适合用自动生成这种方式呢? 做过Java服务端的朋友一定都知道代码中我们需要编写与数据库表映射的Java实体类(Entity).需要编写与实体对应的DAO类(XxDao.java类中有包含对应实体的增.删.改.查基本操作).在这些实体类中通常都是一些属性方法以及属性对应的get/set方法.而实体对应的DAO类中也基本会包含有增.删.改.查这些与数据库操作相关的方法.在编

Eclipse 保留Java文件时自动格式化代码和优化Import

Eclipse 保存Java文件时自动格式化代码和优化Import Eclipse中format代码的快捷方式是ctrl+shift+F,如果大家想保存 java文件的时候 自动就格式化代码+消除不必要的import 包,可以简单的做以下配置就可以实现.

网页自动登录,自动填充表单代码

实现自动登录某网站,并且登录完成后跳转到指定的页面.然后进行表单的自动填充表单提交 .类型于小型的发帖机 哈哈 (看官在看下面代码的时候,把记得把下面的链接改下) public partial class Form1 : Form { public Form1() { InitializeComponent(); webBrowser1.Navigate("www.tiantianit.com"); } private void webBrowser1_DocumentComplete

Android开发之自动登录功能的实现

在我们平时使用的手机应用都可以实现只需要登陆一次账号后,第二次进入应用直接跳转到效果界面的效果,还有QQ的登陆框是如何记忆我们的隐身登陆,保存账号选项的呢,这些都是通过使用SharedPreferences共享参数效果实现的,而无须使用数据库来存储.以下我们直接看详细代码分析. package com.example.account.login; import java.util.HashMap; import java.util.Map; import com.android.dao.MySQ