Web应用——驾培管理系统之登录功能(作者:小圣)

Web应用——驾培管理系统之登录功能(作者:小圣)

本节博文将向大家介绍本次驾培管理系统的登录功能。从创建一个对应数据表的bean开始,到界面填入参数,后台判断,传值,并且实现页面渲染,通过登录这一基础功能向大家展示这一流程,以供像我一样的初学者们学习。

笔者会把大概实现过程贴出来,有看不懂过程且需要项目源码的请戳:http://download.csdn.net/detail/xie_xiansheng/9486872,需要数据库表格的请留言。有些小细节没完善,有些代码冗余,初学请见谅!

首先来看结果图



首先是数据库所创建的用户表格t_user:

Web应用——驾培管理系统之登录功能(作者:小圣)_第1张图片


然后是数据库所有权限的表格t_function:



最后是数据库对应用户所拥有权限的表格t_user_function:


Web应用——驾培管理系统之登录功能(作者:小圣)_第2张图片


其次,是org.great.bean包下用户表t_user对应的UserBean

package org.great.bean;

public class UserBean {
	private int user_id;
	private int role_id;
	private int driving_id;
	private String user_lname;
	private String user_pwd;
	private String user_name;
	private String user_sex;
	private String user_status;
	private String createtime;
	private String tel;
	private String driving_name;
	
	public String getDriving_name() {
		return driving_name;
	}
	public void setDriving_name(String drivingName) {
		driving_name = drivingName;
	}
	public int getUser_id() {
		return user_id;
	}
	public void setUser_id(int userId) {
		user_id = userId;
	}
	public int getRole_id() {
		return role_id;
	}
	public void setRole_id(int roleId) {
		role_id = roleId;
	}
	public String getUser_lname() {
		return user_lname;
	}
	public void setUser_lname(String userLname) {
		user_lname = userLname;
	}
	public String getUser_pwd() {
		return user_pwd;
	}
	public void setUser_pwd(String userPwd) {
		user_pwd = userPwd;
	}
	public String getUser_name() {
		return user_name;
	}
	public void setUser_name(String userName) {
		user_name = userName;
	}
	public String getUser_sex() {
		return user_sex;
	}
	public void setUser_sex(String userSex) {
		user_sex = userSex;
	}
	public String getUser_status() {
		return user_status;
	}
	public void setUser_status(String userStatus) {
		user_status = userStatus;
	}
	public String getCreatetime() {
		return createtime;
	}
	public void setCreatetime(String createtime) {
		this.createtime = createtime;
	}
	public int getDriving_id() {
		return driving_id;
	}
	public void setDriving_id(int drivingId) {
		driving_id = drivingId;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	 
	
	
}


权限表t_function对应的FuncBean:

package org.great.bean;

public class FuncBean {
	private int func_id;
	private int func_pid;
	private String func_name;
	private String func_url;
	private String func_level;
	private String func_tag;
	public int getFunc_id() {
		return func_id;
	}
	public void setFunc_id(int funcId) {
		func_id = funcId;
	}
	public int getFunc_pid() {
		return func_pid;
	}
	public void setFunc_pid(int funcPid) {
		func_pid = funcPid;
	}
	public String getFunc_name() {
		return func_name;
	}
	public void setFunc_name(String funcName) {
		func_name = funcName;
	}
	public String getFunc_url() {
		return func_url;
	}
	public void setFunc_url(String funcUrl) {
		func_url = funcUrl;
	}
	public String getFunc_level() {
		return func_level;
	}
	public void setFunc_level(String funcLevel) {
		func_level = funcLevel;
	}
	public String getFunc_tag() {
		return func_tag;
	}
	public void setFunc_tag(String funcTag) {
		func_tag = funcTag;
	}
	
	
}


然后是org.great.dao包下创建UserDao类,并且创建一个工厂类,控制单例,使之每次只实例化一个Dao

UserDao类:

public interface UserDao {
	/**根据登录名查找用户信息*/
	public UserBean findUser_ByLname(String lname);
}

DaoFactory类:

public class DaoFactory {
	private static UserDao userDao = null;
	private static FuncDao funcDao = null;
<span style="white-space:pre">	</span>public static FuncDao getFuncDao(){
<span style="white-space:pre">		</span>if(funcDao == null){
<span style="white-space:pre">			</span>funcDao = new FuncDaoImpl();
<span style="white-space:pre">		</span>}
<span style="white-space:pre">		</span>return funcDao;
<span style="white-space:pre">	</span>}
	public static UserDao getUserDao(){
		if(userDao == null){
			userDao = new UserDaoImpl();
		}
		return userDao;
	}

	
}


FuncDaoImpl实现类对应进行数据库查询操作:

private PreparedStatement pre =  null;
	private ResultSet rs = null;
	
	/** 获得权限表全部数据*/
	public List<FuncBean> getFunc_ALL(int user_id){
		List<FuncBean> list = new ArrayList<FuncBean>();
		Connection conn = DBUtils.getConn();
		String sql = "select f.func_id,f.func_pid,f.func_name,f.func_url,f.func_level from t_function f," +
				"t_user_function rf where f.func_id = rf.func_id and rf.user_id = ?";
		try {
			pre = conn.prepareStatement(sql);
			pre.setInt(1, user_id);
			rs = pre.executeQuery();
			while(rs.next()){
				FuncBean funcBean = new FuncBean();
				funcBean.setFunc_id(rs.getInt(1));
				funcBean.setFunc_pid(rs.getInt(2));
				funcBean.setFunc_name(rs.getString(3));
				funcBean.setFunc_url(rs.getString(4));
				funcBean.setFunc_level(rs.getString(5));
				list.add(funcBean);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally{
			DBUtils.close(conn, pre, rs);
		}
		
		return list;
	}

UserDaoImpl实现类对应的数据库查询操作:

private PreparedStatement pre = null;
	private ResultSet rs = null;
	public UserBean findUser_ByLname(String lname) {

		Connection conn = DBUtils.getConn();
		UserBean userBean = null;
		String sql = "select user_id,role_id,user_lname,user_pwd,user_name,user_sex,user_status," +
				"createtime,driving_id,tel from t_user where user_lname = ? and user_status!='D'" ;
		try {
			pre = conn.prepareStatement(sql);
			pre.setString(1, lname);
			rs = pre.executeQuery();			
			
			if(rs.next()){
				userBean = new UserBean();
				userBean.setUser_id(rs.getInt(1));
				userBean.setRole_id(rs.getInt(2));
				userBean.setUser_lname(rs.getString(3));
				userBean.setUser_pwd(rs.getString(4));
				userBean.setUser_name(rs.getString(5));
				userBean.setUser_sex(rs.getString(6));
				userBean.setUser_status(rs.getString(7));
				userBean.setCreatetime(rs.getString(8));
				userBean.setDriving_id(rs.getInt(9));
				userBean.setTel(rs.getString(10));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally{
			DBUtils.close(conn, pre, rs);
		}
		return userBean;
	
	}


org.great.servlet包下的登录判断的Servlet类:LoginServlet

public class LoginServlet extends HttpServlet{
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {

		req.setCharacterEncoding("utf-8");
		resp.setContentType("text/html;charset=utf-8");
		
		String task = req.getParameter("task");
		if(null == task){
			req.setAttribute("msg", "请先登录!");
			req.getRequestDispatcher("index.jsp").forward(req, resp);
		}else if(task.equals("login")){		
			String userlname = req.getParameter("userlname");
			String userpwd = req.getParameter("userpwd");
			if("".equals(userlname)|| "".equals(userpwd)){
				req.setAttribute("msg","用户名或密码不能为空!");
				req.getRequestDispatcher("index.jsp").forward(req, resp);
			}else {
				System.out.println("task--111"+task);
				UserDao userDao = DaoFactory.getUserDao();
				//通过登录账户名获取用户信息
				UserBean userBean = userDao.findUser_ByLname(userlname);
				if(null==userBean){
					req.setAttribute("msg", "用户名不存在");
					req.getRequestDispatcher("index.jsp").forward(req, resp);
				}else if(!userpwd.equals(userBean.getUser_pwd())){
					req.setAttribute("msg", "密码输入错误");
					req.getRequestDispatcher("index.jsp").forward(req, resp);
				}else if(userBean.getRole_id()==3||userBean.getRole_id()==4){
					req.setAttribute("msg", "抱歉,您没有权限登录");
					req.getRequestDispatcher("index.jsp").forward(req, resp);
				}else{	
					//列出权限->左侧导航栏
					HttpSession session = req.getSession();
					FuncDao funcDao = DaoFactory.getFuncDao();
					List<FuncBean> funcBeans = funcDao.getFunc_ALL(userBean.getUser_id());
					session.setAttribute("funcs", funcBeans);
					session.setAttribute("Logindo", userBean);
					session.setAttribute("funcDao", funcDao);
					resp.sendRedirect("jsp/main/index.jsp");
				}
			}
		}	
	}
}

WebRoot/index.jsp,项目初始页面(登录页面)

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<link rel="stylesheet" type="text/css" href="<%=basePath%>/background/Style/skin.css" />
 	<script type="text/javascript" src="<%=basePath%>/jquery-2.1.4/jquery1.9.0.min.js"></script>
 	<script type="text/javascript" src="<%=basePath%>/easyvalidator2/js/validate.pack.js">
	</script>
	<link href="<%=basePath%>/easyvalidator2/css/validate.css" rel="stylesheet" type="text/css" />
  </head>
  <body>
        <table width="100%">
            <!-- 顶部部分 -->
            <tr height="41"><td colspan="2" background="<%=basePath%>/background/Images/login_top_bg.gif"> </td></tr>
            <!-- 主体部分 -->
            <tr style="background:url(<%=basePath%>/background/Images/login_bg.jpg) repeat-x;" height="532">
                <!-- 主体左部分 -->
                <td id="left_cont">
                    <table width="100%" height="100%">
                        <tr height="155"><td colspan="2"> </td></tr>
                        <tr>
                            <td width="20%" rowspan="2"> </td>
                            <td width="60%">
                                <table width="100%">
                                    <tr height="70"><td align="right"></td></tr>
                                    <tr height="274">
                                        <td valign="top" align="right">
                                          
                                        </td>
                                    </tr>
                                </table>
                            <td width="15%" rowspan="2"> </td>
                            </td>
                        </tr>
                        <tr><td colspan="2"> </td></tr>
                    </table>
                </td>
                
                <!-- 主体右部分 -->
                <td id="right_cont">
                    <table height="100%">
                        <tr height="30%"><td colspan="3"> </td></tr>
                        <tr>
                            <td width="30%" rowspan="5"> </td>
                            <td valign="top" id="form">
                                <form action="login.do" method="post">
                                    <table valign="top" width="50%">
                                        <tr><td colspan="2"><h4 style="letter-spacing:1px;font-size:16px;">驾校管理后台</h4></td></tr>
                                        <tr>
                                        <td>用户名:</td>
                                        <td>
                                        <input type="text" name="userlname" value="" />
                                        </td>
                                        </tr>
                                        <tr><td>密    码:</td><td><input type="password" name="userpwd" value="" />
                                        <input type="hidden" name="task" value="login">
                                        </td></tr>
                                       	
                                        <tr class="bt" align="center"><td> <input type="submit" value="登陆" /></td><td> <input type="reset" value="重填" /></td></tr>
                                    </table>
                                </form>
                            </td>
                            <td rowspan="5"> </td>
                        </tr>
                        <tr><td colspan="3"> </td></tr>
                    </table>
                </td>
            </tr>
            <!-- 底部部分 -->
            <tr id="login_bot"><td colspan="2"><p>Copyright © 2015-2016 ChuanYi AX1510工作室</p></td></tr>
        </table>
    </body>
 	<script type="text/javascript">
 	
 	  var msg = "<%=request.getAttribute("msg")%>";
 	  if(msg!="null"){
 	  	alert(msg);
 	  }
 	</script>
</html>

登录成功后跳转的Jsp:WebRoot/jsp/main/index.jsp,它包含了三个jsp,使用了frame框架

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <frameset rows="64,*"  frameborder="no" border="0" framespacing="0">
    <!--头部-->
    <frame src="<%=basePath%>/jsp/main/top.jsp" name="top" noresize="noresize" frameborder="0"  scrolling="no" marginwidth="0" marginheight="0" />
    <!--主体部分-->
    <frameset cols="185,*">
        <!--主体左部分-->
        <frame src="<%=basePath%>/jsp/main/left.jsp" name="left" noresize="noresize" frameborder="0" scrolling="no" marginwidth="0" marginheight="0" />
        <!--主体右部分-->
        <frame src="<%=basePath%>/jsp/main/main.jsp" name="main" frameborder="0" scrolling="auto" marginwidth="0" marginheight="0" />
</frameset>
</html>

top.jsp

<%@ page language="java" import="java.util.*,org.great.bean.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'top.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<link rel="stylesheet" type="text/css" href="<%=basePath%>/background/Style/skin.css" />
    <script type="text/javascript">
        function logout() {
            if(window.confirm('您确定要退出吗?')) {
            	
                top.location = 'user.do?task=logout';
   				
            }
        }       
    </script>

  </head>
  
  <body>
        <table cellpadding="0" width="100%" height="64" background="<%=basePath%>/background/Images/top_top_bg.gif">
            <tr valign="top">
                <td width="50%"><a href="javascript:void(0)"><img style="border:none" src="<%=basePath%>/background/Images/logo.png" /></a></td>
                <td width="30%" style="padding-top:13px;font:15px Arial,SimSun,sans-serif;color:#FFF">尊敬的:<b style="color: red"><%=((UserBean)session.getAttribute("Logindo")).getUser_name()%></b> 您好,感谢登陆使用!</td>
                <td style="padding-top:10px;" align="center"></td>
                <td style="padding-top:10px;" align="center"><a href="javascript:void(0)"><img style="border:none" src="<%=basePath%>/background/Images/out.gif" onclick="logout();" /></td>
            </tr>
        </table>
    </body>
    <script type="text/javascript">
	
    	
    </script>
</html>

left.jsp

<%@ page language="java" import="java.util.*,org.great.bean.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'left.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<script src="<%=basePath%>/background/Js/prototype.lite.js" type="text/javascript"></script>
    <script src="<%=basePath%>/background/Js/moo.fx.js" type="text/javascript"></script>
    <script src="<%=basePath%>/background/Js/moo.fx.pack.js" type="text/javascript"></script>
    <link rel="stylesheet" type="text/css" href="<%=basePath%>/background/Style/skin.css" />
    <script type="text/javascript">
        window.onload = function () {
            var contents = document.getElementsByClassName('content');
            var toggles = document.getElementsByClassName('type');

            var myAccordion = new fx.Accordion(
            toggles, contents, {opacity: true, duration: 400}
            );
            myAccordion.showThisHideOpen(contents[0]);
            for(var i=0; i<document .getElementsByTagName("a").length; i++){
                var dl_a = document.getElementsByTagName("a")[i];
                    dl_a.onfocus=function(){
                        this.blur();
                    }
            }
        }
    </script>
  </head>
  
  <body>
    <table width="100%" height="280" border="0" cellpadding="0" cellspacing="0" bgcolor="#EEF2FB">
        <tr>
            <td width="182" valign="top">
            <!-- 根据数据库的权限表获取到的权限来展开导航栏 -->
            <%List<FuncBean> funcBeans =(List<FuncBean>)session.getAttribute("funcs");
       
             %>
             
                <div id="container">
                <!-- 权限等级为1的为1级导航栏 -->
                <%for(int i=0;i<funcBeans.size();i++){ 
                	if(funcBeans.get(i).getFunc_level().equals("1")){
                	
                %>
                    <h1 class="type"><a href="javascript:void(0)"><%=funcBeans.get(i).getFunc_name() %></a></h1>
                    <div class="content">
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
                            <tr>
                                <td><img src="<%=basePath%>/background/Images/menu-top-line.gif" width="182" height="5" /></td>
                            </tr>
                        </table>
                        <ul class="RM">
                        <!-- 权限等级为2的为2级导航栏 -->
                        <%for(int j=0;j<funcBeans.size();j++){ 
                            FuncBean funcBean =funcBeans.get(j);
                        	if(funcBean.getFunc_level().equals("2")&&funcBean.getFunc_pid()==funcBeans.get(i).getFunc_id()){
                        %>
                            <li><a href="<%=funcBeans.get(j).getFunc_url()%>" target="main"><%=funcBeans.get(j).getFunc_name() %></a></li>
                            <%}} %>
                        </ul>
                    </div>     
                       <% }}%>   
                </div>
               
            </td>
        </tr>
    </table>
</body>
</html>

main.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'main.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<link rel="stylesheet" type="text/css" href="<%=basePath%>/background/Style/skin.css" />
  </head>
  
  <body>
        <table width="100%" border="0" cellpadding="0" cellspacing="0">
            <!-- 头部开始 -->
            <tr>
                <td width="17" valign="top" background="<%=basePath%>/background/Images/mail_left_bg.gif">
                    <img src="<%=basePath%>/background/Images/left_top_right.gif" width="17" height="29" />
                </td>
                <td valign="top" background="<%=basePath%>/background/Images/content_bg.gif">
                    <table width="100%" height="31" border="0" cellpadding="0" cellspacing="0" background="<%=basePath%>/background/<%=basePath%>/background/Images/content_bg.gif">
                        <tr><td height="31"><div class="title" style="color: red">欢迎界面</div></td></tr>
                    </table>
                </td>
                <td width="16" valign="top" background="<%=basePath%>/background/Images/mail_right_bg.gif"><img src="<%=basePath%>/background/Images/nav_right_bg.gif" width="16" height="29" /></td>
            </tr>
            <!-- 中间部分开始 -->
            <tr>
                <!--第一行左边框-->
                <td valign="middle" background="<%=basePath%>/background/Images/mail_left_bg.gif"> </td>
                <!--第一行中间内容-->
                <td valign="top" bgcolor="#F7F8F9">
                    <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
                        <!-- 空白行-->
                        <tr><td colspan="2" valign="top"> </td><td> </td><td valign="top"> </td></tr>
                        <!--**********这里是内容**********-->
                        <!--**********这里是内容**********-->
                        <!--**********这里是内容**********-->
                        <!--**********这里是内容**********-->
                        <tr>
                            <!--左边内容-->
                            <td colspan="2" valign="top">
                                <h3 style="margin:0 0 10px 10px; color: blue">感谢您使用传一科技驾校管理程序</h3>
                                <img src="<%=basePath%>/background/Images/ts.gif" width="16" height="16" style="margin-left:10px;"> 提示:<br />
                                <p style="text-indent:20px;line-height:25px;margin-left:10px;font-size:15px;">您现在使用的是 传一科技开发的一套驾校管理系统!如果您有任何疑问请联系客户服务邮箱进行咨询!<br />    此程序是为您便捷管理驾校而使用!</p>
                            </td>
                            <!--间隔-->
                            <td width="7%"> </td>
                            <!--右边内容-->
                            <td width="40%" valign="top">
                                <table width="100%" height="150" border="0" cellpadding="0" cellspacing="0" style="border: 1px solid #CCCCCC;">
                                    <tr>
                                        <td width="7%" height="27" background="<%=basePath%>/background/Images/news_title_bg.gif">
                                            <img src="<%=basePath%>/background/Images/news_title_bg.gif" width="2" height="27">
                                        </td>
                                        <td width="93%" background="<%=basePath%>/background/Images/news_title_bg.gif" class="left_bt">最新动态</td>
                                    </tr>
                                    <tr><td height="5" colspan="2"> </td></tr>
                                    <tr>
                                        <td height="100" valign="top" colspan="2" id="news">
                                            <marquee direction="up" scrollamount="2" vspace="30px" width="400px" height="100px" onmouseout="this.start()" onmouseover="this.stop()">
                                                <ul>
                                                    <li>厦门传一科技有限公司!</li>
                                                    <li>传一科技驾校管理系统!</li>
                                                </ul>
                                            </marquee>
                                        </td>
                                    </tr>
                                    <tr><td height="5" colspan="2"> </td></tr>
                                </table>
                            </td>
                        </tr>
                        <tr height="20"><td colspan="2" valign="top"> </td><td> </td><td valign="top"> </td></tr>
                        <!--第二行-->
                        <tr>
                            <td colspan="2" valign="top">
                                <table width="100%" height="230" border="0" cellpadding="0" cellspacing="0" style="border: 1px solid #CCCCCC;">
                                    <tr>
                                        <td width="7%" background="<%=basePath%>/background/Images/news_title_bg.gif">
                                            <img src="<%=basePath%>/background/Images/news_title_bg.gif" width="2" height="27">
                                        </td>
                                        <td width="93%" background="<%=basePath%>/background/Images/news_title_bg.gif" class="left_bt">最新动态</td>
                                    </tr>
                                    <tr>
                                        <td height="186" valign="top" colspan="2"></td>
                                    </tr>
                                    <tr><td height="5" colspan="2"> </td></tr>
                                </table>
                            </td>
                            <td> </td>
                            <td valign="top">
                                <table width="100%" height="230" border="0" cellpadding="0" cellspacing="0" style="border: 1px solid #CCCCCC;">
                                    <tr>
                                        <td width="7%" background="<%=basePath%>/background/Images/news_title_bg.gif">
                                            <img src="<%=basePath%>/background/Images/news_title_bg.gif" width="2" height="27">
                                        </td>
                                        <td width="93%" height="27" background="<%=basePath%>/background/Images/news_title_bg.gif" class="left_bt">最新动态</td>
                                    </tr>
                                    <tr><td height="186" valign="top"> </td><td height="102" valign="top"></td></tr>
                                    <tr><td height="5" colspan="2"> </td></tr>
                                </table>
                            </td>
                        </tr>
                        <tr>
                            <td height="40" colspan="4">
                                <table width="100%" height="1" border="0" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">
                                    <tr><td></td></tr>
                                </table>
                            </td>
                        </tr>
                        <tr>
                            <td width="2%"> </td>
                            <td width="51%" class="left_txt">
                                <img src="<%=basePath%>/background/Images/icon_mail.gif" width="16" height="11"> 客户服务邮箱:[email protected]<br />
                                <img src="<%=basePath%>/background/Images/icon_phone.gif" width="17" height="14"> 官方网站:<a href="http://my.csdn.net/xie_xiansheng" target="_blank">作者博客</a>
                            </td>
                            <td> </td><td> </td>
                        </tr>
                    </table>
                </td>
                <td background="<%=basePath%>/background/Images/mail_right_bg.gif"> </td>
            </tr>
            <!-- 底部部分 -->
            <tr>
                <td valign="bottom" background="<%=basePath%>/background/Images/mail_left_bg.gif">
                    <img src="<%=basePath%>/background/Images/buttom_left.gif" width="17" height="17" />
                </td>
                <td background="<%=basePath%>/background/Images/buttom_bgs.gif">
                    <img src="<%=basePath%>/background/Images/buttom_bgs.gif" width="17" height="17">
                </td>
                <td valign="bottom" background="<%=basePath%>/background/Images/mail_right_bg.gif">
                    <img src="<%=basePath%>/background/Images/buttom_right.gif" width="16" height="17" />
                </td>           
            </tr>
        </table>
    </body>
</html>

最后是过滤器类:org.great.filter下的LoginFilter

public class LoginFilter implements Filter{

	public void doFilter(ServletRequest sreq, ServletResponse sresp,
			FilterChain chain) throws IOException, ServletException {
		HttpServletRequest req = (HttpServletRequest)sreq;
		HttpServletResponse resp = (HttpServletResponse) sresp;
		
		HttpSession session = req.getSession();
		String path = req.getServletPath();
		String apath = req.getContextPath();
		//如果是路径以/index.jsp  /background(图片存放文件) /login.do 开始的直接放过,其他的拦截判断
		if(!path.startsWith("/index.jsp")&&!path.startsWith("/background")&&!path.startsWith("/login.do")){
			Object object = session.getAttribute("Logindo");
			if(object ==null){
				resp.sendRedirect(apath+"/index.jsp");
			}else{
				chain.doFilter(req, resp);
			}
		}else{
			chain.doFilter(req, resp);
		}
		
	}

	public void init(FilterConfig arg0) throws ServletException {
		
	}
	
	public void destroy() {
		
	}

}

并且在web.xml进行配置:

<servlet>
  	<servlet-name>loginServlet</servlet-name>
  	<servlet-class>org.great.servlet.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>loginServlet</servlet-name>
  	<url-pattern>/login.do</url-pattern>
  </servlet-mapping>
  
   <filter>
  	<filter-name>loginFilter</filter-name>
  	<filter-class>org.great.filter.LoginFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>loginFilter</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>




























































你可能感兴趣的:(Web应用)