10.26 【javaweb】实验内容 servlet和filter 登录主页 退出 登录拦截

分别写好登录页、主页、主页的几个功能页、登录失败页、servlet用作登录和退出处理,filter用于登录拦截处理和编码处理。

登录页:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<style type="text/css">
body{
    text-align:center;
}
</style>
<body>
<h1>登录</h1>
<form name="id" action="exam_3_loginservlet" method="post">
账号:<input type="text" name="id" value="123"><br><br>
密码:<input type="password" name="pass" value="123"><br><br>
<button>登录</button>
</form>
</body>
</html>

主页:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Calendar"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<style type="text/css">
#container{
    margin: 0px;
    padding: 0px;
    border:1px solid ;
    height:125px;
    font-size:25px;
    background: -moz-linear-gradient(top, #DDDDDD     0%, #E0FFFF 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#DDDDDD    ), color-stop(100%,#E0FFFF));
    background: -webkit-linear-gradient(top, #DDDDDD     0%,#E0FFFF 100%);
    background: -o-linear-gradient(top, #DDDDDD     0%,    #E0FFFF 100%);
    background: -ms-linear-gradient(top, #DDDDDD     0%,#E0FFFF 100%);
    background: linear-gradient(to bottom, #DDDDDD     0%,#E0FFFF 100%);
}
#left{
    margin: 0px;
    padding: 0px;
    height:330px;
    width: 30%;
    float: left;
    border:1px solid black;
    font-size:25px;
    background: -moz-linear-gradient(top, #DDDDDD     0%, #E0FFFF 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#DDDDDD    ), color-stop(100%,#E0FFFF));
    background: -webkit-linear-gradient(top, #DDDDDD     0%,#E0FFFF 100%);
    background: -o-linear-gradient(top, #DDDDDD     0%,    #E0FFFF 100%);
    background: -ms-linear-gradient(top, #DDDDDD     0%,#E0FFFF 100%);
    background: linear-gradient(to bottom, #DDDDDD     0%,#E0FFFF 100%);
}
#right{
    margin: 0px;
    padding: 0px;
     height:330px;
    float: rigth;
    border:1px solid black;
    background: -moz-linear-gradient(top, #DDDDDD     0%, #E0FFFF 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#DDDDDD    ), color-stop(100%,#E0FFFF));
    background: -webkit-linear-gradient(top, #DDDDDD     0%,#E0FFFF 100%);
    background: -o-linear-gradient(top, #DDDDDD     0%,    #E0FFFF 100%);
    background: -ms-linear-gradient(top, #DDDDDD     0%,#E0FFFF 100%);
    background: linear-gradient(to bottom, #DDDDDD     0%,#E0FFFF 100%);
}
}@charset "UTF-8";
</style>
<body>
<div id="container">
<%
String id=(String)session.getAttribute("id");
%>
当前在线人数:
<%--
Object num=application.getAttribute("count");

if(num==null){
    out.print(0);
}else{
    out.println(num);
}
--%>
<%
Object num=application.getAttribute("count");
    out.println(num);
%>&nbsp&nbsp
[<%=id %>]你好!
<form name="id" action="exam_3_exitservlet" method="post">
<button style="border:none;background:#DDDDDD;font-size:25px;"> 退出</button><br><br>
</form>
<%
Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR);
int month = now.get(Calendar.MONTH) + 1;
int day = now.get(Calendar.DAY_OF_MONTH);
int week = now.get(Calendar.DAY_OF_WEEK) - 1;
String[] Week = {"一","二","三","四","五","六","日"};
out.print("当前时间:"+year+"年"+month+"月"+day+"日,星期"+Week[week-1]);
SimpleDateFormat format=new SimpleDateFormat(" HH:mm:ss");
out.print(format.format(now.getTime()));
%>
</div>
    <div id="left">
        <span style="font-size:40px;">菜单</span><br>
        <a href = "exam_3_yonghuguanli.jsp" target="frame1">用户管理</a><br><br>
        <a href = "exam_3_news.jsp" target="frame1">新闻管理</a><br><br>
        <a href = "exam_3_changepass.jsp" target="frame1">修改密码</a>
    </div>
    <div id="right">
        <iframe name="frame1"  style="width:760px;height: 330px;border:medium none;"></iframe>
    </div>


</body>
</html>

登录处理:

package myServlet;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Servlet implementation class exam_3_loginservlet
 */
@WebServlet("/exam_3_loginservlet")
public class exam_3_loginservlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public exam_3_loginservlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        HttpSession session=request.getSession();
        ServletContext application=request.getServletContext();
        
        String id=request.getParameter("id");
        String password=request.getParameter("pass");

        if(id.equals("123")&&password.equals("123")){
            session.setAttribute("id", id);
            Integer count = (Integer)application.getAttribute("count");
            if(count==null){
            application.setAttribute("count", 1);
            }else{
            application.setAttribute("count", count+1);
            }
            response.sendRedirect("exam_3_index.jsp");
        }else{
            response.sendRedirect("exam_3_loginfail.jsp");
        }
        doGet(request, response);
    }

}
 

退出处理:

package myServlet;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Servlet implementation class exam_3_exitservlet
 */
@WebServlet("/exam_3_exitservlet")
public class exam_3_exitservlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public exam_3_exitservlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        HttpSession session=request.getSession();
        ServletContext application=request.getServletContext();
        
        session.setAttribute("id", null);
        Integer count = (Integer)application.getAttribute("count");
        application.setAttribute("count", count-1);
        response.sendRedirect("exam_3_login.jsp");
        doGet(request, response);
    }

}
 

登录拦截:

package filter;

import java.io.IOException;
import java.io.PrintWriter;

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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

/**
 * Servlet Filter implementation class exam_3_filter
 */
@WebFilter({ "/exam_3_index.jsp", "/exam_3_news.jsp", "/exam_3_yonghuguanli.jsp", "/exam_3_changepass.jsp","/exam_3_loginfail.jsp" })
public class exam_3_filter implements Filter {

    /**
     * Default constructor. 
     */
    public exam_3_filter() {
        // TODO Auto-generated constructor stub
    }

    /**
     * @see Filter#destroy()
     */
    public void destroy() {
        // TODO Auto-generated method stub
    }

    /**
     * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
     */
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        // TODO Auto-generated method stub
        // place your code here
        PrintWriter out = response.getWriter();
        HttpSession session = ((HttpServletRequest) request).getSession();
        
        String id = (String) session.getAttribute("id");
        if(id==null) {
            out.print("没有登录,请<a href='exam_3_login.jsp'>登录</a>");
            return;
        }
        // pass the request along the filter chain
        chain.doFilter(request, response);
    }

    /**
     * @see Filter#init(FilterConfig)
     */
    public void init(FilterConfig fConfig) throws ServletException {
        // TODO Auto-generated method stub
    }

}
 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值