1.Demo说明
实现说明:必须进行登录才能跳转到主页,否则跳转错误页面
2.代码
2.1Login.jsp简单实现登录表单
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
String path=request.getContextPath();
%>
<form action="/Tian/SrevletLogin" method="post">
<input type="text" name="UserName">
<input type="submit">
</form>
</body>
</html>
2.2 错误界面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>错误</title>
</head>
<body>
<h3>没有权限,请登录</h3>
<p><a href="/Tian/Login.jsp">登录</a></p>
</body>
</html>
2.3 主页
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--<%
Object UserSeesion= request.getSession().getAttribute("USER_SESSIOM");
if (UserSeesion==null)
{
response.sendRedirect("/Tian/Login.jsp");
}
%>--%>
<h1>主页</h1>
<p><a href="/Tian/ServletLogou">注销</a></p>
</body>
</html>
2.4 Constant
package Java.Util;
public class Constant {
public static final String USER_SESSIOM="USER_SESSIOM";
}
2.5 .1 SrevletLogin
package Java.Servlet;
import Java.Util.Constant;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class SrevletLogin extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("-----------------------------");
String contextPath = req.getContextPath();
String UserName = req.getParameter("UserName");
if (UserName.equals("admin"))
{
req.getSession().setAttribute(Constant.USER_SESSIOM,req.getSession().getId());
resp.sendRedirect(contextPath+"/sys/success.jsp");
}else
{
resp.sendRedirect(contextPath+"/erroe.jsp");
}
System.out.println("-----------------------------");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
2.5.2 ServletLogou
package Java.Servlet;
import Java.Util.Constant;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class ServletLogou extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String contextPath = req.getContextPath();
Object user_session=req.getSession().getAttribute(Constant.USER_SESSIOM);
if (user_session!=null)
{
req.getSession().removeAttribute(Constant.USER_SESSIOM);
resp.sendRedirect(contextPath+"/Login.jsp");
}
else
{
resp.sendRedirect(contextPath+"/Login.jsp");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
2.6 sysFilter 过滤器
package Java.Filter;
import Java.Util.Constant;
import com.sun.deploy.net.HttpRequest;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class sysFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest httpRequest =(HttpServletRequest)servletRequest;
HttpServletResponse httpResponse =(HttpServletResponse)servletResponse;
String path=httpRequest.getContextPath();
Object UserSeeion= httpRequest.getSession().getAttribute(Constant.USER_SESSIOM);
if (UserSeeion==null)
httpResponse.sendRedirect(path+"/erroe.jsp");
filterChain.doFilter(servletRequest,servletResponse);
}
@Override
public void destroy() {
}
}
3.Web.Xml
<servlet>
<servlet-name>SrevletLogin</servlet-name>
<servlet-class>Java.Servlet.SrevletLogin</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SrevletLogin</servlet-name>
<url-pattern>/SrevletLogin</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>ServletLogou</servlet-name>
<servlet-class>Java.Servlet.ServletLogou</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletLogou</servlet-name>
<url-pattern>/ServletLogou</url-pattern>
</servlet-mapping>
<filter>
<filter-name>sysFilter</filter-name>
<filter-class>Java.Filter.sysFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sysFilter</filter-name>
<url-pattern>/sys/*</url-pattern>
</filter-mapping>
4.项目结构
5.调试运行
登录界面
错误界面
主页