javaweb用户的自动登录模块的实现

  1. javaBean的代码  
  2.   
  3. package bean;  
  4.   
  5. import java.io.Serializable;  
  6.   
  7. public class Admin implements Serializable{  
  8.       
  9.     /** 
  10.      *  
  11.      */  
  12.     private static final long serialVersionUID = 1L;  
  13.     private Integer id;  
  14.     private String name;  
  15.     private String pass;  
  16.   
  17.     public Admin() {  
  18.         super();  
  19.         // TODO Auto-generated constructor stub  
  20.     }  
  21.   
  22.     public Admin(Integer id, String name, String pass) {  
  23.         super();  
  24.         this.id = id;  
  25.         this.name = name;  
  26.         this.pass = pass;  
  27.     }  
  28.   
  29.     public Integer getId() {  
  30.         return id;  
  31.     }  
  32.   
  33.     public void setId(Integer id) {  
  34.         this.id = id;  
  35.     }  
  36.   
  37.     public String getName() {  
  38.         return name;  
  39.     }  
  40.   
  41.     public void setName(String name) {  
  42.         this.name = name;  
  43.     }  
  44.   
  45.     public String getPass() {  
  46.         return pass;  
  47.     }  
  48.   
  49.     public void setPass(String pass) {  
  50.         this.pass = pass;  
  51.     }  
  52.   
  53.     @Override  
  54.     public String toString() {  
  55.         return "AdminBean [id=" + id + ", name=" + name + ", pass=" + pass  
  56.                 + "]";  
  57.     }  
  58.   
  59. }  

  1. dao的基础接口类  
  2.   
  3. package dao;  
  4.   
  5. import java.util.List;  
  6.   
  7. public interface BaseDao<T, PK> {  
  8.     /** 
  9.      * 插入数据 
  10.      */  
  11.     boolean insert(T entity);  
  12.   
  13.     /** 
  14.      * 根据实体删除数据 
  15.      */  
  16.     boolean delete(T entity);  
  17.   
  18.     /** 
  19.      * 根据ID删除数据 
  20.      */  
  21.     boolean deleteById(PK id);  
  22.   
  23.     /** 
  24.      * 修改数据 
  25.      */  
  26.     boolean update(T entity);  
  27.   
  28.     /** 
  29.      * 查询所有数据 
  30.      */  
  31.     List<T> findAll();  
  32.   
  33.     /** 
  34.      * 根据ID查询数据 
  35.      */  
  36.     T findById(PK id);  
  37.   
  38.     /** 
  39.      * 根据当前页查询数据 
  40.      */  
  41.     List<T> findNowPageInfo(int nowpage, int pagesize,String sortName,String sortOrder);  
  42.   
  43.     /** 
  44.      * 返回总页数 
  45.      */  
  46.     Integer getCountPage(int pagesize);  
  47.   
  48.     /** 
  49.      * 批量删除 
  50.      */  
  51.   
  52.     boolean deletes(Object ids[]);  
  53.   
  54. }  

  1. 对admin操作的接口类,继承自basedao  
  2.   
  3. package dao;  
  4.   
  5. import bean.Admin;  
  6.   
  7. public interface AdminDao extends BaseDao<Admin, Integer> {  
  8.     Admin checkLogin(String name,String pass);  
  9.     Admin checkLogin(String name);  
  10.       
  11. }  

  1. dao操作实体的实现类  
  2.   
  3. package daoImpl;  
  4.   
  5. import java.sql.Connection;  
  6. import java.sql.PreparedStatement;  
  7. import java.sql.ResultSet;  
  8. import java.sql.SQLException;  
  9. import java.util.List;  
  10.   
  11. import util.JdbcUtil;  
  12. import bean.Admin;  
  13. import dao.AdminDao;  
  14.   
  15. public class AdminDaoImpl implements AdminDao {  
  16.   
  17.     private Connection conn;  
  18.     private PreparedStatement pstmt;  
  19.     private ResultSet rs;  
  20.   
  21.     @Override  
  22.     public boolean insert(Admin entity) {  
  23.         return JdbcUtil.upDate("insert into admin (name,pass) values (?,?)",  
  24.                 new Object[] { entity.getName(), entity.getPass() });  
  25.     }  
  26.   
  27.     @Override  
  28.     public boolean delete(Admin entity) {  
  29.         // TODO Auto-generated method stub  
  30.         return deleteById(entity.getId());  
  31.     }  
  32.   
  33.     @Override  
  34.     public boolean deleteById(Integer id) {  
  35.         // TODO Auto-generated method stub  
  36.         return JdbcUtil.upDate("delete from admin where id=?",  
  37.                 new Object[] { id });  
  38.     }  
  39.   
  40.     @Override  
  41.     public boolean update(Admin entity) {  
  42.         // TODO Auto-generated method stub  
  43.         return JdbcUtil.upDate(  
  44.                 "update admin set name=?,pass=? where id=?",  
  45.                 new Object[] { entity.getName(), entity.getPass(),  
  46.                         entity.getId() });  
  47.     }  
  48.   
  49.     @Override  
  50.     public List<Admin> findAll() {  
  51.         // TODO Auto-generated method stub  
  52.         return null;  
  53.     }  
  54.   
  55.     @Override  
  56.     public Admin findById(Integer id) {  
  57.         // TODO Auto-generated method stub  
  58.         return null;  
  59.     }  
  60.   
  61.     @Override  
  62.     public List<Admin> findNowPageInfo(int nowpage, int pagesize,  
  63.             String sortName, String sortOrder) {  
  64.         // TODO Auto-generated method stub  
  65.         return null;  
  66.     }  
  67.   
  68.     @Override  
  69.     public Integer getCountPage(int pagesize) {  
  70.         // TODO Auto-generated method stub  
  71.         return null;  
  72.     }  
  73.   
  74.     @Override  
  75.     public boolean deletes(Object[] ids) {  
  76.         // TODO Auto-generated method stub  
  77.         return false;  
  78.     }  
  79.   
  80.     @Override  
  81.     public Admin checkLogin(String name, String pass) {  
  82.         // TODO Auto-generated method stub  
  83.         Admin entity = null;  
  84.         String sql = "select * from admin where name=? and pass=?";  
  85.         conn = JdbcUtil.getConn();  
  86.         try {  
  87.             pstmt = conn.prepareStatement(sql);  
  88.             int index = 1;  
  89.             pstmt.setString(index++, name);  
  90.             pstmt.setString(index++, pass);  
  91.             rs = pstmt.executeQuery();  
  92.   
  93.             if (rs.next()) {  
  94.                 entity = new Admin();  
  95.                 entity.setId(rs.getInt("id"));  
  96.                 entity.setName(rs.getString("name"));  
  97.                 entity.setPass(rs.getString("pass"));  
  98.             }  
  99.         } catch (SQLException e) {  
  100.             // TODO Auto-generated catch block  
  101.             e.printStackTrace();  
  102.         } finally {  
  103.             JdbcUtil.release(rs, pstmt);  
  104.         }  
  105.         return entity;  
  106.     }  
  107.   
  108.     @Override  
  109.     public Admin checkLogin(String name) {  
  110.         Admin entity = null;  
  111.         String sql = "select * from admin where name=?";  
  112.         conn = JdbcUtil.getConn();  
  113.         try {  
  114.             pstmt = conn.prepareStatement(sql);  
  115.             int index = 1;  
  116.             pstmt.setString(index++, name);  
  117.             rs = pstmt.executeQuery();  
  118.             if (rs.next()) {  
  119.                 entity = new Admin();  
  120.                 entity.setId(rs.getInt("id"));  
  121.                 entity.setName(rs.getString("name"));  
  122.                 entity.setPass(rs.getString("pass"));  
  123.             }  
  124.         } catch (SQLException e) {  
  125.             // TODO Auto-generated catch block  
  126.             e.printStackTrace();  
  127.         } finally {  
  128.             JdbcUtil.release(rs, pstmt);  
  129.         }  
  130.         return entity;  
  131.     }  
  132.   
  133. }  

  1. 服务器接口类,用来将操作数据库的方法与记录历史的方法或其他的方法分离开,作用是增强代码的可读性以及条理性,  
  2.   
  3. package service;  
  4.   
  5. import java.util.List;  
  6.   
  7. public interface BaseService<T, PK> {  
  8.     /** 
  9.      * 插入数据 
  10.      */  
  11.     boolean insert(T entity);  
  12.   
  13.     /** 
  14.      * 根据实体删除数据 
  15.      */  
  16.     boolean delete(T entity);  
  17.   
  18.     /** 
  19.      * 根据ID删除数据 
  20.      */  
  21.     boolean deleteById(PK id);  
  22.   
  23.     /** 
  24.      * 修改数据 
  25.      */  
  26.     boolean update(T entity);  
  27.   
  28.     /** 
  29.      * 查询所有数据 
  30.      */  
  31.     List<T> findAll();  
  32.   
  33.     /** 
  34.      * 根据ID查询数据 
  35.      */  
  36.     T findById(PK id);  
  37.   
  38.     /** 
  39.      * 根据当前页查询数据 
  40.      */  
  41.     List<T> findNowPageInfo(int nowpage, int pagesize,String sortName,String sortOrder);  
  42.   
  43.     /** 
  44.      * 返回总页数 
  45.      */  
  46.     Integer getCountPage(int pagesize);  
  47.   
  48.     /** 
  49.      * 批量删除 
  50.      */  
  51.   
  52.     boolean deletes(Object ids[]);  
  53.   
  54. }  
  55.   
  56. package service;  
  57.   
  58. import bean.Admin;  
  59.   
  60. public interface AdminService extends BaseService<Admin, Integer> {  
  61.     Admin checkLogin(String name,String pass);  
  62.     Admin checkLogin(String name);  
  63. }  

  1. 实现服务器接口方法的实现类  
  2.   
  3. package serviceImpl;  
  4.   
  5. import java.util.List;  
  6.   
  7. import dao.AdminDao;  
  8. import daoImpl.AdminDaoImpl;  
  9.   
  10. import bean.Admin;  
  11. import service.AdminService;  
  12.   
  13. public class AdminServiceImpl implements AdminService {  
  14.     AdminDao adminDao = new AdminDaoImpl();  
  15.   
  16.     @Override  
  17.     public boolean insert(Admin entity) {  
  18.         return adminDao.insert(entity);  
  19.     }  
  20.   
  21.     @Override  
  22.     public boolean delete(Admin entity) {  
  23.         return false;  
  24.     }  
  25.   
  26.     @Override  
  27.     public boolean deleteById(Integer id) {  
  28.         return false;  
  29.     }  
  30.   
  31.     @Override  
  32.     public boolean update(Admin entity) {  
  33.         return false;  
  34.     }  
  35.   
  36.     @Override  
  37.     public List<Admin> findAll() {  
  38.         return null;  
  39.     }  
  40.   
  41.     @Override  
  42.     public Admin findById(Integer id) {  
  43.         return null;  
  44.     }  
  45.   
  46.     @Override  
  47.     public List<Admin> findNowPageInfo(int nowpage, int pagesize,  
  48.             String sortName, String sortOrder) {  
  49.         return null;  
  50.     }  
  51.   
  52.     @Override  
  53.     public Integer getCountPage(int pagesize) {  
  54.         return null;  
  55.     }  
  56.   
  57.     @Override  
  58.     public boolean deletes(Object[] ids) {  
  59.         return false;  
  60.     }  
  61.   
  62.     @Override  
  63.     public Admin checkLogin(String name, String pass) {  
  64.         Admin entity = adminDao.checkLogin(name, pass);  
  65.         return entity;  
  66.     }  
  67.   
  68.     @Override  
  69.     public Admin checkLogin(String name) {  
  70.         Admin entity = adminDao.checkLogin(name);  
  71.         return entity;  
  72.     }  
  73.   
  74. }  

  1. 用来将页面传入的信息进行分析处理的服务器类,  
  2. package servlet;  
  3.   
  4. import java.io.IOException;  
  5. import java.net.URLEncoder;  
  6. import java.security.MessageDigest;  
  7. import java.security.NoSuchAlgorithmException;  
  8.   
  9. import javax.jms.Message;  
  10. import javax.servlet.ServletException;  
  11. import javax.servlet.http.Cookie;  
  12. import javax.servlet.http.HttpServlet;  
  13. import javax.servlet.http.HttpServletRequest;  
  14. import javax.servlet.http.HttpServletResponse;  
  15.   
  16. import com.sun.mail.util.BASE64DecoderStream;  
  17. import com.sun.mail.util.BASE64EncoderStream;  
  18.   
  19. import service.AdminService;  
  20. import serviceImpl.AdminServiceImpl;  
  21. import sun.misc.BASE64Decoder;  
  22. import sun.misc.BASE64Encoder;  
  23. import bean.Admin;  
  24.   
  25. public class AdminServlet extends HttpServlet {  
  26.   
  27.     private AdminService adminService = new AdminServiceImpl();  
  28.   
  29.     // 规定时间常量,为一天  
  30.     private final int EXPIRES =  60 * 60 * 24;  
  31.   
  32.     public void doGet(HttpServletRequest request, HttpServletResponse response)  
  33.             throws ServletException, IOException {  
  34.         // request.setCharacterEncoding("UTF-8");  
  35.   
  36.         String oper = request.getParameter("oper");  
  37.         if ("adminLogin".equals(oper)) {  
  38.             adminLogin(request, response);  
  39.         }  
  40.         if ("login".equals(oper)) {  
  41.             request.getRequestDispatcher("./login.jsp").forward(request,  
  42.                     response);  
  43.         }  
  44.   
  45.     }  
  46.   
  47.     private void adminLogin(HttpServletRequest request,  
  48.             HttpServletResponse response) throws ServletException, IOException {  
  49.           
  50.         //获取表单提交的数据  
  51.         String name = request.getParameter("name");  
  52.         String pass = request.getParameter("pass");  
  53.         String mark = request.getParameter("mark");  
  54.         String day = request.getParameter("day");  
  55.   
  56. //      System.out.println(name + "====" + pass + "====" + mark  
  57. //              + "============" + day);  
  58.   
  59.         //根据获取的数据向数据库发送数据请求,  
  60.         Admin entity = adminService.checkLogin(name, pass);  
  61.   
  62.         //判断查询结果  
  63.         if (entity != null) {  
  64.             //判断用户是否进行记录密码和自动登陆的操作  
  65.             if ("mark".equals(mark)) {  
  66.                 // 获取当前的时间并加上要保存的时间长度  
  67.                 long time = System.currentTimeMillis()  
  68.                         + (EXPIRES * Integer.valueOf(day)*1000);  
  69.   
  70.                 // 声明cookie  
  71.                 Cookie autoCookie = null;  
  72.                 // 获取所有的cookie的数组  
  73.                 Cookie cookies[] = request.getCookies();  
  74.                 // 遍历判断  
  75.                 for (Cookie cookie : cookies) {  
  76.                     // 判断是否已经存在cookie记录  
  77.                     if ("autoLogin".equals(cookie.getName())) {  
  78.                         // 存在即直接赋值  
  79.                         autoCookie = cookie;  
  80.                         // 并改变内容  
  81.                         String newValue = name  
  82.                                 + ":"  
  83.                                 + time  
  84.                                 + ":"  
  85.                                 + md5Value(pass + ":" + name + ":" + time  
  86.                                         + ":donghongyujava");  
  87.                         autoCookie.setValue(newValue);  
  88.                     } else {  
  89.                         String cookieValue = name  
  90.                                 + ":"  
  91.                                 + time  
  92.                                 + ":"  
  93.                                 + md5Value(pass + ":" + name + ":" + time  
  94.                                         + ":donghongyujava");  
  95.                         /* 
  96.                          * Control character in cookie value or attribute. 
  97.                          * 当存入的数据是中文时,cookie会出现乱码现象 需要进行编码的转换 
  98.                          */  
  99.                         autoCookie = new Cookie("autoLogin", URLEncoder.encode(  
  100.                                 cookieValue, "UTF-8"));  
  101.                     }  
  102.                 }  
  103.                 // 设置cookie的最长的存活时间  
  104.                 autoCookie.setMaxAge(EXPIRES * Integer.valueOf(day));  
  105.                 response.addCookie(autoCookie);  
  106.             }  
  107.             // 将admin存入到session  
  108.             request.getSession().setAttribute("admin", entity);  
  109.             // 设置成功后就登陆操作  
  110.             request.getRequestDispatcher("./sc.jsp").forward(request, response);  
  111.         } else {  
  112.               
  113.             request.setAttribute("msg""用户名或密码错误请重试");  
  114.             request.getRequestDispatcher("./login.jsp").forward(request,  
  115.                     response);  
  116.         }  
  117.     }  
  118.   
  119.     public void doPost(HttpServletRequest request, HttpServletResponse response)  
  120.             throws ServletException, IOException {  
  121.         this.doGet(request, response);  
  122.     }  
  123.   
  124.     //加密的操作方法  
  125.     public String md5Value(String value) {  
  126.         try {  
  127.             // 获取md5加密的对象  
  128.             MessageDigest digest = MessageDigest.getInstance("md5");  
  129.             // 将传入的数据装换为byte字节,在用digest进行转换(加密)成新的字节数组,  
  130.             byte result[] = digest.digest(value.getBytes());  
  131.             //需要的jdk版本myeclipse2013中自带的com.sun.java.jdk.win32.x86_64_1.6.0.u43  
  132.             //jdk1.7.0_25没有相关的包  
  133.             BASE64Encoder encoder = new BASE64Encoder();  
  134.             // 返回加密后的数据  
  135.             return encoder.encode(result);  
  136.         } catch (NoSuchAlgorithmException e) {  
  137.             // TODO Auto-generated catch block  
  138.             e.printStackTrace();  
  139.         }  
  140.         return "";  
  141.     };  
  142.   
  143. }  

  1. 过滤器类,用来设置请求的编码  
  2. package filter;  
  3.   
  4. import java.io.IOException;  
  5.   
  6. import javax.servlet.Filter;  
  7. import javax.servlet.FilterChain;  
  8. import javax.servlet.FilterConfig;  
  9. import javax.servlet.ServletException;  
  10. import javax.servlet.ServletRequest;  
  11. import javax.servlet.ServletResponse;  
  12. import javax.servlet.http.HttpServletRequest;  
  13. import javax.servlet.http.HttpServletResponse;  
  14.   
  15. public class EncodingFilter implements Filter {  
  16.     private FilterConfig filterConfig;  
  17.   
  18.     @Override  
  19.     public void destroy() {  
  20.         // TODO Auto-generated method stub  
  21.     }  
  22.   
  23.     @Override  
  24.     public void doFilter(ServletRequest req, ServletResponse res,  
  25.             FilterChain chain) throws IOException, ServletException {  
  26.         HttpServletRequest request = (HttpServletRequest) req;  
  27.         HttpServletResponse response = (HttpServletResponse) res;  
  28.         // 编码的设置  
  29.         request.setCharacterEncoding(filterConfig.getInitParameter("encoding"));  
  30.         chain.doFilter(request, response);  
  31.     }  
  32.   
  33.     @Override  
  34.     public void init(FilterConfig filterConfig) throws ServletException {  
  35.         // TODO Auto-generated method stub  
  36.         this.filterConfig=filterConfig;  
  37.     }  
  38.   
  39. }  

  1. 自动登录的过滤类,用来控制用户的自动的登录操作的相关  
  2.   
  3. package filter;  
  4.   
  5. import java.io.IOException;  
  6. import java.security.MessageDigest;  
  7. import java.security.NoSuchAlgorithmException;  
  8.   
  9. import javax.servlet.Filter;  
  10. import javax.servlet.FilterChain;  
  11. import javax.servlet.FilterConfig;  
  12. import javax.servlet.ServletException;  
  13. import javax.servlet.ServletRequest;  
  14. import javax.servlet.ServletResponse;  
  15. import javax.servlet.http.Cookie;  
  16. import javax.servlet.http.HttpServletRequest;  
  17. import javax.servlet.http.HttpServletResponse;  
  18.   
  19. import bean.Admin;  
  20.   
  21. import service.AdminService;  
  22. import serviceImpl.AdminServiceImpl;  
  23. import sun.misc.BASE64Encoder;  
  24.   
  25. public class AutoLoginFilter implements Filter {  
  26.   
  27.     @Override  
  28.     public void destroy() {  
  29.         // TODO Auto-generated method stub  
  30.     }  
  31.   
  32.     @Override  
  33.     public void doFilter(ServletRequest req, ServletResponse res,  
  34.             FilterChain chain) throws IOException, ServletException {  
  35.         // 强制造型为子类型  
  36.         HttpServletRequest request = (HttpServletRequest) req;  
  37.         HttpServletResponse response = (HttpServletResponse) res;  
  38.         // 1.首先判断session  
  39.         Object object = request.getSession().getAttribute("admin");  
  40.   
  41.         if (object != null) {  
  42.             request.getRequestDispatcher("./sc.jsp").forward(request, response);  
  43.             return;  
  44.         }  
  45.   
  46.         // 2.判断cookie中是否存在用户的记录  
  47.         Cookie autoCookie = null;  
  48.         // 获取所有的cookie进行遍历判断  
  49.         Cookie cookies[] = request.getCookies();  
  50.         if (cookies != null) {  
  51.             for (Cookie cookie : cookies) {  
  52.                 // 判断是否已经存贮用户记录  
  53.                 if ("autoLogin".equals(cookie.getName())) {  
  54.                     autoCookie = cookie;  
  55.                 }  
  56.             }  
  57.   
  58.             // 判断是否存在用户自动登录记录  
  59.             if (autoCookie == null) {  
  60.                 chain.doFilter(request, response);  
  61.                 return;  
  62.             }  
  63.   
  64.             // 3.判断cookie的值  
  65.             // 获取cookie值  
  66.             String value = autoCookie.getValue();  
  67.             // 拆分  
  68.             String temps[] = value.split(":");  
  69.   
  70.             // 判断长度是否是自定义的长度  
  71.             if (temps.length != 3) {  
  72.                 chain.doFilter(request, response);  
  73.                 return;  
  74.             }  
  75.             // 获取拆分后的数据  
  76.             String name = temps[0];  
  77.               
  78.             String time = temps[1];  
  79.               
  80.             String service_md5Value = temps[2];  
  81.   
  82.             // 4.根据时间判断是否失效  
  83.             if (Long.valueOf(time) <= System.currentTimeMillis()) {  
  84.                 chain.doFilter(request, response);  
  85.                 return;  
  86.             }  
  87.   
  88.             // 5.根据用户名查询数据  
  89.             AdminService adminService = new AdminServiceImpl();  
  90.             // 向数据库发送数据请求  
  91.             Admin entity = adminService.checkLogin(name);  
  92.             if (entity == null) {  
  93.                 chain.doFilter(request, response);  
  94.                 return;  
  95.             }  
  96.   
  97.             // 6.拼接字符串在进行二次判断,  
  98.             String md5Temp = entity.getPass() + ":" + entity.getName() + ":"  
  99.                     + time + "donghongyujava";  
  100.             if (!(md5Value(md5Temp).equals(service_md5Value))) {  
  101.                 chain.doFilter(request, response);  
  102.                 return;  
  103.             }  
  104.   
  105.             // 7.如果以上的判断都通过,那么就发送成功的转跳连接  
  106.             request.getSession().setAttribute("admin", entity);  
  107.             request.getRequestDispatcher("./sc.jsp").forward(request, response);  
  108.         } else {  
  109.             chain.doFilter(request, response);  
  110.             return;  
  111.         }  
  112.     }  
  113.   
  114.     @Override  
  115.     public void init(FilterConfig arg0) throws ServletException {  
  116.         // TODO Auto-generated method stub  
  117.   
  118.     }  
  119.   
  120.     // 加密的操作函数  
  121.     public String md5Value(String value) {  
  122.         try {  
  123.             // 获取md5加密的对象  
  124.             MessageDigest digest = MessageDigest.getInstance("md5");  
  125.             // 将传入的数据装换为byte字节,在用digest进行转换(加密)成新的字节数组,  
  126.             byte result[] = digest.digest(value.getBytes());  
  127.             BASE64Encoder encoder = new BASE64Encoder();  
  128.             // 返回加密后的数据  
  129.             return encoder.encode(result);  
  130.   
  131.         } catch (NoSuchAlgorithmException e) {  
  132.             // TODO Auto-generated catch block  
  133.             e.printStackTrace();  
  134.         }  
  135.         return "";  
  136.     };  
  137.   
  138. }  

  1. web的配置,主要配置的是servlet和filter的配置  
  2. <?xml version="1.0" encoding="UTF-8"?>  
  3. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
  6.     id="WebApp_ID" version="3.0">  
  7.     <display-name>jqueryeasyui</display-name>  
  8.     <servlet>  
  9.         <servlet-name>AdminServlet</servlet-name>  
  10.         <servlet-class>servlet.AdminServlet</servlet-class>  
  11.     </servlet>  
  12.   
  13.     <servlet-mapping>  
  14.         <servlet-name>AdminServlet</servlet-name>  
  15.         <url-pattern>/AdminOPer.do</url-pattern>  
  16.     </servlet-mapping>  
  17.   
  18.   
  19.     <filter>  
  20.         <filter-name>AutoLoginFilter</filter-name>  
  21.         <filter-class>filter.AutoLoginFilter</filter-class>  
  22.     </filter>  
  23.   
  24.     <filter-mapping>  
  25.         <filter-name>AutoLoginFilter</filter-name>  
  26.         <url-pattern>/AdminOPer.do</url-pattern>  
  27.     </filter-mapping>  
  28.   
  29.   
  30.     <filter>  
  31.         <filter-name>EncodingFilter</filter-name>  
  32.         <filter-class>filter.EncodingFilter</filter-class>  
  33.         <!-- 设置传入的参数是UTF-8 -->  
  34.         <init-param>  
  35.             <param-name>encoding</param-name>  
  36.             <param-value>UTF-8</param-value>  
  37.         </init-param>  
  38.     </filter>  
  39.   
  40.     <!-- 设置所有的请求操作都进行这个过滤的操作 -->  
  41.     <filter-mapping>  
  42.         <filter-name>EncodingFilter</filter-name>  
  43.         <url-pattern>/*</url-pattern>  
  44.     </filter-mapping>  
  45.   
  46.     <welcome-file-list>  
  47.         <welcome-file>index.html</welcome-file>  
  48.         <welcome-file>index.htm</welcome-file>  
  49.         <welcome-file>index.jsp</welcome-file>  
  50.         <welcome-file>default.html</welcome-file>  
  51.         <welcome-file>default.htm</welcome-file>  
  52.         <welcome-file>default.jsp</welcome-file>  
  53.     </welcome-file-list>  
  54. </web-app>  

  1. 用来跳转的jsp代码  
  2. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  3. <%  
  4. String path = request.getContextPath();  
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  6. %>  
  7.   
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  9. <html>  
  10.   <head>  
  11.     <base href="<%=basePath%>">  
  12.       
  13.     <title>My JSP 'index.jsp' starting page</title>  
  14.       
  15.     <meta http-equiv="pragma" content="no-cache">  
  16.     <meta http-equiv="cache-control" content="no-cache">  
  17.     <meta http-equiv="expires" content="0">      
  18.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  19.     <meta http-equiv="description" content="This is my page">  
  20.     <!--  
  21.     <link rel="stylesheet" type="text/css" href="styles.css">  
  22.     -->  
  23.   
  24.   </head>  
  25.     
  26.   <body>  
  27.    <a href="${pageContext.request.contextPath}/AdminOPer.do?oper=login">登录操作</a>  
  28.   </body>  
  29. </html>  

  1. 要登陆的表单界面  
  2. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  3.   
  4. <%@include file="/common/tag.jsp"%>  
  5. <%@include file="/common/jquery.jsp"%>  
  6.   
  7.   
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  9. <html>  
  10. <head>  
  11.   
  12. <title>My JSP 'index.jsp' starting page</title>  
  13. <meta http-equiv="pragma" content="no-cache">  
  14. <meta http-equiv="cache-control" content="no-cache">  
  15. <meta http-equiv="expires" content="0">  
  16. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  17. <meta http-equiv="description" content="This is my page">  
  18. <!--  
  19.     <link rel="stylesheet" type="text/css" href="styles.css">  
  20.     -->  
  21. </head>  
  22.   
  23. <body>  
  24.     <div>  
  25.         <!-- 登录错误时的提示操作 -->  
  26.         <b>${requestScope.msg}</b>  
  27.         <!-- ${pageContext.request.contextPath}代表当前项目路径下的操作 -->  
  28.         <form action="${pageContext.request.contextPath}/AdminOPer.do"  
  29.             method="post">  
  30.             <table border="1">  
  31.                 <tr>  
  32.                     <td>用户名:</td>  
  33.                     <td><input type="text" name="name"></td>  
  34.                 </tr>  
  35.                 <tr>  
  36.                     <td>密码:</td>  
  37.                     <td><input type="text" name="pass"></td>  
  38.                 </tr>  
  39.                 <tr>  
  40.                     <td align="right"><input type="checkBox" name="mark"  
  41.                         value="mark"></td>  
  42.                     <td>下次记住密码</td>  
  43.                 </tr>  
  44.                 <tr>  
  45.                     <td colspan="2"><input type="radio" name="day" value="1">一天  
  46.                         <input type="radio" name="day" value="3">三天 <input  
  47.                         type="radio" name="day" value="7" checked="checked">一周</td>  
  48.                 </tr>  
  49.                 <tr>  
  50.                     <td align="center" colspan="2"><input type="submit" value="登录"  
  51.                         id="submit"><input type="reset" value="重置" id="reset"></td>  
  52.                 </tr>  
  53.             </table>  
  54.             <input type="hidden" value="adminLogin" name="oper">  
  55.         </form>  
  56.     </div>  
  57. </body>  
  58. </html>  

  1. 成功登录后的界面jsp代码  
  2.   
  3. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  4. <%  
  5.     String path = request.getContextPath();  
  6.     String basePath = request.getScheme() + "://"  
  7.             + request.getServerName() + ":" + request.getServerPort()  
  8.             + path + "/";  
  9. %>  
  10.   
  11. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  12. <html>  
  13. <head>  
  14. <base href="<%=basePath%>">  
  15.   
  16. <title>My JSP 'sc.jsp' starting page</title>  
  17.   
  18. <meta http-equiv="pragma" content="no-cache">  
  19. <meta http-equiv="cache-control" content="no-cache">  
  20. <meta http-equiv="expires" content="0">  
  21. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  22. <meta http-equiv="description" content="This is my page">  
  23. <!--  
  24.     <link rel="stylesheet" type="text/css" href="styles.css">  
  25.     -->  
  26.   
  27. </head>  
  28.   
  29. <body>  
  30. <!-- 从session域中取出已经存入的用户对象 -->  
  31.     欢迎  <b>${sessionScope.admin.name}</b>进入  
  32. </body>  
  33. </html> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值